Description:
MortScript interprets a (quite) simple batch language. If you know .bat files in DOS or shell scripts in *nix: it's something like that. Its focus is to remote control or launch other applications, not to write real applications.
It's more an hacker tool without a nifty interface, you have to write your scripts with any text editor.
For beginners, this might be a bit too complicated.
Available commands currently include:
- Run, activate, hide, close, and kill programs.
- Wait functions: certain timespan, wait for existence or activation of windows, lots of other conditions (SleepMessage).
- Send keystrokes, mouse clicks, and some window messages (OK, Cancel, Yes, and No buttons) to windows.
- File operations: copy, rename/move, delete, create shortcuts, read and write text files.
- Support of ZIP archives (no replacement of existing archived files).
- Read/write access to serial (COM) ports.
- Create and remove directories.
- Read from and write into the registry.
- Open and close connections (closing no longer possible since WM5 AKU3), read files from the Internet.
- Several condition and loop structures (If, Switch, Choice dialog, While, ForEach, ...).
- Lots of system features (e.g. rotation, volume, backlight brightness, soft reset, battery level, ...).
- Subroutines (Call, Sub/EndSub).
- Variables, expressions (integer operations, string contatenations, ...), and lots of integrated functions.
Update Description:
v4.11b7:
- New attributes "romfile" (WM) and "compressed" (desktop) for FileAttribute.
- New command SetTime.
- Some bugfixes.
v4.11b6:
- DirContents( Verzeichnis, Typ ) - Files/sub directories of a directory.
- ReadLine( Datei [, Kodierung] ) - read a single line from a text file.
- Some bugfixes.
v4.11b5:
- New assignment operators +=, -=, /=, *=, &=, and \= (like in C, x+=1 is the same as x=x+1).
- (condition) ? (true value) : (false value) in expressions (like in C).
- Status window is created only after it's about to be displayed (some PNAs seem to have troubles with invisible windows...).
- StatusMessageAppend( text ) - appends text to last status message.
- StatusRemoveLastMessage() - removes last status message.
- CharAt( string, position ) - returns single character of string.
- UcChar( code ) - character for given unicode value.
- UcValue( zeichen ) - unicode value for given character.
- Min( wert, wert {,wert} ), Max( wert, wert {,wert} ) - returns smallest resp. biggest value of parameter list (numerical comparison).
v4.11b4:
- Strings can be given in single quotes (not in commands in old syntax style, for compatibilty).
- Comments with "#" after commands and assignments (not for lines continued with backslash and not all control structures).
- Removes old scripts with same process ID from registry at startup.
- Format( number, decimals [, leading] ) - added optional parameter for min. digits before decimal point.
- RepeatString( string, count ) - returns string repeated count times.
- TimeStampUTC() - current time as UTC (universal time).
- TimeZoneName(), TimeZoneBias(), TimeZoneDST() - some informations about current time zone, bias is offset to UTC in minutes.
- Bugfix: Status list font update should work.
- Bugfix: Clear works with references ([...]).
- Bugfix: File dates in local time (instead of UTC).
v4.11b3:
- SendKeys should be more reliable than b2.
- ScriptProcExists should work on more devices.
- StatusInfo( title [, info ] ) - sets title and list info text for status window.
- StatusType( ST_HIDDEN|ST_LIST|ST_MESSAGE [, keepOpen] [, allowCancel ]] ) - sets style of status window: ST_HIDDEN = not visible (default), ST_LIST = list of last entries, ST_MESSAGE = only last message visible; keepOpen = user has to tap OK button after script finished; allowCancel = show cancel button (works similar to KillScript).
- StatusHistorySize( count ) - number of entries in list.
- StatusMessage( message [style [, keepOpen] [, allowCancel ]]] ) - add/show a new message, optionally change style, too.
- StatusClear() - removes all previous messages.
- StatusShow() - bring status window to foreground, by default this happens only when StatusType makes the window visible, adding new messages keeps it in background if another window was activated.
- StatusListEntryFormat( item height [, font size, font name ] ) - style for list entries, parameters like SetChoiceEntryFormat.
- WriteStatusList( file name [, append [, code page ]] ) - saves the list entries to a file (e.g. for debugging).
v4.11b2:
- Include( ) to include the Sub functions of other files (included file must not include main routine!).
- Error message if a Sub is declared multiple times.
- Error messages with line number and file name.
- SendKeys should work faster and more reliable.
- CurrentCursor( [] ) returns the cursor type of the given or active window. It will not work for applications without window or application starts!
- Some internal preparations for future status window and multithreading.
v4.11b1:
- Unit parameter for disk/memory queries (BYTES, KB, MB, or GB, which are global variables - so no quotes are required!).
- Global variables for the registry keys (so RegRead( HKCU, "Software\Dunno", "Anything" ) will work, too).
- New function ScreenToChars(...) to convert a screen part to an array of strings.
- SetVolume updates registry on PPCs.
- New function GetVolume().
v4.1:
- Improved parser speed.
- Improved variable handling (local variables, IsEmpty(), Clear()).
- Improved array handling (multi dimensional, functions for initialization and getting size).
- Improved math (floating point support, trigonometry, rounding, constants like PI, power operator, ...).
- Improved sub routines (parameters, return values).
- Improved control structures (For loop, ElseIf, ForEach in array with index variable, Switch with strings or floating point).
- Improved file handling (Unicode and code page support, Unicode with prefix even for MortScripts themselves, write ini entries).
- Improved compatibility for PNAs (toolhelp.dll only loaded when required).
- Improved dialogs (selection for files and directories, small facelifts, selectable fonts).
- Several other new functions, like Replace (for strings), getting window positions and screen size, ...
- Some bugfixes.
v4.0:
- Versions for PC, Smartphone, and PNA.
- All new syntax ("Function( expr., expr., expr. )" instead of "Function string, {expr.}, %variable%", variables without %, ...).
- Functions in expressions, many old conditions/commands also available as functions.
- Support of ZIP files and COM ports.
- Several new system functions (battery level, screen on/off, notifications, ...).
- Some bugfixes.
v3.1:
- Renamed to MortScript, new extension .mscr.
- Multiline statements (with "\").
- Expressions as parameters (with "{ expression }").
- Simplified "If expression" with parentheses or braces.
- ^CR^, ^LF^, and ^TAB^ for quoted strings.
- ForEach loops.
- Switch conditions.
- Read and write text files (IniRead, ReadFile, WriteFile).
- Download files from internet (Download, IniRead, ReadFile).
- Overwrite parameter for XCopy, Copy, Move, and Rename.
- Other new commands: RegDeleteKey, Input, SleepMessage, GetVersion, GetSystemPath, GetColorAt, GetRGB, GetWindowText.
v3.0:
- Variables.
- Expressions.
- Subroutines.
- Some new comparsion possibilities.
- Retrieve values from the Registry or the current time.
- Checking for and killing running applications.
- Avoid/postpone auto power off (IdleTimerReset).
v2.61:
- Bugfix: Error message for Delete was shown on successfull deletion.
- Choice selection: First entry is preselected, bigger buttons.
v2.6:
- New tool: Autorun.exe.
- Choice selection.
- New condition "regKeyExists".
- Optional title for Message and If question.
- New commands: MouseDblClick, CreateShortcut, Rotate, SetBacklight, SetVolume, Reset, Exit.
v2.5:
- Improved error handling (error messages, abort on errors, ErrorLevel command).
- Enabled If conditions and While loops.
- Added "Message", "MkDir", and "RmDir" commands.
- "Run" supports parameters.
- Fixed the problem with menus (If MouseClick opened a menu, the script wasn't continued until the menu was closed manually).
v2.3:
- Added "New" command.
v2.2:
- XCopy, Move, and wildcards for Delete.
- Added RegDelete.
- Copy doesn't overwrite no more (use Delete before if necessary!)
v2.1:
- Repeat loops.
- Hint when started without parameters.
v2.0:
- Mouse clicks.
- File operations.
- Write in registry.
- More Send commands (SendKeys, direction pad, Home/End).
- Improved parser (optionally space instead of "=", parameters in quotes).