SKScheMa

  • SKScheMa General
  • Events
  • Profiles
  • Scripts
  • Watch
  • Menu Tools
  • Settings
  • Registration
  • Troubleshooting Guide
  • Support
  • License Agreement
  • Word of thanks
  •  

     

     


    SKScheMa®    1.x
    ©2005-2009, SKKV Software
    E-mail: support@s-k-tools.com
    http://www.s-k-tools.com


    SKScheMa General

    SKScheMa is an excellent tool to schedule unattended running of applications, scripts, reminder and much more. SKScheMa not only allows you to launch programs at scheduled times but also to send keypresses to those programs. SKScheMa has a watch function. It will check for the existence of a particular window and send keypresses or send the window a "close command" to terminate running applications. A Today Plugin shows you the next coming event(s).



    Contents

    Event Properties

    Here you can plan and set up your events. For any event, basic properties set-up option is available; for some of the events there are also special properties set-up feature (see the corresponding tab).

    For fields "Command", "Parameters", "Description" text can include this macros: @time(format) and @date(format) and @dayofweek.
    SKScheMa will replace it to current date-time with format:

    for @time
    h Hours with no leading zero for single-digit hours; 12-hour clock
    hh Hours with leading zero for single-digit hours; 12-hour clock
    H Hours with no leading zero for single-digit hours; 24-hour clock
    HH Hours with leading zero for single-digit hours; 24-hour clock
    m Minutes with no leading zero for single-digit minutes
    mm Minutes with leading zero for single-digit minutes
    s Seconds with no leading zero for single-digit seconds
    ss Seconds with leading zero for single-digit seconds


    for @date
    d Day of month as digits with no leading zero for single-digit days
    dd Day of month as digits with leading zero for single-digit days
    ddd Day of week as a three-letter abbreviation
    dddd Day of week as its full name
    M Month as digits with no leading zero for single-digit months
    MM Month as digits with leading zero for single-digit months
    MMM Month as a three-letter abbreviation
    MMMM Month as its full name
    y Year as last two digits, with a leading zero for years less than 10. The same format as "yy"
    yy Year as last two digits, with a leading zero for years less than 10
    yyyy Year represented by full four digits


    you can use commands like
    #msg(Today @date(yyyy/MM/dd) @time(HH:mm))


    Command

    File
    You can select any file here. If this is an executable file, it will be launched immediately. Otherwise, it will be run with its associated application.


    Soft reset
    A soft reset will be executed.


    Power off
    Switches the power of your device off.


    Screen off
    Switches the screen of your device off.


    Reminder
    This is a special type of an event. Once it occurs, you will be notified of it with a sound alert (optional – a vibrating sound alert). The text previously set-up by you will be shown at that. An event can be interrupted or postponed at the time specified. Special parameters for the Reminder Mode are below:

    Sound file

    Here you can choose a *.mp3, *.wav, *.wma or other sound file (if your system has a player for this file type) to play a sound for the Reminder. If you enter name of file like \My Documents\mp3\*.mp3 then SKScheMa will use random mp3 file from folder \My Documents\mp3.

    Sound script (optional, only for *.wav files)

    This is rules definition for play sound sequence.
    This allow you add vibrate and/or LED blink to sound sequence.
    Possible commands:
    a = activate device
    cN = set volume to N in percentage max volume
    fN = flash notification LED for N seconds
    p = play ringtone. Note that this will play the ringtone all the way through before continuing with the next code.
    r = repeat. Note that this should be the last code in your Script string, if used at all.
    vN = vibrate for N seconds
    wN = wait for N seconds. Note that the device will wait this long before continuing with the next code.
    Use [...] button for select script command or predefined scripts.

    Repeat sound file

    Here you can set to repeat the sound or not (only for wav and other types associated with wmplayer).

    Sound volume

    Here you can set the sound volume level or choose the system settings.

    Vibrate

    Here you can enable or disable vibration. Also, you can set the vibration time.

    Display reminder window only X seconds

    Set the time in seconds to display the reminder window.

    Snooze delay (min.)

    Set the time in minutes to repeat the reminder (window).


    Kill process
    Only for advanced user. You can kill a process.
    On the Special Properties tab you can set the names of the programs subject to be closed when this command is activated.

    Phone call
    Make a phone call.
    On the Special Properties tab you can set (manually or choosing from the Address Book) a phone number to be called.

    Send SMS
    Send a SMS.
    On the Special Properties tab you can set (manually or choosing from the Address Book) a phone number at which an SMS will be sent. The message text is to be entered on the same tab.

    AS connect
    Connect your device with ActiveSync.

    AS disconnect
    Disconnect your device from ActiveSync.


    Wireless >

    Note:

    The Wireless feature availability depends on the manufacturer and type of your device. It may turn out that the SKScheMa Wireless feature is not supported by your device!

    WLAN on
    WLAN off
    BT on
    BT off
    GSM on
    GSM off
    All on
    All off


    Do nothing
    No operations will be performed, however, a device which was off, will be switched on. Setting up other parameters of an event you can program some actions periodically: e. g. switch an active device off, change volume level etc.

    Parameters

    Here you can use parameters like the command line to launch an executable file.

    Description

    Here you can describe an event. The description will be visible on the SKScheMa window and on the Today screen.

    Class of the event

    Used for today plugin filter.

    Run at time

    Here you can set the start time of an event in HH:MM.
    If the other time parameters have no settings, the event will occur daily at the time specified. If you need to set the event occurrence time precisely on a specific date, use the following event periodicity parameters:

    Sequence script

    You can control sequense of event execution like one day - will run, next day too run, next day skip etc.
    Enter "r" if you want run and "s" if you want skip.
    Example: you want use wakeup reminder 3 day and after you not want it one day - so use this sequence:
    rrrs


    Days of week

    The event will occur on every specified day of the week.

    Days of month

    The event will occur on every specified day of the month.

    Months

    The even will only occur in the specified month(s) of the year.

    Years

    The event will only occur in the specified year(s).

    Run only one time

    The event will occur only once. If this option is disabled, the event will occur again.

    Other parameters:



    Wait until the started process is terminated

    SKScheMa will wait until the started process is terminated.

    Off screen after start

    This option switches off the screen of the device after the start.

    Power off after the start/end of the process

    This option switches off the device after the start/end of the process.

    If Power off is needed

    Conditions for the Power Off feature. If the previous parameter is on, it will define under which conditions the power should be turned off once the event ends. There are 2 options here: to turn the power off always or to turn it off only if the device had been switched on with SKScheMa.

    Wait before starting the process

    SKScheMa will make a pause (you will set a waiting time) before it starts the process.

    Wait while X is not accessible

    SKScheMa will wait while the target (or another file) is not accessible.

    Minimum battery level

    SKScheMa checks the battery status before starting an event. If the battery level is below the specified level – no actions will be performed and the power of the device will remain off.

    Sound volume

    Here you can set the sound volume level or choose the system settings.



    Contents

    Script editor

    This window allows to change/create a script.
    From "Script" menu you can:

    open script, save and rename current script, create shortcut for script, execute script.
    From "Edit" menu you can:
    Select and insert command or command parameters.


    Commands

    'script’ is a set of commands stored in a file with the extension *.sksc.
    This file have these format:
    #command 1(parameter1;...;parameterN) [#sleep(millisecond)] [other options]
    #command 2(parameter1;...;parameterN) [#sleep(millisecond)] [other options]
    ... #command N(parameter1;...;parameterN) [#sleep(millisecond)] [other options]


    Possible to use old format:

    #r(command 1) #p(parameters) [#sleep(millisecond)] [other options]
    #r(command 2) #p(parameters) [#sleep(millisecond)] [other options]
    .......
    #r(command N) #p(parameters) [#sleep(millisecond)][other options]

    You can use this command line for run script files:
    :SKSCHM #r(#script) #p(script-file-name.sksc) #onlyrun #VAR1(any text) #VAR2(any text) #VAR3(any text)
    With command line You can define three variables - this variables can be accessible from script with names @var1,@var2,@var3.

    Script commands:

    #r(The name of the file to be launched) #p(parameters), as example #r(\windows\pword.exe) #p(mytext.txt)
    #sr (soft reset), you can use this command not only at end of script, but at any line. Execution will is continued after rebooting
    #pwr (power off)
    #scr (screen off)
    #scn (screen oò)
    #kill (kill process, example #kill(pword.exe;fexplorer.exe;))
    #call (phone call, example #call) #phone(1234567))
    #sms (send SMS, example #sms(message text) #phone(1234567))
    #answer answer
    #hangup hangup
    #soundvol set sound volume, from 0 (system) to 15, 16 - mute
    #phonevol phone sound volume, from 0 to 5
    #script (start script, example #script(script file))
    #0 (do nothing)
    #theme (change Today theme, if parameter not exist then will be used next theme with filesystem order, , example #theme(\windows\mytheme.tsk))
    #wlanon (WLAN on)
    #wlanoff (WLAN off)
    #bton (BT on)
    #btoff (BT off)
    #gsmon (GSM on), #gsmon) [#p(PIN)]
    #gsmoff (GSM off)
    #radioon (all on)
    #radiooff (all off)
    #findwindow (this command is searching for a window by these criteria (set in the Parameters box of this command): main window title; main window class; child window title, child window class,without parameters find active window
    #activatewindow if #findwindow success this command activate obtained window
    #getwndtext if #findwindow success this command copy to variable title of obtained window, #getwndtext(4) - will copy title to Var4
    #getwndclass if #findwindow success this command copy to variable class name of obtained window, #getwndclass(4) - will copy class name to Var4
    #getwndexe if #findwindow success this command copy to variable exe name of obtained window, #getwndexe(4) - will copy executable name to Var4
    #postmessage if #findwindow success this command can send message to window , #postmessage(0xMessageCode,0xwParam,0xlParam)
    #copyfile copy file #copyfile(source path\filename;destination path\[filename])
    #copyfile(My Documents\*.*;\Storage Card\My Documents\)
    #copyfile(My Documents\*.txt;\Storage Card\My Documents\)
    #copyfile(My Documents\list.txt;\Storage Card\My Documents\)
    #copyfile(My Documents\list.txt;\Storage Card\My Documents\copyoflist.txt)

    #move move file or folder #move(source path\filename;destination path\filename) or move folder #move(source path\folder;destination path\folder)
    #move(My Documents\*.*;\Storage Card\My Documents\)
    #move(My Documents\My Folder;\Storage Card\My Documents\My Folder)
    #move(My Documents\list.txt;\Storage Card\My Documents\copyoflist.txt)
    #delete delete file or folder #copyfile(file)
    #delete(My Documents\*.bak)
    #delete(\Test Folder)
    #led on/off LED, #led(0|1|2)
    #watchrules change watch function properties #watchrules(path\filename.sksw)
    #clearqueue delete all SKScheMa events from system queue
    #profile replace all events in queue from profile, #profile(path\filename.sksp)
    #addprofile add events to queue from profile, #addprofile(path\filename.sksp)
    #tap (this command performs a tap on the screen with X;Y[;X2;Y2] coordinates, if coordinates have not been set, the coordinates of the upper left corner of the window found with the #findwindow command are used). If X2 and Y2 coordinates is present - command emulate tap on X;Y axis and move stylus to X2;Y2 axis.

    sample: #tap(30;32) #tap(7;32;30;32)
    #tapah (this command performs a tap-and-hold on the screen with X;Y coordinates, if coordinates have not been set, the coordinates of the upper left corner of the window found with the #findwindow command are used)
    #msg show message, #msg(Variable A = #A#) #d(12)
    #writestr write text to new file, #writestr(filename.txt) #d(Variable A = #A#)
    #appendstr append text to file, #appendstr(filename.txt) #d(Variable A = #A#)
    #readfromfile read text from file to variable, #readfromfile(filename.txt;variable_name)
    #file2array read text from file to array, #file2array(filename.txt;array_name)
    #gototoday activate today
    #refresh refresh today
    #yesno #p(Message text) #d(font size) #rmr(0|1|2 - default answer,0-YES-TRUE,1-NO-FALSE,2-UNKNOWN) #rmt(time limit for show this message,0 - no limit), show message, if user answer YES then sysvar == TRUE, by pressed "action" button or after time (#rmt) will be selected answer from #rmr
    #yesno(Are you sure?) #rmr(1) #rmt(10000) - show question, if user not answer - after 10 seconds will be selected "No"
    #okcancel see #yesno
    #setprofile(on|vibrate|off)
    #gettext #p(Text) #d(font size) #rmr(0|1|2 - default answer,0-YES-TRUE,1-NO-FALSE,2-UNKNOWN) #rmt(time limit for show this message,0 - no limit) Wait user input. If user enter text and tap OK - sysvar == TRUE and SKScheMa put text to variable Var0 , if user tap Cancel - sysvar == FALSE. by pressed "action" button or after time (#rmt) will be selected answer from #rmr
    #setval set string value to VARx variable, #setval(3) #d(New value for Var3)
    #rgdelval delete registry value, #rgdelval(HKLM|HKCU|HKCR;path;value name)
    #rgdelkey delete registry key, #rgdelkey(HKLM|HKCU|HKCR;path;key name)
    #rgset set registry value, #rgset(HKLM|HKCU|HKCR;path;value name;DWORD|SZ|MZ;value data)
    #rgget get registry value, #rgget(HKLM|HKCU|HKCR;path;value name;DWORD|SZ|MZ;variable name)
    #regflush flush registry from ram to storage
    #getsoundvol get sound volume, #getsoundvol(variable name)
    #getphonevol get phone sound volume, #getphonevol(variable name)
    #getbattery get battery level, #getbattery(variable name)
    #waitcusor #p(ON|off) show/hide wait simbol
    #sipon show IM panel, use #chksip for check IM state
    #sipoff hide IM panel, use #chksip for check IM state
    #getsip get current SIP name to string variable, #getsip(MyVar)
    #setsip make SIP "active", #setsip(@MyVar|name of SIP)

    #url2file download a file, #url2file(URL;path on PDA)
    #url2file(http://s-k-tools.com/SKScheMa/SKScheMa.zip;\My Documents\SKScheMa.zip)

    #ping ping host, #ping(host;result_numeric_variable;count;timeout)


    #filesize get filesize, #filesize(file name;variable name)
    #crc32 calculate CRC32 for file, #crc32(file name;variable name)
    #getdate get current date , #getdate(date format;string variable number)
    #gettime get current time , #gettime(time format;string variable number)
    #getdate(dd/MM/yyy;5)
    #gettime(hh:mm;6)
    #msg(Now @var5 @var6) #d(9)

    #rotate - screen rotate command,
    #rotate( |0|90|180|270|4|5|6)
    empty parameter - rotate next
    0|90|180|270 - rotate to
    4 - rotate to portrait
    5 - rotate to landscape
    6 - toggle portrait/landscape

    #brightness
    #brightness(value;BATTERY|AC)
    #brightness(value) - for battery power
    #brightness(value;battery) - for battery power
    #brightness(value;AC) - for AC power
    value - very device dependent
    this function also very device dependent, we not guarantee any result

    #todaytext show text on SKScheMa today plugin text area , #todaytext(text|@string variable name)
    #getmute get "mute" state, #getmute(numeric variable name), very device dependent
    #setmute set "mute" state, #setmute(ON|OFF|1|0), very device dependent
    #sendussd send USSD command and get result to Var0:
    #sendussd(*100#)
    #msg(@var0)



    #sendkey (to send a keystroke) The following macros can be used in the line:
    Enter #R
    Tab #T
    Backspace #B
    Delete #D
    Left #<
    Right #>
    Up #^
    Down #!
    Home #H
    End #N
    Escape #E
    CNTRL + X #CX, X = any character
    Shift ON #S
    Shift OFF #s
    Hardware buttons (only 15 buttons possible) #A1-#AF
    Soft keys (only 2 buttons possible) #K1-#K2
    #[any string] - copy "any string" to the clipboard.

    #startsound play sound in bacground with rules defined in "script". #startsound(sound file;script)
    script (like phone script) commands:
    a = activate device
    cN = set volume to N in percentage max volume
    fN = flash notification LED for N seconds
    p = play ringtone. Note that this will play the ringtone all the way through before continuing with the next code.
    r = repeat. Note that this should be the last code in your Script string, if used at all.
    vN = vibrate for N seconds
    wN = wait for N seconds. Note that the device will wait this long before continuing with the next code.
    #stopsound stop sound started only from current script.
    #stopallsounds stop sound started by any other script(s).


    sample (play and vibrate 20 seconds):
    #startsound(\Windows\Windows Default.wav;av1pr)
    #stopsound() #sleep(20000)

    #setbr prevent device backlight off and poweroff (device dependent). Watch mode will be ON
    #setbr(0|1)
    #getbr get to variable state of #setbr mode
    #getbr(varbr)
    #callbubble call(show) system bubble
    #callbubble(command)
    command can be:
    RADIO,VOLUME,CLOCK,NOTIFICATIONS,DATACONNECTION,CONNECTION

    #wrecord record wav file. #wrecord(path\file.wav;time (ms.);enable_compression_0_or_1)

    record to \My Documents\yymmddhhmm.wav, 6 second #wrecord()

    record to \Storage Card\My Documents\yymmddhhmm.wav, 10 second with compression #wrecord(\Storage Card\My Documents;10000;1)

    record to \Storage Card\My Documents\myrecord.wav, 20 second #wrecord(\Storage Card\My Documents\myrecords.wav;20000)

    #clipget get text from clipboard #clipget(variable)
    #clipset put text to clipboard #clipset(text)
    #getpxlclr get color of point of screen #getpxlclr(X;Y;variable)
    #speakerphone enable/disable speakerphone mode #speakerphone(ON|1|off|0)


    With all command can be used the parameter #sleep(millisecond), this parameter make timeout BEFORE command will run.

    Some command
    Example:

    #r(\windows\calc.exe)
    #findwindow(Calculator;;;) #sleep(1000)
    #activatewindow)
    #sendkey(12345679) #sleep(1000)
    #sendkey(x) #sleep(1000)
    #sendkey(27) #sleep(1000)
    #sendkey(#R)
    #kill(calc.exe) #sleep(3000)

    Work with registry:
    #msg(Attempt to get value HKCU\software\sk\testreg\dwvalue)
    #rgget(HKCU;software\sk\testreg;dwvalue;DWORD;testdw)
    #iftrue(ok)
    #msg(Value HKCU\software\sk\testreg\dwvalue not exist)
    #label(ok)
    #msg(Attempt to set value HKCU\software\sk\testreg\dwvalue -> 1024)
    #rgset(HKCU;software\sk\testreg;dwvalue;DWORD;1024)
    #msg(Attempt 2 to get value HKCU\software\sk\testreg\dwvalue)
    #rgget(HKCU;software\sk\testreg;dwvalue;DWORD;testdw)
    #ifunknown(bad)
    #iffalse(bad)
    #msg(Value HKCU\software\sk\testreg\dwvalue == #testdw#)
    #label(bad)
    #msg(Attempt to get value HKCU\software\sk\testreg\szvalue)
    #rgget(HKCU;software\sk\testreg;szvalue;SZ;var2)
    #iftrue(ok1)
    #msg(Value HKCU\software\sk\testreg\szvalue not exist)
    #label(ok1)
    #msg(Attempt to set value HKCU\software\sk\testreg\szvalue)
    #rgset(HKCU;software\sk\testreg;szvalue;SZ;This is SZ value)
    #msg(Attempt 2 to get value HKCU\software\sk\testreg\szvalue)
    #rgget(HKCU;software\sk\testreg;szvalue;SZ;var3)
    #ifunknown(bad1)
    #iffalse(bad1)
    #msg(Value HKCU\software\sk\testreg\szvalue == @var3)
    #label(bad1)
    #msg(Now need delete key HKCU\software\sk\testreg)
    #rgdelkey(HKCU;software\sk;testreg)


    #gettext sample:
    #gettext(Test 1) #d(9)
    #iffalse(end)
    #unknown(end)
    #msg(You enter: @var0) #d(9)
    #label(end)




    Back
    Here you can set parameters for the Watch Mode.

    Watch for

    Watch for:
    window
    phone
    power type
    any connection
    power level
    cards
    messaging
    registry




    Contents

    Event Properties for Watch (window)


    Windows title

    Select a window title, window class or a process. If SKScheMa detects that the window specified in this parameter has been opened or closed, the actions set in the following Parameters will be executed.

    To execute If the Window is Created

    To execute this command if the specified window has been created.

    with parameters

    Enter parameters if needed.

    To execute If the Window is Closed

    To execute this command if the specified window has been closed.

    with parameters

    Enter parameters if needed.

    Group


    When the "Check only first and last" Mode is on, SKScheMa checks for availability of other windows similar to the created one or the closed one. If the "Group" parameter is set, SKScheMa will also check for availability of windows which are a part of this group.
    ATTENTION! While checking for Pocket Internet Explorer windows, SKScheMa may detect its windows closing wrongly if you are using such extentions as PIEPlus and MultiIE or similar.

    Check only first or last

    Only for opening/closing!. If this parameter is off, SKScheMa will be sensitive to all instances of the same windows opening/closing. If this parameter is on, SKScheMa will only pay attention to the first opening and the last closing of such a window.

    To execute If the Window is Activated

    To execute this command if the specified window has been Activated.

    with parameters

    Enter parameters if needed.

    To execute If the Window Title is Changed

    To execute this command if the window title has been changed to specified value.

    with parameters

    Enter parameters if needed.




    back

    Event Properties for Watch (phone)

    Events possible: Call, Connection, Incoming call status changed, Disconnection, Dialling, Incoming SMS, Cell ID changed.
    For all events it's necessary to set an executable command and, perhaps, parameters.

    For 'Call' and 'Connection' events the parameter 'CallerID' is available - if it has been set, the command is going to be executed only if the text set in this parameter appears in the CallerID of a calling subscriber or the Caller ID contains this text as a whole. E. g. '12345' is a part of '101123456789' and contains '234'.

    A 'Call' event can be associated with a certain ring type - please set the serial number of a ring for this.

    For an 'Incoming SMS' event a type of SMS can be set: Any, Message, Notification, Broadcast.
    For 'Messages' the number of a sender can be verified, for 'Notifications' the number of a recipient (the recipient of the message for which a notification was received) can be verified. For this event a condition can be set: availability of the text specified within the text of a message.


    In command and parameters text the following macros are possible:
    @callerid - substituted with a number (CallerID)
    @smstext - substituted with SMS text
    @cellid - new Cell ID
    @oldid - old Cell ID
    @area - area code


    in registry stored this values:
    [HKEY_CURRENT_USER\Software\sk\schema]
    DWORD:cellid - current Cell ID
    DWORD:oldid - old Cell ID
    DWORD:areacode - current code
    DWORD:oldareacode - old code
    SZ:lastcallerid - last caller id
    SZ:callerid - current caller id (exist only if call active)



    back

    Event Properties for Watch (power type)

    Events possible: AC power on, AC power off.
    For all events it's necessary to set an executable command and, perhaps, parameters.




    back

    Event Properties for Watch (any connection)

    Events possible: Connected, Disconnected.
    This event start if ANY connection change status (connected and disconnected) and SKScheMa "not know" any information about changed connection. But you can use in script command #connections for get list of connections with status "connected". For all events it's necessary to set an executable command and, perhaps, parameters.




    back

    Event Properties for Watch (power level)

    Events possible: power level threshold.
    This event start at decrease in a level of power supply to the threshold.
    For all events it's necessary to set an executable command and, perhaps, parameters.



    In command and parameters text the following macros are possible:
    @powerlevel - current battery life %



    back

    Event Properties for Watch (cards)

    Events possible: inserted or removed storage card(s).
    For all events it's necessary to set an executable command and, perhaps, parameters.



    In command and parameters text the following macros are possible:
    @path - name of card



    back

    Event Properties for Watch (messaging)

    Events possible: new message created.
    Parameter - substring can be existed in ""subject" or "sender" message fields.
    For all events it's necessary to set an executable command and, perhaps, parameters.

    Possible delete message.


    In command and parameters text the following macros are possible:
    @subj - subject
    @sender - sender



    back

    Event Properties for Watch (registry) (WM5+)

    Events possible: registry value changed.
    For all events it's necessary to set an executable command and, perhaps, parameters.




    back

    Menu Tools

    You can edit events, switch the current view and set up the program.




    Contents

    Events

    ‘Event’ in SKScheMa stands for any action which can be executed by the program. It can be opening a file, playing a sound (a particular case of a file opening), a message with sound alert, device on/off, screen on/off, wireless functions (bluetooth, wi-fi – device-depended), a phone call, sending SMS, launching a script, etc. SKScheMa is oriented to execution of recurrent events (e. g. to occur every Tuesday of January), as a particular case – an event can be configured to occur only once. Events scheduled to execute are displayed in this window. All elements of this list are stored in the system Notify Queue.
    You can enable/disable event. If event disabled SKScheMa anyway enable device, but not run any command.
    You can create new events, edit the existing events, clone events, save them as a file (profile),load them from a file (profile). You may define what events will are shown in queue, use Tools->Settings->Queue filter.

    Event Properties for Queues and Profiles
    Reminder (special event)


    Contents

    Profiles

    This is a list of the events which will not occur but have been saved for further tasks. All elements of this list are stored in files with the extension *.sksp. It may be convenient if, for example, you use one set of events at work and the other one – during your vacation. Both a profile and a separate even from this profile can be added to Queue.

    Event Properties for Queues and Profiles


    Contents

    Scripts

    ‘Script’ is a set of commands stored in a file with the extension *.sksc. This allows to perform several actions for one event. A script can also be run from a file directly which is convenient for tasks automation.
    In this window, you can create and edit scripts.

    SKScheMa has a special commands for emulation tap and tap-and-hold on given coordinates. You may use the "Add tap" command from "Edit" menu for calling the special program. This program will help you to define coordinates a point.

    Script editor
    Commands
    Variables and macros
    Strings
    Script execution sequence control
    Working with ZIP archives



    Contents

    Working with ZIP archives



    SKScheMa allows to perform basic operations with zip-archives

    To create a new, empty archive
    #zcreate(archive name) #d(password)
    A password is optional.
    If there existed a file with the same name - it will be deleted.

    To open an existing archive
    #zopen(archive name) #d(password)
    A password is optional.

    To close
    #zclose()
    closes a new or open archive.

    In one script, you can only work with one archive at any point of time.
    A working cycle is only limited with commands between #zopen/#zcreate and #zclose.
    For creating new archives you can use the command
    #zadd(\path\mask)
    to add files into an archive.
    After an archive is closed (#zclose) you will not be able to modify its contents with SKScheMa, use other programs for this.
    To define how to add files, the following commands are used
    #zusepath(ON|off)
    this command defines if it is required to save the full path in the name of the file to be added
    #zsetrecursion(ON|off)
    this command defines if it is required to search in subfolders during a file search.

    For existing archives the command
    #zextract(\path\mask)
    extracts files into the folder which had been set earlier with the command
    #zsetextractpath(extract path)
    The command
    #zusepath(ON|off)
    defines if it is required to extract files according to the full path in its name

    #zsetnmode(0|1|STD|UTF8)
    defines mode for save/restore file names in zip archives



    How to create a new archive - example
    #zusepath(ON)
    #zsetrecursion(ON)
    #waitcursor(ON)
    #zcreate(\Storage Card\MyZip.zip)
    #zadd(\My Documents\*.txt)
    #zadd(\My Documents\*.pxl)
    #zadd(\My Documents\*.doc)
    #zadd(\My Documents\*.bmp)
    #zclose()
    #waitcursor(OFF)


    How to extract archive - example
    #zusepath(ON)
    #zsetextractpath(\Storage Card\Temp\)
    #waitcursor(ON)
    #zopen(\Storage Card\MyZip.zip)
    #zextract(*.*)
    #zclose()
    #waitcursor(OFF)



    back

    Script execution sequence control



    Commmand #LABEL defines a label. Label is a script line associated with a certain name. This name always makes it possible to find the line. When two identical labels exist, the one which is closer to the beginning of the script is always found.
    #LABEL(label name)

    Command #GOTO causes a control transfer to the script line defined by a certain label.
    #GOTO(label name)


    Command #EVAL allow you to set/change a variables.
    example:
    #eval(a=1)
    #label(start)
    #msg("A" value = #A#)
    #eval(a=a+1)
    #chkcondition(a!=4)
    #IFTRUE(start)



    The following check-up commands can be used in a script:
    radio subsystems status #chkwlan, #chkbt, #chkgsm
    screen state (on or off) #chkscreen
    screen orientation (true - landscape, false - portrait, square screen - unknown state) #chklandscape
    files or folders existence #chkfile, #chkfolder
    ActiveSync connection status #chkasconnection
    SKScheMa start status (true if SKScheMa event is reason of power on device) #chkstart
    SKScheMa watch status (true for ON, false for SUSPEND, unknown for OFF) #chkwatch
    String include caller ID? (true for yes, false for no, unknown if callerid not defined)
    #chkcid(+11233456789;9876543;1111111)
    #chkcid
    Caller ID include string? (true for yes, false for not, unknown if callerid not defined)
    #chkincid(9876543)
    #chkincid
    Device power on AC line? (true for yes, false for not, unknown if unknown state)
    #chkac
    SIP status
    #chksip
    String1 include any substring from String2? (result - TRUE) Or String1 is substring of String2? (result FALSE) Othervise - result UNKNOWN
    String2 can include separator ";"
    #chkstrings(String1) #d(String2)
    #chkstrings(12345) #d(1234;aaaaaa;bbbbbbb) - result TRUE
    #chkstrings(aaaaaaaaaa) #d(1234;aaaaaa;bbbbbbb) - result TRUE
    #chkstrings(aaa) #d(1234;aaaaaa;bbbbbbb) - result FALSE
    #chkstrings(ccccc) #d(1234;aaaaaa;bbbbbbb) - result UNKNOWN
    #chkstrings

    You can use #chkcondition for check variables:
    #chkcondition(a==10)
    You can use #chkconnection for check connection:
    #chkconnection(`USB)
    You can use #chkprocess for check process:
    #chkprocess(tmail.exe)

    After these commands have been executed, a special internal variable (for script his name is SYSVAR and possible this: #eval(myvar=sysvar))
    takes one of the 3 status: TRUE (on, active, existing), FALSE (off, non-existing), UNKNOWN (not possible to define a status). This variable keeps its status until the following working (not management control one) command is executed. Commands which do not change their status TRUE-FALSE always return the variable into UNKNOWN.

    Window search command #findwindow sets this variable value as well depending upon search results.
    Files-operation commands like #copyfile, #move, #delete sets this variable value as well depending upon operation results.


    Commands #IFTRUE, #IFFALSE, #IFUNKNOWN, #IF cause a control transfer to a label depending upon a status of the internal variable.
    #IFTRUE(label name)
    #IFFALSE(label name)
    #IFUNKNOWN(label name)
    #IF(label name for TRUE;label name for FALSE;label name for UNKNOWN)



    Wi-Fi status check-up sample script, and then - screen and file (\windows\pword.exe) existence check-up sample scripts

    ;wifi
    #chkwlan()
    #ifunknown(wlanunk)
    #iftrue(on)
    #msg(WLAN state is OFF)
    #goto(end)
    #label(on)
    #msg(WLAN state is ON)
    #goto(end)
    #label(wlanunk)
    #msg(WLAN state is UNKNOWN)
    #label(end)
    ;screen
    #chkscreen()
    #ifunknown(unk)
    #iftrue(on2)
    #msg(Screen state is OFF)
    #goto(end2)
    #label(on2)
    #msg(Screen state is ON)
    #goto(end2)
    #label(unk)
    #msg(Screen state is UNKNOWN)
    #label(end2)
    ;file
    #chkfile(\windows\pword.exe)
    #ifunknown(unk2)
    #iftrue(on3)
    #msg(File not exist)
    #goto(end3)
    #label(on3)
    #msg(File Exist)
    #goto(end3)
    #label(unk2)
    #msg(Cannot check file!)
    #label(end3)





    back

    Variables and pseudovariables (macros)


    Macros (pseudovariables) is a record like @Name which is replaced with some value if a script is executed. A script may contain the following macros: @time, @date, @var0, ..., @var9 and other - user defined.


    You can use variables in SKScheMa scripts. There are two types of variables - numeric and line (string).
    Numeric variables can contain only numbers. They may have arbitrary names. Usage of up to 50 different numeric variables is allowed.
    To work with numeric variables, use the #EVAL command.
    to set a value: #eval(a=1)
    to change a variable value: #eval(a=a+1)
    a variable value can be modified into a character string to appear in a message
    #msg("A" value = #A#)
    for comparing variables #chkcondition is used
    Simple comparison sample
    #chkcondition(a!=4)
    #IFTRUE(start)
    comparison of the current date and the specified date
    #eval(data=@Date(yyyyMMdd)) #chkcondition(data>=20060701)


    There can only be 50 string variables (macros) altogether.
    To access those, @VarName macro are used.
    Exist 10 system variables with names @Var0 - @Var9.
    Every variable may contain a string of up to 256 symbols.
    Variables can be set in the command line #VARx(text) (x from 0 to 9), using command #setvar - (#setvar(variable name|x) #d(text)) (x from 0 to 9) and/or using command #rgget.







    back

    Work with strings (text)


    To compare variables or strings, use the #chkstrings command
    #chkstrings(@var5) #d(123456;aaaaaa;bbbbbbb)

    For get string variable length use #length command:
    #length(@variable name|text;numeric variable name)

    For get substring position use #pos command:
    #pos(substring;string;numeric variable name)

    For extract substring from string use #substr command:
    #substr(string;position;length;result string variable name)


    The array is a set of strings. Access to each element is carried out on an zero based index. Assigning a value to an array item: #setitem(array_name;zero_based_index;value). If you assign a value to a nonexistent item - will create all non-existing items with a smaller index.
    Getting the array element: @array_name[zero_based_index].
    For get the number of items in the array, use #getitemsnum(array_name;numeric_variable_name).
    To clean array, use #removeallitems(array_name).
    Use #regmathall(regular_expression;string variable name;array name) to obtain an array of substrings corresponding certain criteria.


    Sample (#length, #pos, #substr):

    #setvar(Variable) #d(0123456789)
    #length(@Variable;len)
    #pos(@Variable;345;pos)
    #eval(len1=len-pos+1)
    #substr(@Variable;#pos#;#len1#;NewVariable)
    #eval(res=SYSVAR)
    #substr(@Variable;#pos#;3;NewVariable2)
    #eval(res2=SYSVAR)
    #msg(String @Variable#RLength - #len# #R "345" position - #pos# #RResult #res# #res2# #RSubstring1 @NewVariable#RSubstring2 @NewVariable2)


    Sample (adding string to string):

    #setvar(Variable1) #d(01234)
    #setvar(Variable2) #d(56789)
    #setvar(Variable3) #d(@Variable1@Variable2)
    #msg(@Variable3)


    Sample (adding items to array):

    #eval(i=0)
    #label(start)
    #setitem(data1;i;item #i#)
    #eval(i=i+1)
    #chkcondition(i<10)
    #iftrue(start)
    #getitemsnum(data1;a)
    #eval(l=a-1)
    #msg(Array length #a# #RFirst tem: @data1[0]#RLast item: @data1[l])





    back

    Watch

    SKScheMa can watch opening, closing, activating and title changing of applications windows and perform some actions at these moments. You can manage this feature in this window. Also SKScheMa can watch some phone events like rings, answer, hangup, power state, SMS.

    Example of usage: launching a script for initializing a GPRS connection is Internet Explorer is open and disconnection from GPRS when you close Internet Explorer.

    Watch-function is realized by program-monitor sksw.exe.
    Possible three conditions:
    ON - sksw.exe loaded in memory and keeps a check the windows on opening/closing. This is "work" mode for watch-function.
    STANDBY- sksw.exe loaded in memory, but not produced any action. This mode needs for compatibility with other our programs.
    OFF - sksw.exe not loaded in memory. If you enable this mode some other our programs (SKMenu) can not work properly.


    ATTENTION!
    Do not close/kill the process sksw.exe, if you do it your system will be freeze. Setup your task-managers and backup programs for ignore process sksw.exe.

    ATTENTION! While checking for Pocket Internet Explorer windows, SKScheMa may detect its windows closing wrongly if you are using such extentions as PIEPlus and MultiIE or similar.

    Event Properties for Watch


    Contents

    Settings

    Here you can manage settings for SKScheMa.

    General

    General settings for SKScheMa.

    Language

    Select the language which you prefer.

    Font size

    Select the font size for SkScheMa.

    Use Cleartype

    Here you can enable or disable Cleartype.

    Path for log file

    Select the save path for the SKScheMa log file.

    File for old events

    The name of a file where past non-recurrent events are to be saved. You can load this file as a profile and use it in future.

    Watch mode

    Possible three modes:
    ON - sksw.exe loaded in memory and keeps a check the windows on opening/closing. This is "work" mode for watch-function.
    STANDBY- sksw.exe loaded in memory, but not produced any action. This mode needs for compatibility with other our programs.
    OFF - sksw.exe not loaded in memory. If you enable this mode some other our programs (SKMenu) can not work properly.


    ATTENTION!
    Do not close/kill the process sksw.exe, if you do it your system will be freeze. Setup your task-managers and backup programs for ignore process sksw.exe.


    Note: You can control this modes by today plugin:

    switch to on/standby, tap once on binocular symbol.
    switch to off, tap and hold on binocular symbol.
    This changes do not save after softreset.
    Binocular symbol have this color indication:
    1. green - on
    2. gray - standby
    3. red - off

    Make shortcut for any saved script in \Start Menu\Programs\sScripts

    You can choose between yes or no. If yes then any time after you save any script will be created the shortcut for this script.

    Today plug-in

    Enable

    On/off today plug-in.

    Font size

    Use Cleartype

    Bold

    Height

    The height of a plug-in on the Today screen.

    Number of events for show

    The number of future events to be displayed in the Plug-In.

    Information panel height


    If you setup this value >0, then on today plugin will be enabled area (on top) for your custom text. You can change this text from script by #todaytext command.

    Queue filter


    You may define what events will are shown in queue. As condition possible to assign presence or absence the substring in text or command. You can use more than one substring, ';' - delimiter.

    Example:
    You want see only reminders. For this you need add to filter the string #reminder.

    About

    The About screen. Here you can enter your registration code to activate the full version after buying SKScheMa.



    Contents

    Registration

    If you have purchased SKScheMa in online shops, you have received a 5-digit unlock code. Please make sure that Owner Name in your Pocket PC is identical to the one you entered when purchasing the software. Also, if you have some national symbols in your Owner Name, make sure that the corresponding region is selected in your Regional settings. Run SKScheMa > Tools > Settings > About and enter your code in the About window. If you have a problem with the registration, please contact us by email (support@s-k-tools.com). Immediately after registration we recommend you perform a Backup onto a storage card. In this case you will not lose your registration data even after a hard reset.




    Contents

    Troubleshooting Guide

    Please note: some functions device dependent and cannot work on your device.




    Contents

    Support

    Please read the Troubleshooting Guide first. If a problem still persists or you have any suggestions, please feel free to contact us: support@s-k-tools.com




    Contents

    License Agreement

    The License Agreement for using SKScheMa (hereinafter referred to as "Software") below is in English language only.

    You may:
    ========
    (i) use the Software on any single computer; (ii) use the Software on a second computer as long as the first and second computers are not used simultaneously; and (iii) make a copy of the Software for archival purposes, provided any copy contains all the original Software's proprietary notices. The Software is in "use" when it is loaded into RAM or installed on any storage device(s); (iv) use the Software for personal use only.

    You may not:
    ============
    (i) modify, translate, reverse engineer, decompile, disassemble, create derivative works based on the Software, or any portion thereof, or Documentation; or attempt to increase the functionality of the Software in any manner; (ii) copy the Software (except for back-up purposes) or Documentation; (iii) rent, lease, or otherwise transfer rights to the Software or Documentation; or (iv) remove any proprietary notices or labels on or in the Software or Documentation; (v) give your registration information to third parties.

    SOFTWARE.
    If you receive your first copy of the Software electronically, and a second copy on media, the second copy may be used for archival purposes only. This license does not grant you any rights to any enhancement or update. TITLE. Title, ownership rights, and intellectual property rights in and to the Software and Documentation belong to the author of the Software and are protected by the copyright laws of the Russian Federation and international copyright treaties.

    LIMITED WARRANTY.
    The author guarantees the Software performance within the author's description.
    CUSTOMER REMINDERS.
    The buyer has the right of receiving newer versions of the Software with corrected errors.

    NO OTHER WARRANTIES, EXCEPT AS EXPRESSLY PROVIDED IN THE LIMITED WARRANTY SECTION ABOVE, THE SOFTWARE IS PROVIDED TO THE END USER "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR LIMITED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF NON- INFRINGEMENT, MERCHANTABILITY, AND/OR FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK OF THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU.

    LIMITATION OF LIABILITY.
    UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, TORT, CONTRACT, OR OTHERWISE, SHALL SK OR ITS SUPPLIERS OR RESELLERS BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY DAMAGES, INCLUDING WITHOUT LIMITATION INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SK SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY. SK SHALL NOT BE LIABLE FOR ANY DAMAGES UNDER THIS AGREEMENT.

    TERM AND TERMINATION.
    This Agreement will terminate automatically if you fail to comply with the limitations described above. On termination, you must (i) discontinue your use of the Software and (ii) permanently erase or destroy all copies of the Software and Documentation.




    Contents

    Word of thanks

    Many thanks goes to Chucky, Pat1981, Rangali, Guenne, Wichtel, frolic25, digi, pikko, fokus and other people for their beta-testing.




    Contents