2lz

11/13/2005  updated

  11/07/2005   -   new  project  
  NeoS0M   instead of  S0M 
  +  src
  (Delphi / GNU GPL)  

 +  best  partner  for  S0M:
 Window Scanner 1.7  (1.1 mb)
 window tree,  message sender,
 window/menu/process  editor,
 color/image/text  grabber,
 screen loupe, ...   Screenshot

InqSoft   Sign 0f Misery   by  CyberManiac

Handy  tool  for  non-programmers: 
Window- Registry- File- Time- Process-   handling ,  automation,  etc

Output  =  your  EXE  =  your  script  +  functional  kernel
Script editor  =  Sign_0f_Misery.exe,  kernel  =  file  s0m.bin  (40 kb).

 Stable version:
  s0m 2.6.8  (1.1 mb)
 
 Beta version:
  s0m 2.7 pre-release 2  (1.1 mb)

Last kernels:  v2.68 (24-Aug-2003) + v2.7 (01-Dec-2004)   (25+27 kb)

s0m_sdk  (20 kb)
 

Freeware

9x/ME/NT/2K/XP

Rus / Eng

Screenshot

Scripts  and  EXEs   -   examples,   plus  something  for  scripts:   dialog  (kit4s0m.exe),  plugin  (kit4s0m.dll),  unofficial  advanced  kernel  (s0mEx)


  KERNEL COMMANDS

  [Program and script execution]
  Execute program
  Execute program with selected command line
  Execute program with command line translation
  Execute file or command
  Load and execute .s0m script

  [Delays and timer]
  Insert delay
  Set maximal time of script execution
  Sleep (high-precision delay)
  Set new timer value
  Save timer value in variable

  [Time changing]
  Set new time
  Set time from file attributes
  Restore time

  [Window search]
  Find window by text in header
  Find window by full window header
  Find subwindow by text in header
  Find child window by full header
  Find child window by texts in parent and child windows
  Find this script's window
  Find foreground window
  Find Desktop window
  Find window by class name and window text
  Find window by class name and full window text
  Find child window by class name and window text
  Find child window by class name and full window text

  [Wait for window]
  Wait window with selected text in the header
  Wait window with selected header
  Wait window with selected class and window text

  [Operations with windows]
  Set window text
  Send "Click" message
  Send "Close" message
  Enable window
  Disable window
  Show window
  Hide window
  Window management: Minimize/Maximize/Restore
  Make found window topmost
  Make found window non-topmost
  Change window size
  Change window position
  Bring window to top
  Apply next command to many windows:
    To all
    To all from this
    To all after this
    To all before next
    To all before this
    To all exclude this
  Send user-defined message to window
  SetWindowText API function

  [Operations with window list]
  Go to first found window
  Go to next found window (cyclic)
  Go to previous found window (cyclic)
  Go to parent window
  Read found window count into variable
  Read position in list of found windows into variable

  [Windows and window list - examining]
  Check, is window list not empty
  Check, is window now exists
  Check, is window visible
  Check, is window enabled
  Check, is window minimized
  Check, is window maximized

  [Read/write window parameters into variables]
  Copy "Found window handle" to variable
  Copy variable to "Found window handle"
  GetWindowText API function
  Write found window text into variable
  Write found window class name into variable
  Read window co-ordinates into two variables
  Write absolute window co-ordinates into variables
  Read window size into two variables
  Write window's client area size into variables

  [Change current directory]
  Change current directory
  Set script start directory as current directory
  Create directory
  Remove directory

  [Simple file operations]
  Delete file
  Copy file
  Move/rename file
  Extended rename/move file or directory
  Change file creation time
  Change file modification time
  Change file attributes
  Save file attributes in variable
  Restore file attributes from variable

  [File patching]
  Open file for patching
  Create and/or open file for patching
  Goto selected position in file
  Goto selected position relative to end of file
  Goto selected position relative to current position
  Patch byte
  Write binary data
  Change file size
  Close opened file

  [Working with files - examining]
  Check file size
  Check CRC32
  Check byte
  Check, is file exists
  Check, is folder exists

  [Reading from file into variables]
  Get current directory
  Get Windows directory
  Get Windows system directory
  Find first file by name\mask and write file name to variable  
  Find next file and write file name to variable
  Read byte from file into variable
  Read integer value from file into variable
  Read binary data from file into variable
  Read opened file size into variable

  [Working with menus]
  Find menu item by text
  Go to submenu
  Enable menu item
  Execute menu command
  Set menu item text

  [Working with registry]
  Open registry key
  Create registry key
  Write string value to registry
  Write numeric value to registry
  Write binary data to registry
  Close registry key
  Delete registry key
  Delete value from registry
  Check, is registry key opened
  Check, is registry value exists in opened key
  Read registry value type into variables
  Read data from registry value into variable

  [Process management]
  Wait for end of process
  Terminate process
  Change process priority
  Get window's process ID into variable
  Open process by ID in selected variable
  Execute processes in SUSPENDED mode (switch)
  Resume main thread of process
  Check, is process now exists

  [Working with mouse]
  Move mouse to center of current window
  Restore mouse position
  Clear saved mouse position
  Change mouse co-ordinates
  Emulate mouse click
  Read mouse co-ordinates into two variables

  [Keyboard emulation]
  Emulate KeyDown
  Emulate KeyUp
  Check, is key pressed

  [Process patching]
  Patch byte in memory
  Patch DWORD in memory
  Patch binary data in memory
  Check byte in memory
  Check DWORD in memory

  [Reading from memory into variables]
  Read byte from memory into variable
  Read DWORD from memory into variable
  Read binary block from memory into variable

  [Labels]
  Label

  [Jumps and subroutines]
  Jump -
  Skip some commands -
  Call subroutine -
  Ultra-fast relative jump -
  Ultra-fast relative call subroutine -
   - Conditional/Unconditionl
  Return from subroutine/loaded script
  Remove address from return stack

  [Writing data into variables]
  Write integer value into variable
  Write random value into variable
  Write string into variable
  Write binary data into variable
  Write script's command line into variable
  Expand environment variables in string
  Write byte into variable by offset
  Write DWORD into variable by offset

  [Variable and constant comparsion]
  Compare variable with integer value
  Compare two variables

  [Examining results of comparsion]
  Check comparsion result

  [Arithmetic operation with variables]
  Copy one variable to another
  Get part of variable invo variable
  Extract byte from variable by offset
  Extract DWORD from variable by offset
  Add two variables
  Subtract second variable from first
  Multiply first variable by second
  Biwise AND operation on two variables
  Biwise OR operation on two variables
  Get parameter count in line
  Get parameter from line
  Get variable data length into variable
  Get variable type into variable

  [Variable substitution]
  Substitute command parameter with variable
  Apply parametes substitution for next command

  [Messages and comments]
  Show MessageBox
  Save result of "MessageBox" command in variable
  - Comment

  [Script termination]
  Terminate script
  Exit on errors on/off
  Terminate script if file closed

  [Kernel message processing mode]
  Change kernel message processing mode:
    Standard/Fast/No processing

  [Error and debug management]
  Debug messages on/off
  Read error count into variable
  Write value into error counter

  [Type conversion]
  Convert variable to integer
  Convert variable to string
  Convert variable to binary data
  Convert variable to handle
  Convert variable to QWORD

  [Plugin commands]
  Load function address from plugin into variable
  Invoke function by its address in variable
  Get plugin return value into two variables

  [Working with INI files]

  [Clipboard commands]
  Copy text to Clipboard
  Get text from Clipboard into variable

  [Interprocess communications]
  Check, was files dragged into script window
  Read list of files, dragged into script window
  Create named IPC channel
  Send data to window via IPC
  Broadcast data to all windows via IPC
  SCRIPT FEATURES/SETTINGS

  Script window caption
  1-5 text lines
  Flag Prevent conflicts with other scripts
  Flag "Invisible" (for other scripts) mode
  Flag Terminate script after first error
  Flag Don't show running script window
  Flag Use multimedia (high-precision) timer
  Flag Allow drag-n-drop into script window
  Flag Set script start directory as current
  Flag Run only one instance of the script
  Call window scanner every (0.1-1.6) seconds (step=0.1)   
  SCRIPT EDITOR FEATURES/SETTINGS

  Enhanced search in script's text
  Load s0m-file to script-editor via drag'n'drop
  Keypress emulation wizard
  Bug tracker
  Script checker
  Create/Edit/Test script
  Copy/Cut/Paste/Move selected block of strings in script  
  Merge scripts
  Undo last operation
  Change icon of compiled script
  Compile to EXE
  Import script from EXE
  Patch creation tool
  CRC32 calculator
  Export script to text/HTML
  Preset manager (User-defined Command Sets)
  Syntax highlighting
  Integration with packers, UPX is favorite
  Multiple instances
  1010 messages in Messages.lst
  Cooperation with extern InqSoft Window Scanner
Hosted by www.Geocities.ws

1