home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pmate.zip / PMATE.INF (.txt) < prev    next >
OS/2 Help File  |  1993-06-17  |  46KB  |  1,200 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Introduction ΓòÉΓòÉΓòÉ
  3.  
  4. PMATE stands for Presentation Manager* Automated Test Environment. User inputs 
  5. to an OS/2* 2.0 based system may be recorded and replayed to automate 
  6. functional testing of software. 
  7.  
  8. Events will be captured and stored in a readable and editable form. Individual 
  9. recorded segments may be merged to create more comprehensive tests. 
  10.  
  11. PMATE provides an editor for viewing and modifying a recorded script. 
  12.  
  13. No additional hardware is required. PMATE may be used on any OS/2* 2.0 or 
  14. greater system. PMATE does not take up much screen area, just a small icon in 
  15. the lower left hand corner for access to PMATE functions during recording and 
  16. playback. 
  17.  
  18. PMATE is an automation tool which is intended to help remove the boring, 
  19. repetitive tasks from the test activity, especially regression testing. 
  20.  
  21. This on-line reference file, pmate.inf, provided with the package explains how 
  22. to install and use PMATE. We recommend that you study this on-line reference 
  23. file thoroughly before using PMATE for the first time. (This file can also be 
  24. viewed from within PMATE, by selecting Help->Reference from the PMATE main 
  25. menu.) 
  26.  
  27.  
  28. ΓòÉΓòÉΓòÉ 2. Functional Overview ΓòÉΓòÉΓòÉ
  29.  
  30. PMATE is a macro recorder and testing productivity tool which provides the 
  31. following features and functionality: 
  32.  
  33. o Ease of Use features: 
  34.  
  35.    - Scripts are recorded to and played back from a readable, editable text 
  36.      file (not an unreadable, uneditable binary file). 
  37.    - Testcase scripts can be modified easily as the system under test evolves 
  38.      and changes. (When a comparison fails, the user is prompted to request 
  39.      that the existing bitmap or CRC value be replaced with the new one, if 
  40.      that is appropriate.) 
  41.    - An easy visual mechanism is provided for detecting errors in the system 
  42.      under test. PMATE displays previous and current views of bitmap areas 
  43.      side-by-side on-screen. 
  44.    - An unobtrusive record / playback mechanism, features a powerful set of 
  45.      menu items which pop-up from a single small icon. This avoids the need to 
  46.      remember a variety of hot key combinations, and avoids having an 
  47.      application window obscuring a major portion of the screen. 
  48.    - PMATE supports the recreation of the conditions of the recorded test, by 
  49.      recording and restoring the positions and sizes of windows (upon command 
  50.      from the user, or automatically). 
  51.    - Comment lines can be included manually at any time during the recording 
  52.      process (or edited in afterwards). 
  53.    - Comment lines can be generated by PMATE and included automatically after 
  54.      user-selectable events 
  55.  
  56. o Flexibility features: 
  57.  
  58.    - Two recording methods: recording events as macro-level script elements, or 
  59.      as each and every individual "WM_" message generated by PM. 
  60.    - Two playback modes: interactive or unattended (batch-mode) playback. 
  61.    - Customizable settings for maximum recorded delays; comparison repeat 
  62.      counts and intervals; and fonts. 
  63.    - Automatically generated, as well as user-inserted, comment lines. 
  64.    - Automatic or user-specified fixing of the position and size of windows. 
  65.    - Automatic or user-specified naming of bitmap files. 
  66.    - Two modes of script recording: verbose (English-language-like) or terse 
  67.      (abbreviated, programmatical style). 
  68.  
  69. o Storage minimization features. 
  70.  
  71.   PMATE minimizes storage requirements (without losing any necessary 
  72.   information), by: 
  73.  
  74.    - Combining events into macro-level script elements (such as "drag from a to 
  75.      b", instead of a long series of mouse events) 
  76.    - Ignoring unimportant mouse movements 
  77.    - Allowing the user to designate AREAS of the screen, not just the entire 
  78.      screen, to be saved. (PMATE saves these areas as separate disk files in 
  79.      the standard OS/2 bitmap format.) 
  80.    - Allowing areas of the screen to be encapsulated as a CRC value (a single 
  81.      number of up to 10 digits stored within the script file). 
  82.    - Providing a terse recording mode in which all command syntax is heavily 
  83.      abbreviated. 
  84.    - Allowing separate recording units (segments) to reside in the same script 
  85.      file, but be played back either individually or in designated groups. 
  86.      (This helps avoid lots of small files which each occupy a minimum of 4K on 
  87.      disk.) 
  88.  
  89. o Unattended testing support: 
  90.  
  91.    - PMATE can be invoked in a non-interactive mode, either from a command 
  92.      prompt, or from within a REXX script, command file, or any program that 
  93.      can launch an application (e.g. using DosExecPgm). 
  94.    - In automatic mode, PMATE does not display message boxes and does not wait 
  95.      for responses from the user. 
  96.    - Errors are logged to a file (optionally overwriting or appending to the 
  97.      file), with 3 selectable levels of detail. 
  98.    - An error code is returned to allow branching decisions within a REXX or 
  99.      command file, or another application. 
  100.    - Whenever a bitmap or CRC comparison fails, the failed screen area is saved 
  101.      to a bitmap file on disk, and the file name is written in the error log. 
  102.      The user can then view these bitmaps at a later time. 
  103.  
  104.  
  105. ΓòÉΓòÉΓòÉ 3. Installation ΓòÉΓòÉΓòÉ
  106.  
  107. PMATE currently has no automated installation procedure. 
  108.  
  109. o QUICK INSTALLATION / START-UP PROCEDURE 
  110.  
  111.     1. Create a new directory ("\pmate" is suggested). 
  112.     2. Copy all the pmate files (pmate*.*) to the \pmate directory. 
  113.     3. Change directory to your \pmate directory. 
  114.     4. Type PMATE <Enter>. 
  115.  
  116. o NORMAL INSTALLATION 
  117.  
  118.     1. Copy the following files to the specified directories: 
  119.  
  120.       File          Location 
  121.       pmate.exe     Anywhere on the PATH. 
  122.       pmate_if.exe  On the PATH, preferably in the same directory as pmate.exe. 
  123.       pmate_rp.dll  On LIBPATH. 
  124.       pmate.inf     In a directory specified by the BOOKSHELF environment 
  125.                     variable. 
  126.       pmate.hlp     In a directory specified by the HELP environment variable. 
  127.       pmaterun.hlp  In a directory specified by the HELP environment variable. 
  128.       pmate_f.ico   Folder icon which may optionally be used. Should be in the 
  129.                     same directory as pmate.exe. 
  130.       pmate.ico     Icon for the PMATE executable. Should be placed in the same 
  131.                     directory as pmate.exe. 
  132.       pmate_rd.me   Late breaking information on new features and known 
  133.                     problems. 
  134.  
  135.     2. Verify the settings of all pertinent environment variables. 
  136.  
  137.     3. [Recommended] Create a new folder to contain the PMATE executable and 
  138.        online command reference. 
  139.  
  140.        (There are two icon files supplied: Associate these icons with the 
  141.        folder, pmate_f.ico, and program, pmate.ico. Also, COPY one of the icons 
  142.        from the OS/2 information folder to the new pmate folder, then change 
  143.        the Parameters to "view \pmate\pmate.inf", and the Working directory to 
  144.        "\pmate".) 
  145.  
  146. Script files, logfiles and bitmap files are all stored in the current working 
  147. directory by default. However, you can supply a specific drive and path to 
  148. override that default. 
  149.  
  150.  
  151. ΓòÉΓòÉΓòÉ 4. Getting Started ΓòÉΓòÉΓòÉ
  152.  
  153. This section introduces PMATE and describes how to begin working with it to 
  154. automate testing of applications and systems. 
  155.  
  156. o Start PMATE from the command line (by typing PMATE), or from a Workplace 
  157.   Shell folder. (The Installation section describes how to create a PMATE 
  158.   folder.) 
  159.  
  160.   On start up, the main window of PMATE is displayed. This window contains a 
  161.   main menu bar and a client window which is the script editor / browser. 
  162.  
  163. o Select a new script file from the File->Open pull-down menu. Enter a name in 
  164.   the Open dialog box and select OK. 
  165.  
  166.  1. To RECORD a set of events select Action->Record. The edit window will 
  167.     disappear and the Record Settings Dialog will appear. (For now simply click 
  168.     on the OK button to accept the default options, later on we will discuss 
  169.     this dialog in detail.) 
  170.  
  171.     Notice that the record icon (shown above) is presented in the lower left 
  172.     corner of the screen. This icon is used to start and stop the record 
  173.     session, and to select additional features of PMATE, such as marking an 
  174.     area of the screen for comparison. 
  175.  
  176.  2. Click on the record icon and a menu appears, later we will discuss in 
  177.     detail all of the record menu options. For now select the item "Fix window 
  178.     position->Entire Desktop". This will record the size and position of all 
  179.     active windows on the desktop. 
  180.  
  181.     (This is done to ensure correct placement during playback. PM applications 
  182.     can, and often do, allow the PM Window Manager to display their window at 
  183.     random positions on the screen.) 
  184.  
  185.  3. Now move the mouse around the screen and click/doubleclick on some windows 
  186.     and/or icons. All of these events will be recorded as they happen. 
  187.  
  188.  4. When you are finished, click on the record icon again, and select "Stop". 
  189.  
  190.     The main edit window will reappear diplaying the newly recorded script. 
  191.     (Refer to the Commands by Function section for a description of each script 
  192.     command.) 
  193.  
  194. Manual changes may be applied to the script at any time now. To save the 
  195. changes select File->Save from the edit window. 
  196.  
  197.  1. To PLAY BACK the current script, select Action->Playback from the main 
  198.     PMATE window. All events in the current script will be played back. 
  199.  
  200.  2. Try moving any of the windows that were selected in the "Fix window 
  201.     position->Entire Desktop" operation above, and then replay the script. 
  202.     Windows that were moved will be automatically moved back to their original 
  203.     position, before the playback continues. 
  204.  
  205.  
  206. ΓòÉΓòÉΓòÉ 4.1. Command line arguments ΓòÉΓòÉΓòÉ
  207.  
  208. Command line arguments are denoted by either a slash or minus (/-) preceding 
  209. the argument the options are not case sensitive. 
  210.  
  211. Qualifier         Description 
  212. /F filename       Name of the script file to open and display in the main 
  213.                   script edit window. Leave a space between the /f and the 
  214.                   filename. 
  215. /L filename       Open the logfile in append (concatinate) mode. Leave a space 
  216.                   between the /l and the filename. 
  217. /LA filename      Open the logfile in append (concatinate) mode. Leave a space 
  218.                   between the /la and the filename. 
  219. /LO filename      Open the logfile in overwrite mode. Any current file will be 
  220.                   overwritten. Leave a space between the /lo and the filename. 
  221. /A                Automatic playback mode. Playback the given scriptfile 
  222.                   without presenting the main script edit window. PMATE returns 
  223.                   after execution of the passed script file/segment. 
  224. /S segment        Define segment to execute (Optional for Automatic playback 
  225.                   mode). Leave a space between the /s and the segment name. 
  226. /R                This option tells pmate_if (the server) to remain resident 
  227.                   after playing back the script requested.  Using this feature 
  228.                   will speed the launching of multiple scripts / segments (See 
  229.                   example 2 below).  It should also be noted that one may call 
  230.                   the pmate_if.exe program directly and not use the pmate.exe 
  231.                   program as a client. 
  232. /T                Terminate the pmate server's resident mode.  The pmate_if 
  233.                   server will shut down upon completion of the current script 
  234.                   playback request. 
  235. /W0               Logging level 0; errors only (Log screen differences, focus 
  236.                   failures, and script syntax errors). Focus failures are 
  237.                   instances were a window cannot be found during playback, but 
  238.                   was there during the recording of the script. 
  239. /W1               Logging level 1; above, plus any comments in the script 
  240. /W2               Logging level 2; above, plus script statements, and in-line 
  241.                   Time Stamps the logfile. 
  242. /?, ?, /H         Display all available command line options and a brief 
  243.                   description. 
  244.  
  245. Example 1 starts pmate from the command line with a file open for recording 
  246. and/or playing back using the interactive PMATE menu. 
  247.  
  248.  PMATE /F TEST.SCR 
  249.  
  250. Example 2 is an example of a OS/2 command file controling a PMATE script which 
  251. has a Initialization segment, Variation segment(s) and a closing segment 
  252. Close_Windows. 
  253.  
  254. @ECHO OFF
  255. REM THIS COMMAND FILE EXECUTES THE SEGMENT INIT THEN EACH VARIATION.
  256. REM
  257. REM ON THE FIRST ERROR IN ANY VARIATION WE ECHO ERRORS FOUND TO THE
  258. REM LOG FILE AND WAIT FOR THE USER TO PRESS ENTER.  THEN WE TERMINATE
  259. REM BY EXECUTING THE SEGMENT CLOSE_WINDOWS.
  260. REM
  261. REM IF THERE ARE NO ERRORS WE ECHO ALL PASS AND THEN EXECUTE THE SEGMENT
  262. REM CLOSE_WINDOWS.
  263.  
  264. REM USE THE /R SWITCH TO START THE SERVER IN RESIDENT MODE
  265.  
  266. pmate /f test.scr /a /w2 /s INIT /lo test.log /r
  267.  
  268.  
  269. REM SINCE WE ARE IN RESIDENT MODE THERE IS NO NEED TO GIVE THE SCRIPT
  270. REM FILENAME AGAIN.
  271.  
  272. pmate /a /w2 /s Var1 /la test.log
  273. IF ERRORLEVEL=1 GOTO ERRORS
  274.  
  275. pmate /a /w2 /s Var2 /la test.log
  276. IF ERRORLEVEL=1 GOTO ERRORS
  277.  
  278. pmate /a /w2 /s Var3 /la test.log
  279. IF ERRORLEVEL=1 GOTO ERRORS
  280.  
  281. ECHO ALL PASS >> test.log
  282. ECHO ALL PASS
  283. GOTO END
  284.  
  285. :ERRORS
  286. ECHO ERRORS FOUND >> test.log
  287. ECHO ERRORS FOUND, WE WILL CLOSE ALL WINDOWS NOW...
  288. PAUSE
  289.  
  290. :END
  291.  
  292. REM TIME TO TERMINATE OUR TEST RUN.  USE THE /T SWITCH TO REMOVE
  293. REM THE PMATE SERVER FROM MEMORY UPON COMPLETION.
  294.  
  295. pmate /a /w2 /s Close_Windows /la test.log /t
  296.  
  297. When PMATE is used as a tool (as in the above example) it can be called from 
  298. REXX, C, or any program which can launch another application. 
  299.  
  300.  
  301. ΓòÉΓòÉΓòÉ 4.2. Recording ΓòÉΓòÉΓòÉ
  302.  
  303. This icon indicates that PMATE is in recording mode. All mouse click, and drag 
  304. operations, plus all keyboard input to non-full screen sessions will be 
  305. recorded to the current script file. 
  306.  
  307. To initiate record, from the main edit window select record from the actions 
  308. pull-down menu. The main edit window will be closed and a record icon as shown 
  309. below will appear in the lower left corner of the window. 
  310.  
  311. The record settings dialog window will come up at this point giving the user a 
  312. chance to verify / modify the record options. This dialog has options to change 
  313. the segment being used (described later), instruct PMATE to record comments 
  314. into the script by itself,  automaticaly record window positions, modify the 
  315. default focus / crc / bitmap timeouts, modify the maximum delay which pmate 
  316. will record, and define file name prefix for bitmap saves. 
  317.  
  318. During the record process it is recommended that any window that is to be used 
  319. in the record session be enumerated (Focus Command). In other words, note the 
  320. location and size of the window. This will ensure that subsequent playback 
  321. sessions will trigger the desired responses. 
  322.  
  323. This enumeration can be done with the Auto Focus Option in the Record Settings 
  324. Dialog. Also one can manually select the windows to focus by using the Record 
  325. Button Menu Options "Fix window position->Single Window" and "Fix window 
  326. position->Entire Desktop". 
  327.  
  328. Options available from the Record Button Menu are: 
  329.  
  330.    1) Fix window position
  331.       a) Single window
  332.       b) Entire desktop
  333.    2) Mark areas
  334.       a) CRC comparison
  335.       b) Bitmap comparison
  336.    3) Playback controls
  337.       a) Pause point
  338.    4) Add a comment
  339.    5) Record as WM_messages / Record as Script
  340.    6) Settings
  341.    7) Stop / Edit
  342.  
  343. Detailed descriptions of each of these commands can be found in this document. 
  344.  
  345.  
  346. ΓòÉΓòÉΓòÉ 4.3. Playback ΓòÉΓòÉΓòÉ
  347.  
  348. To playback, select playback from the actions pull-down menu. The main edit 
  349. window will be closed and a playback icon as shown below will appear in the 
  350. lower left corner of the window. 
  351.  
  352. Animation will occur to indicate what is happening during the playback. 
  353.  
  354. To stop playback you can press <Ctrl><Break>. PMATE will stop at the next Pause 
  355. Point, Focus, CRC, or Bitmap location in the script. During the initial phases 
  356. of creating a large script it would be wise to use many segments and/or Pause 
  357. Points to provide a easy way to exit during playback. 
  358.  
  359.  
  360. ΓòÉΓòÉΓòÉ 4.4. Segments ΓòÉΓòÉΓòÉ
  361.  
  362. See the definition of a Segment Label in Commands by Function-> Segment Labels. 
  363. Also the  Helpful Hints section in this document for a suggested usage of 
  364. segment labels. 
  365.  
  366. Why? Segments allow you to split a large test into many separate sections for 
  367. ease of design, testcase debugging, and modularity. 
  368.  
  369. Segments can be added to a script by simply typing a segment label into the 
  370. script manually. During the record mode, you can one select the Record Settings 
  371. Dialog and modify the current segment label to a new label. PMATE will record 
  372. the new segment label into the script for you. 
  373.  
  374. Once you have Segments in a script file you can playback the segments one at a 
  375. time from the command line or selectively from within PMATE. (See the section 
  376. on Command line arguments for an example and syntax from the command line.) 
  377.  
  378. To playback a selected list of segments interactively, select Actions->Playback 
  379. Segments from the PMATE menu. Then highlight the segments you wish to execute. 
  380.  
  381. Since PMATE always returns the number of errors, segments can provide a 
  382. machanism for logical operations such as looping and conditional branching. 
  383.  
  384.  
  385. ΓòÉΓòÉΓòÉ 5. Helpful Hints ΓòÉΓòÉΓòÉ
  386.  
  387. o Icons in WorkPlace Shell Folders: 
  388.  
  389.   PMATE cannot fix the position of an icon in a WorkPlace Shell folder (or 
  390.   container) because folder icons are not separate windows, like the 
  391.   traditional PM icons and controls. 
  392.  
  393.   We recommend that you create a special folder with SHADOWS of the icons you 
  394.   will use for a particular testcase. You can then begin the recording session 
  395.   by having PMATE fix the position and size of this folder; and then SORT the 
  396.   folder to ensure that all the folder icons will be properly positioned for 
  397.   the remainder of the playback. 
  398.  
  399.   (Icons in a folder are sorted from the folder's pop-up menu. Click with mouse 
  400.   button 2 in the folder or the folder's icon on the desktop, and then select 
  401.   SORT, and choose an appropriate sort option from the sort submenu.) 
  402.  
  403. o Testcase Initial Conditions: 
  404.  
  405.   Start testcases from a blank desktop (all windows closed) to eliminate 
  406.   contamination from other programs, and to make it easier to recreate the 
  407.   initial conditions of the testcase. 
  408.  
  409.   You may wish to keep a OS/2 command window around (preferably minimized) to 
  410.   launch programs or to perform command line operations. 
  411.  
  412. o PMATE Segments: 
  413.  
  414.   Use the PMATE segment feature in your testcases. (We recommend that you add a 
  415.   pause point at the beginning and end of each segment for additional visual 
  416.   feedback of the progress of the playback.) 
  417.  
  418.   Here is a suggested testcase segment outline: 
  419.  
  420.    Name          Usage 
  421.    STARTUP       For preparation and launching of the test. 
  422.    VARIATION#    One segment for each testcase variation. 
  423.    REFRESH       [Optionally] A segment which returns you to a clean state, 
  424.                  ready to begin the variations again without doing another 
  425.                  complete SHUTDOWN and STARTUP. 
  426.    SHUTDOWN      A segment which will return you to the pre-STARTUP state on 
  427.                  your desktop. 
  428.  
  429. o CRC and Bitmap Comparisons: 
  430.  
  431.   When marking a CRC or Bitmap try to keep the marked areas WITHIN the 
  432.   window(s) being tested. This will minimize the possibility of crosstalk 
  433.   between elements of the desktop that are not part of the system under test. 
  434.   (If any portion of the marked area is on the desktop and you have 
  435.   accidentally left another window, or moved another window around, on the 
  436.   desktop during playback, unnecessary comparison failure may result.) 
  437.  
  438.   Inadvertent CRC/Bitmap failures can occur in areas which are likely to change 
  439.   from test to test. Two common situations to look out for are time-dependent 
  440.   areas, such as the system clock; and directory listings in which, for 
  441.   example, the number of free bytes cannot be guaranteed to remain constant. 
  442.  
  443. o WM_message recording mode 
  444.  
  445.   PMATE has an alternative "record all messages" recording mode - WM_messages 
  446.   (binary) mode. (Although it is sometimes termed a binary mode, the generated 
  447.   script is still in text format.) 
  448.  
  449.   This mode is useful for programs where the PATH of the mouse is critical. 
  450.   This includes paint programs, and even when selecting multiple icons within a 
  451.   WorkPlace Shell folder. It can also be useful for 3270 emulator sessions. 
  452.  
  453.   If all else fails, you can try WM_messages mode, but use it sparingly, 
  454.   because it will generate a huge amount of script. 
  455.  
  456. o Little Known Facts - alternative uses for PMATE 
  457.  
  458.     1. You can use PMATE to prepare demos and tutorials for your PM 
  459.        application. 
  460.  
  461.        Use Pause Points to create message boxes to inform the viewer what is 
  462.        going to happen next, at each point in the tutorial. 
  463.  
  464.     2. You can use PMATE to create some unusual effects in OS/2. For example, 
  465.        you could change the position and size of the WorkPlace Shell's desktop 
  466.        itself: 
  467.  
  468.       - Start recording 
  469.       - Select "Fix window position->Single window" and click on the desktop 
  470.       - Immediately stop the recording 
  471.       - Edit the resulting script file to change values in the the 'Focus "OS/2 
  472.         2.0 Desktop" position (-1,-1) size (1026,792)' statement. 
  473.       - Save the changes and play back the script. 
  474.  
  475.        If you have set your Desktop Settings Icon Format to "flowed", values of 
  476.        0, 0, 100, 480 give an interesting effect. (But remember the original 
  477.        values, so you can change them back again.) 
  478.  
  479.  
  480. ΓòÉΓòÉΓòÉ 6. Commands by function ΓòÉΓòÉΓòÉ
  481.  
  482. In this section, PMATE commands are separated into five functional categories. 
  483.  
  484. You can obtain detailed information and the syntax for each particular command 
  485. by expanding each category in the Contents page of this reference and selecting 
  486. the appropriate command. 
  487.  
  488. Each command includes the following information: 
  489.  
  490. o The purpose of the command 
  491.  
  492. o Command syntax diagram 
  493.  
  494. o Information about using the command. 
  495.  
  496. Note:  For information about command diagrams, select How to Read a Syntax 
  497. Diagram 
  498.  
  499.  
  500. ΓòÉΓòÉΓòÉ 6.1. Script Comments ΓòÉΓòÉΓòÉ
  501.  
  502. Comment lines are any one of the following characters "/ ; # !" as the first 
  503. non-whitespace character of a script line followed by the comment text. 
  504. Comments are terminated by the end of the current line, so comments cannot span 
  505. multiple lines. 
  506.  
  507. You can specify that comment lines will be output to the log file during 
  508. playback by including the /w command line option with a value of 1 or higher 
  509. (i.e. /w1). This is useful for determining where a comparison error occurred 
  510. within the script. 
  511.  
  512. During a record session if one has the automatic comments switch turned on 
  513. pmate will generate a comment at the end of each selected mouse or keyboard 
  514. event.  Pmate attempts to output the text of the control + the type of control 
  515. + the window which contains the control.  This feature enables comments like 
  516. the following: 
  517.  
  518. //  "Refresh" (BUTTON) in "PMATE RECORD DLL" (Window)
  519.  
  520. The following are examples of valid comments: 
  521.  
  522. //---- Variation #1
  523.  
  524.       #============================#
  525.       # testing for a valid format #
  526.       #============================#
  527.  
  528. ;Starting the test now.
  529.  
  530. !.. don't forget ..
  531.  
  532. /Delay (1000)
  533.  
  534. Note:  Blank lines, tab keys and spaces are all valid in a script file. 
  535.  
  536.  
  537. ΓòÉΓòÉΓòÉ 6.2. Segment Labels ΓòÉΓòÉΓòÉ
  538.  
  539. Segments are defined as any script line with a colon ':' as the first 
  540. non-whitespace character followed by any reasonable number of ascii chars. 
  541. Whitespace characters are not allowed IN the segment label itself (including 
  542. immediatley after the colon). Segment Labels are not case sensitive. 
  543.  
  544. The following are examples of valid segment labels: 
  545.  
  546.  
  547. :INITIALIZE
  548.  
  549.    :Variation_Number1
  550.  
  551. :Close
  552.  
  553. See the  Helpful Hints section in this document for a suggested usage of 
  554. segment labels. Also read the Getting Started with Segments section for a 
  555. description of how to record/playback segments. See the section on Command line 
  556. arguments for a example and syntax from the command line. 
  557.  
  558.  
  559. ΓòÉΓòÉΓòÉ 6.3. How to Read a Syntax Diagram ΓòÉΓòÉΓòÉ
  560.  
  561. A syntax diagram shows you how to enter a command so that the PMATE system can 
  562. correctly interpret the command. PMATE automatically generates all of the 
  563. commands for you. Therefore purpose of these diagrams is to provide 
  564. documentation for the users who will be manually modifying/creating the PMATE 
  565. script files. When viewing a syntax diagram, read from left to right and from 
  566. top to bottom. The command name and items required to make the command work 
  567. appear on the baseline; the items below the baseline are optional. A line 
  568. ending with an arrowhead means that the diagram is continued. A line starting 
  569. with an arrowhead means that the syntax is continued from the previous line. A 
  570. vertical bar marks the end of the command syntax. 
  571.  
  572. Parameters are classified as keywords, parameters, or a combination of both. A 
  573. keyword has a predefined value. It appears in mixed case letters and must be 
  574. typed exactly as shown. A command name is a keyword. Parameters represent names 
  575. or values you supply. They are shown in lowercase letters, but may be entered 
  576. in any case. A file name is a variable. Include all punctuation shown in the 
  577. diagram, such as colons, semicolons, commas, quotation marks, and equal signs. 
  578.  
  579. Specify a Sequence More Than Once: An arrow below the main path that returns to 
  580. a previous point means the sequence of items included by the arrow can be 
  581. specified more than once. 
  582.  
  583. TYPE ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇ filename ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöñ
  584.                ΓööΓöÇ drive ΓöÇΓöÿ   ΓööΓöÇ path ΓöÇΓöÿ                Γöé
  585.            ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  586.  
  587. Specify Items Once in Any Order: A stack of parameters with a return arrow 
  588. above the main path indicates one or more parameters can be specified in any 
  589. order, but each parameter can be specified only once. 
  590.  
  591. ΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇ CHKDSK ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇ
  592.    ΓööΓöÇ drive ΓöÇΓöÿ ΓööΓöÇ path ΓöÇΓöÿ                 ΓööΓöÇ drive ΓöÇΓöÿ
  593.  
  594.                               ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ  ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  595. ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓö┤ΓöÇΓöÇΓöñ
  596.    ΓööΓöÇ path ΓöÇΓöÿ ΓööΓöÇ filename ΓöÇΓöÿ     Γö£ΓöÇ /F ΓöÇΓöñ      Γö£ΓöÇ /C ΓöÇΓöÇΓöÇΓöñ
  597.                                  ΓööΓöÇ /V ΓöÇΓöÿ      ΓööΓöÇ /F:n ΓöÇΓöÿ
  598.  
  599. Choose One Item from a Stack: A stack of parameters with no return arrow means 
  600. that you cannot choose more than one from the stack. 
  601.  
  602.                                     ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  603.  ΓöÇΓöÇ Click ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇ1ΓöÇΓö¼ΓöÇΓö¼ΓöÇΓöÇΓöÇΓö¼Γö┤Γö¼<ALT>ΓöÇΓöÇΓö¼Γö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  604.            Γöé    ΓöéΓöé      ΓöéΓö£ΓöÇ2ΓöÇΓöñ Γöé   Γöé Γö£<SHIFT>Γöñ
  605.            ΓööwithΓöÿΓööbuttonΓöÿΓööΓöÇ3ΓöÇΓöÿ ΓööandΓöÿ Γöö<CTRL>ΓöÇΓöÿ
  606.  
  607.  ΓöÇΓöÇΓö¼ΓöÇΓöÇΓö¼ΓöÇ(x,y)ΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöñ
  608.     ΓööatΓöÿ         ΓööreleaseΓöÿΓööafterΓöÿΓöö(x)ΓöÿΓöömillisecondsΓöÿ
  609.  
  610. Choose One Item from within a Stack: Some diagrams show a stack of parameters 
  611. within another stack. If the inner stack has no return arrow and the outer 
  612. stack has a return arrow above the main path, you can choose only one parameter 
  613. from the inner stack. That parameter can be combined (in any order) with any of 
  614. the parameters from the outer stack. 
  615.  
  616.                                      ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  617.                                                        Γöé
  618. ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇ PRINT ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓö┤ΓöÇΓöÇ
  619.   ΓööΓöÇ drive ΓöÇΓöÿ ΓööΓöÇ path ΓöÇΓöÿ               Γö£ΓöÇ /D:device ΓöÇΓöñ
  620.                                        ΓööΓöÇΓöÇΓöÇΓöÇΓöÇ /B ΓöÇΓöÇΓöÇΓöÇΓöÿ
  621.                                          ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  622.                                                          Γöé
  623. ΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ filename ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓö¼Γö┤Γöñ
  624.    ΓööΓöÇ drive ΓöÇΓöÿΓööΓöÇ path ΓöÇΓöÿ             Γöé    Γöé  Γö£ΓöÇ /C ΓöÇΓöñ   Γöé
  625.   Γöé                                   Γöé    Γöé  ΓööΓöÇ /T ΓöÇΓöÿ   Γöé
  626.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ    ΓööΓöÇ /D:device ΓöÇΓöÿ
  627.  
  628. In this example, you can specify /D:device and /C once in any order, or you can 
  629. specify /D:device and /T once in any order, but you cannot specify /C and /T 
  630. together. 
  631.  
  632.  
  633. ΓòÉΓòÉΓòÉ 6.4. Mouse ΓòÉΓòÉΓòÉ
  634.  
  635. Mouse movement is controlled by a set of four commands: Click, Doubleclick, 
  636. Drag and Chord. These commands give the ability to use menus, move windows, 
  637. select objects, bring up the task list, etc. 
  638.  
  639.  
  640. ΓòÉΓòÉΓòÉ 6.4.1. Click ΓòÉΓòÉΓòÉ
  641.  
  642.                                     ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  643.  ΓöÇΓöÇ Click ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇ1ΓöÇΓö¼ΓöÇΓö¼ΓöÇΓöÇΓöÇΓö¼Γö┤Γö¼<ALT>ΓöÇΓöÇΓö¼Γö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  644.            Γöé    ΓöéΓöé      ΓöéΓö£ΓöÇ2ΓöÇΓöñ Γöé   Γöé Γö£<SHIFT>Γöñ
  645.            ΓööwithΓöÿΓööbuttonΓöÿΓööΓöÇ3ΓöÇΓöÿ ΓööandΓöÿ Γöö<CTRL>ΓöÇΓöÿ
  646.  
  647.  ΓöÇΓöÇΓö¼ΓöÇΓöÇΓö¼ΓöÇ(x,y)ΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöñ
  648.     ΓööatΓöÿ         ΓööreleaseΓöÿΓööafterΓöÿΓöö(x)ΓöÿΓöömillisecondsΓöÿ
  649.  
  650. Click emulates pressing any one of the three mouse buttons at any screen 
  651. coordinate. This may be used to select menu options or respond to dialog boxes 
  652. etc. 
  653.  
  654. Script Examples: 
  655.  
  656.    Click with button 1 at ( 124, 87 ) release after (94) milliseconds
  657.    Click 2 ( 67, 222 ) (20)
  658.  
  659.  
  660. ΓòÉΓòÉΓòÉ 6.4.2. Doubleclick ΓòÉΓòÉΓòÉ
  661.  
  662.  ΓöÇΓöÇ DoubleClick ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇ1ΓöÇΓö¼ΓöÇΓöÇΓö¼ΓöÇΓöÇΓö¼ΓöÇ(x,y)ΓöÇΓöÇΓöñ
  663.                  Γöé    ΓöéΓöé      ΓöéΓö£ΓöÇ2ΓöÇΓöñ  ΓööatΓöÿ
  664.                  ΓööwithΓöÿΓööbuttonΓöÿΓööΓöÇ3ΓöÇΓöÿ
  665.  
  666. Doubleclick emulates a double click operation with the mouse. Any of the three 
  667. mouse buttons may be used for the double click. 
  668.  
  669. The position of the mouse pointer at the time of the doubleclick is specified 
  670. in screen coordinates. 
  671.  
  672. It should be noted that sometimes on slower or more taxed machines a 
  673. doubleclick will require the window which is to receive the doubleclick to be 
  674. the active window. This can be acomplished by using either the focus command 
  675. followed by a delay, or by clicking on the title bar of the window where the 
  676. doubleclick is going to occur. 
  677.  
  678. Script Examples: 
  679.  
  680.    Doubleclick with button 1 at ( 124, 87 )
  681.    Doubleclick 2 ( 67, 222 )
  682.  
  683.  
  684. ΓòÉΓòÉΓòÉ 6.4.3. Drag ΓòÉΓòÉΓòÉ
  685.  
  686.                                     ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  687.  ΓöÇΓöÇ Drag ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇ1ΓöÇΓö¼ΓöÇΓö¼ΓöÇΓöÇΓöÇΓö¼Γö┤Γö¼<ALT>ΓöÇΓöÇΓö¼Γö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  688.            Γöé    ΓöéΓöé      ΓöéΓö£ΓöÇ2ΓöÇΓöñ Γöé   Γöé Γö£<SHIFT>Γöñ
  689.            ΓööwithΓöÿΓööbuttonΓöÿΓööΓöÇ3ΓöÇΓöÿ ΓööandΓöÿ Γöö<CTRL>ΓöÇΓöÿ
  690.  
  691.  ΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ ( x1 , y1 ) ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ ( x2 , y2 ) ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  692.      ΓööΓöÇ from  Γöÿ                ΓööΓöÇ to Γöÿ
  693.  
  694.  
  695. ΓòÉΓòÉΓòÉ 6.4.4. Chord ΓòÉΓòÉΓòÉ
  696.  
  697.  ΓöÇΓöÇ Chord ΓöÇΓöÇΓö¼ΓöÇΓöÇΓö¼ΓöÇ(x,y)ΓöÇΓöÇΓöñ
  698.             ΓööatΓöÿ
  699.  
  700. Chord emulates the pressing of both the left and right buttons on a mouse at 
  701. the same time. This action brings up the OS/2 Window List. The window list can 
  702. also be brought up by typing <CTRL><ESC>. 
  703.  
  704. Note the Chord command will only work if it is done on a blank portion of the 
  705. desktop (ie: a portion not covered by a Window or Icon. 
  706.  
  707. The position of the mouse pointer at the time of the chord is specified in 
  708. screen coordinates. 
  709.  
  710. Script Example: 
  711.  
  712.    Chord at (124,87)
  713.    Chord (67,222)
  714.  
  715.  
  716. ΓòÉΓòÉΓòÉ 6.5. Keyboard ΓòÉΓòÉΓòÉ
  717.  
  718. Keyboard input is simulated by the Key and VioKey commands. Characters to be 
  719. displayed in PM applications are processed with the Key command, while 
  720. characters intended for windowed command sessions use the VioKey command. 
  721.  
  722. Strings of ASCII characters are enclosed in double quotes. Modified characters 
  723. such as ALT-A are each processed as a separate key command. special function 
  724. keys such as: Insert, Delete, Page Up, Page Down, F1...F12, etc. are also only 
  725. be processed as separate single key commands. 
  726.  
  727. A quoted string should not exceed 60 characters, for readability reasons. 
  728. Quoted strings are automatically split at the most convenient location by the 
  729. record system in order to not extend past the edge of the edit window. 
  730.  
  731.  
  732. ΓòÉΓòÉΓòÉ 6.5.1. Key ΓòÉΓòÉΓòÉ
  733.  
  734.  ΓöÇΓöÇΓöÇΓöÇ Key ΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  735.              Γöé  ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ  ΓöîΓöÇ keyname ΓöÇΓöÇΓöÉ   Γöé
  736.              ΓööΓöÇΓöÇΓö┤ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓö┤ΓöÇΓöÇΓöñ            Γö£ΓöÇΓöÇΓöÇΓöÿ
  737.                   Γö£ <CTRL> ΓöÇΓöñ    Γöö ASCII key ΓöÇΓöÿ
  738.                   Γö£ΓöÇ <ALT> ΓöÇΓöñ
  739.                   Γöö <SHIFT> Γöÿ
  740.  ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  741.            Γöé        ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ          Γöé
  742.            ΓööΓöÇΓöÇΓöÇ " ΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇ ASCII key ΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇ " ΓöÇΓöÇΓöÇΓöÿ
  743.  
  744. Keystrokes for a Presentation Manager  window are processed with this command. 
  745.  
  746. Note: Within the quotes \\ is converted to \ and \" is converted to ". 
  747.  
  748.    Key "This is some UPPER and lower case text"
  749.  
  750. The text in double quotes will be placed at the cursor position in the active 
  751. window, with case preserved. 
  752.  
  753.    Key <ALT>F
  754.  
  755. Assuming the active window has a menu bar, the file menu will appear. 
  756.  
  757.    Key <CTRL><ALT><SHIFT>O
  758.  
  759. An example of a multi-key combination. 
  760.  
  761.  
  762. ΓòÉΓòÉΓòÉ 6.5.2. VioKey ΓòÉΓòÉΓòÉ
  763.  
  764.  ΓöÇΓöÇΓöÇ VioKey ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  765.              Γöé  ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ  ΓöîΓöÇ keyname ΓöÇΓöÇΓöÉ   Γöé
  766.              ΓööΓöÇΓöÇΓö┤ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓö┤ΓöÇΓöÇΓöñ            Γö£ΓöÇΓöÇΓöÇΓöÿ
  767.                   Γö£ <CTRL> ΓöÇΓöñ    Γöö ASCII key ΓöÇΓöÿ
  768.                   Γö£ΓöÇ <ALT> ΓöÇΓöñ
  769.                   Γöö <SHIFT> Γöÿ
  770.  
  771.  ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  772.            ΓööΓöÇΓöÇΓöÇ " ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇ ASCII key ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇ " ΓöÇΓöÇΓöÇΓöÿ
  773.                     ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  774.  
  775. Keystrokes for a windowed command session are handled by this command. 
  776.  
  777.    VioKey "dir"
  778.    VioKey <ENTER>
  779.  
  780. It is assumed that focus is set on an OS/2* window ready to accept input at the 
  781. command prompt. A directory listing will begin to scroll by in the window. 
  782.  
  783.  
  784. ΓòÉΓòÉΓòÉ 6.5.3. Special Keys ΓòÉΓòÉΓòÉ
  785.  
  786. Listed below are the correct designations for each of the special keys found on 
  787. a standard keyboard. Each mnemonic has to be enclosed in angled brackets, and 
  788. is self-explanatory. 
  789.  
  790. o Key Modifiers 
  791.  
  792.    - <CTRL> 
  793.    - <ALT> 
  794.    - <SHIFT> 
  795.  
  796. o Cursor Movement Keys 
  797.  
  798.    - <PGUP> 
  799.    - <PGDN> 
  800.    - <HOME> 
  801.    - <END> 
  802.    - <UP> 
  803.    - <DOWN> 
  804.    - <LEFT> 
  805.    - <RIGHT> 
  806.  
  807. o Special Use Keys 
  808.  
  809.    - <SCRLOCK> 
  810.    - <NUMLOCK> 
  811.    - <CAPSLOCK> 
  812.    - <ESC> 
  813.    - <TAB> 
  814.    - <BACK_TAB> 
  815.    - <ENTER> 
  816.    - <NUMPAD_ENTER> 
  817.    - <BKSP> 
  818.    - <SPACE> 
  819.    - <PRTSCR> 
  820.    - <PAUSE> 
  821.    - <INSERT> 
  822.    - <DELETE> 
  823.  
  824. o Function Keys 
  825.  
  826.    - <F1> 
  827.    - <F2> 
  828.    - <F3> 
  829.    - <F4> 
  830.    - <F5> 
  831.    - <F6> 
  832.    - <F7> 
  833.    - <F8> 
  834.    - <F9> 
  835.    - <F10> 
  836.    - <F11> 
  837.    - <F12> 
  838.  
  839.  
  840. ΓòÉΓòÉΓòÉ 6.6. Graphics ΓòÉΓòÉΓòÉ
  841.  
  842. Coordinates are all specified in terms of absolute screen coordinates where the 
  843. origin is the lower left hand corner. X values increase from left to right, Y 
  844. values increase from bottom to top. 
  845.  
  846. Video comparisons may be accomplished in two ways: 
  847.  
  848. o A CRC comparison calculates a single value representing the marked screen 
  849.   area. Current calculated and recorded values are compared for exact equality. 
  850.  
  851.   CRC captures only indicate if the original region is correct, with no 
  852.   indication of what any differences may be. However, as a single value held 
  853.   within the script file, disk storage is minimized. 
  854.  
  855.   When a difference is detected (and we are not in automatic playback mode), 
  856.   the current region will be highlighted along with a dialog box requesting to 
  857.   accept or reject the change in CRC value. 
  858.  
  859.   Rejection of the difference will result in a failure of the comparison. If 
  860.   the difference is acceptable, the current CRC value will be incorporated into 
  861.   the script file, for use in subsequent test runs. 
  862.  
  863. o Bitmap comparisons require the recorded section of the screen be stored on 
  864.   disk. Current and recorded images are compared for exact equality. 
  865.  
  866.   Bitmap captures require additional storage resources, but offer the benefit 
  867.   of being able to compare the recorded region to the current region, so that 
  868.   differences from test to test may be noted exactly. 
  869.  
  870.   When a difference is detected (and we are not in automatic playback mode), 
  871.   the recorded bitmap will be displayed to the immediate right of the current 
  872.   region (both in movable windows). A dialog box requesting to accept or reject 
  873.   the differences in the two images will also be displayed. 
  874.  
  875.   Rejection of the difference will result in a failure of the comparison. If 
  876.   the difference is acceptable, the current region will be saved to disk to 
  877.   replace the recorded bitmap region and the comparison will be considered to 
  878.   have been successful. 
  879.  
  880. All changes to CRC and Bitmap compares are noted in the script file, together 
  881. with the date and time at which the change occured. 
  882.  
  883. If a CRC or Bitmap compare fails, the error is sent to the user-defined log 
  884. file. 
  885.  
  886.  
  887. ΓòÉΓòÉΓòÉ 6.6.1. Bitmap compare ΓòÉΓòÉΓòÉ
  888.  
  889.  ΓöÇΓöÇ Bitmap ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼(x,y,cx,cy)Γö¼ΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ"filename"ΓöÇΓöÇ
  890.             ΓööcompareΓöÿΓöörectangleΓöÿ           ΓööwithΓöÿΓööfileΓöÿ
  891.  
  892.  Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöñ
  893.   ΓöörepeatΓöÿΓöö(count)ΓöÿΓöötimes at intervals ofΓöÿΓöö(t)ΓöÿΓöömillisecondsΓöÿ
  894.  
  895. Compare the bitmap of the indicated region of the active screen to a previously 
  896. recorded bitmap stored on disk. Until the test passes, do this count times with 
  897. a (t) time interval between each test. Note, the smaller the time interval the 
  898. more time slice PMATE will require to do the comparisons. 
  899.  
  900. When a difference is detected (and we are not in automatic playback mode), the 
  901. recorded bitmap and the current region will be displayed along with a dialog 
  902. box requesting to accept or reject the differences in the two images. 
  903.  
  904. If accepted, playback continues and the current bitmap will replace the old one 
  905. on disk. Rejecting the failure will log an error in the logfile. 
  906.  
  907. When a difference is detected in automatic playback mode, pmate stores the bad 
  908. bitmap to disk for subsequent investigation using a separate bitmap viewer 
  909. utility.  The bad bitmap filename used is the same as the good bitmap's name 
  910. with a .bad extention. 
  911.  
  912. Example: 
  913.  
  914.    Bitmap compare rectangle ( 169, 327, 216, 372 ) with file "testhand.bmp"
  915.       repeat (10) times at intervals of (1000) milliseconds
  916.  
  917.  
  918. ΓòÉΓòÉΓòÉ 6.6.2. CRC compare ΓòÉΓòÉΓòÉ
  919.  
  920.  ΓöÇΓöÇ CRC ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼(x,y,cx,cy)Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼(crcvalue)ΓöÇ
  921.          ΓööcompareΓöÿΓöörectangleΓöÿ           Γööwith resultΓöÿ
  922.  
  923.  ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöñ
  924.     ΓöörepeatΓöÿΓöö(count)ΓöÿΓöötimes at intervals ofΓöÿΓöö(t)ΓöÿΓöömillisecondsΓöÿ
  925.  
  926. A CRC value will be calculated for the given rectangular region of the screen, 
  927. and that value will be compared to the indicated value. If there is a match 
  928. playback continues. Until the test passes, do this count times with a (t) time 
  929. interval between each test. Note, the smaller the time interval the more time 
  930. slice PMATE will require to do the comparisons. 
  931.  
  932. In the case of a mismatch (and we are not in automatic playback mode), the user 
  933. is be presented with a message box noting the comparison failure. At this point 
  934. the difference may be accepted or rejected. 
  935.  
  936. If accepted, playback continues and the new CRC value is automatically updated 
  937. in the script. Rejecting the failure will place a failure entry in the log 
  938. file. 
  939.  
  940. When a difference is detected in automatic playback mode, pmate stores the bad 
  941. bitmap to disk for subsequent investigation using a separate bitmap viewer 
  942. utility. The CRC saves are done to the file CRC?????.BAD and the file name is 
  943. placed in the log file. 
  944.  
  945. Example: 
  946.  
  947.    CRC compare rectangle (69,433,582,475) with result (125003691)
  948.       repeat (10) times at intervals of (100) milliseconds
  949.  
  950.  
  951. ΓòÉΓòÉΓòÉ 6.6.3. Display resolution ΓòÉΓòÉΓòÉ
  952.  
  953.  ΓöÇΓöÇΓöÇΓöÇ Display ΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ (x,y) ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  954.                  ΓööΓöÇ resolution ΓöÇΓöÿ
  955.  
  956. Screen resolution of the recorded system. 
  957.  
  958. Example: 
  959.  
  960.    Display resolution (1024,768)       High resolution
  961.    Display resolution (640,480)        Standard VGA
  962.  
  963.  
  964. ΓòÉΓòÉΓòÉ <hidden> Point ΓòÉΓòÉΓòÉ
  965.  
  966. Coordinates (Points) are all specified in terms of absolute screen coordinates 
  967. where the origin is the lower left hand corner. X values increase from left to 
  968. right, Y values increase from bottom to top. 
  969.  
  970.  
  971. ΓòÉΓòÉΓòÉ 6.7. Control ΓòÉΓòÉΓòÉ
  972.  
  973. The Delay command forces a pause to occur on the system during playback. 
  974.  
  975. The Focus command waits for and positions windows during playback. 
  976.  
  977. The Pause command provides for interaction with the desktop during playback. 
  978.  
  979.  
  980. ΓòÉΓòÉΓòÉ 6.7.1. Delay ΓòÉΓòÉΓòÉ
  981.  
  982.    ΓöÇΓöÇΓöÇΓöÇ Delay ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ ( time ) ΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  983.                                  Γöö milliseconds Γöÿ
  984.  
  985. Set a delay time, or pause in the script. 
  986.  
  987. Note:  The initial delay recorded in the script will be the delay which 
  988. actually occurred during the recording of the script, modified by the maximum 
  989. delay selected from the Record Settings dialog. You can make this delay larger 
  990. or smaller, but you must take care that the delay was not necessary. 
  991.  
  992. Also note that on a slower system delays may need to be larger. It is 
  993. recommended that you record your initial script on the slowest machine. 
  994.  
  995.    VioKey "dir > test.dir"
  996.    VioKey <ENTER>
  997.    Delay (1000) milliseconds
  998.    VioKey "print test.dir"
  999.    VioKey <ENTER>
  1000.  
  1001. This delay command will cause a 1 second delay during playback between the 
  1002. VioKey commands. 
  1003.  
  1004.  
  1005. ΓòÉΓòÉΓòÉ 6.7.2. Focus ΓòÉΓòÉΓòÉ
  1006.  
  1007.  ΓöÇΓöÇ Focus "name" ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼(x,y)ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓö¼(cx,cy)Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼
  1008.                   ΓööpositionΓöÿ      ΓöösizeΓöÿ       ΓöörepeatΓöÿΓöö(count)Γöÿ
  1009.  
  1010.  ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöñ
  1011.     Γöötimes at intervals ofΓöÿΓöö(t)ΓöÿΓöömillisecondsΓöÿΓöö(SWP_ACTIVATE-)Γöÿ
  1012.  
  1013. Set the size and position of a window specified by "name". PMATE will select 
  1014. the first window it finds on top of the window list. 
  1015.  
  1016. Until the window is found, search count times with a (t) time interval between 
  1017. each search. Note, the smaller the time interval the more time slice PMATE will 
  1018. require to do the searches. 
  1019.  
  1020. (SWP_ACTIVATE-) is a flag which tells PMATE to size and position the requested 
  1021. window but to leave it at its current location in the window ordering. This is 
  1022. sometimes called the Z-Order of a window. The default is SWP_ACTIVATE which 
  1023. will pop the window designated to the top of all other windows. When recording 
  1024. a script PMATE records in SWP_ACTIVATE mode for all manual focus calls (Fix 
  1025. window position->Single window and/or ->Entire Destop). When recording with the 
  1026. Auto Focus Button switched on, all automatic focus commands are recorded with 
  1027. SWP_ACTIVATE-. 
  1028.  
  1029. During record mode Auto Focus is a proactive focus. If the auto focus switch is 
  1030. turned on, each time the user performs an action PMATE will determine if the 
  1031. action occured on a un-focused window.  If this is a new window or the size of 
  1032. the window has changed PMATE records the new window size and position to the 
  1033. script file. 
  1034.  
  1035. During playback pmate records any failures to execute the focus command. If the 
  1036. window can be moved but not to the correct size / location, pmate records to 
  1037. the log file the size / location it was able to set it to.  This enables one to 
  1038. fix the script to focus to the correct location without incurring the warning 
  1039. message or the time delay during playback. 
  1040.  
  1041.  
  1042. ΓòÉΓòÉΓòÉ 6.7.3. Pause ΓòÉΓòÉΓòÉ
  1043.  
  1044.  ΓöÇΓöÇ Pause ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇ"Message Text" ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼(milliseconds)ΓöÇΓöÇ
  1045.            ΓööMessageΓöÿ                  ΓööDelayΓöÿ
  1046.  
  1047.  ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼(BELL)Γö¼Γö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼ΓöÇΓöÇ(x,y)ΓöÇΓöÇΓöÇΓö¼ΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼Γö¼(x,y)ΓöÇΓö¼ΓöÇΓöñ
  1048.    ΓööSoundΓöÿΓöö(NONE)ΓöÿΓööLocationΓöÿΓöö(CENTERED)Γöÿ ΓööHot PointΓöÿΓöö(NONE)Γöÿ
  1049.  
  1050. This command introduces a "PAUSE POINT" during playback of a PMATE script. The 
  1051. effect of a pause point is that a message box is displayed containing the 
  1052. specified message text. The message box remains on the screen until a countdown 
  1053. timer of specified duration elapses, or until the user intervenes. 
  1054.  
  1055. The pause command gives PMATE the ability to act as a demonstration or 
  1056. tutorial; give the user feedback; issue a series of instructions; act as a 
  1057. stop-watch; or create points in the script where playback can be interrupted. 
  1058. (The stop-watch feature uses pause points in conjunction with the /w2 logfile 
  1059. command line option.) 
  1060.  
  1061. The following example will display a pause point message box, ring the bell, 
  1062. and wait 1000000 milliseconds (about 16 minutes) before continuing. The user 
  1063. may continue the script at any time, wait for the count down to finish, or 
  1064. abort the playback. 
  1065.  
  1066. Pause Message "Hello, we are going to launch" Delay(1000000) Sound(BELL) Location(68,417) Hot Point(351,715)
  1067.  
  1068. The following example is good for providing a time stamp and / or for creating 
  1069. a (<CTRL><BREAK>) breakout location in the script. 
  1070.  
  1071. Pause Message "" Delay(0) Sound(NONE) Location(68,417) Hot Point(351,715)
  1072.  
  1073. The delay time can extend up to 999999999 milliseconds (277 hours 47 min or 11 
  1074. 1/2 days). 
  1075.  
  1076.  
  1077. ΓòÉΓòÉΓòÉ 6.8. WM_message (binary) Mode ΓòÉΓòÉΓòÉ
  1078.  
  1079.  ΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ WM_n ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇ MP1(n) ΓöÇΓöÇ MP2(n) ΓöÇΓöÇ DELAY(n) ΓöÇΓöÇΓöÇΓöÇΓöñ
  1080.    Γö£ΓöÇΓöÇΓöÇΓöÇ WM_CHAR ΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1081.    Γö£ΓöÇΓöÇΓöÇ WM_VIOCHAR ΓöÇΓöÇΓöÇΓöñ
  1082.    Γö£ΓöÇ WM_BUTTON1DOWN ΓöÇΓöñ
  1083.    Γö£ΓöÇΓöÇ WM_BUTTON1UP ΓöÇΓöÇΓöñ
  1084.    Γö£ΓöÇ WM_BUTTON2DOWN ΓöÇΓöñ
  1085.    Γö£ΓöÇΓöÇ WM_BUTTON2UP ΓöÇΓöÇΓöñ
  1086.    Γö£ΓöÇ WM_BUTTON3DOWN ΓöÇΓöñ
  1087.    Γö£ΓöÇΓöÇ WM_BUTTON3UP ΓöÇΓöÇΓöñ
  1088.    ΓööΓöÇΓöÇ WM_MOUSEMOVE ΓöÇΓöÇΓöÿ
  1089.  
  1090.    n = any valid hex / octal / or decimal value
  1091.  
  1092. After selecting the "Record as WM_messages" option from the record menu, PMATE 
  1093. will record every single WM_ message generated by the system. This includes all 
  1094. mouse moves and any special keystroke / mouse combinations. 
  1095.  
  1096. Warning: This will create a very large script file very quickly. If the file 
  1097. gets too large you will have to use another editor like EPM to manage the 
  1098. script. It is suggested you use the binary mode sparingly, and switch back to 
  1099. the "Record as Script" mode absolutely as soon as possible. 
  1100.  
  1101. The following is a recording which moves the mouse to a location on the desktop 
  1102. where there is an OS/2 command window; clicks on the window; then types the 
  1103. command "dir" followed by the <ENTER> key. By comparison, the example is 
  1104. followed by a Script example which performs the same steps. 
  1105.  
  1106.  
  1107. Focus "OS/2 Window" position (292,313) size (648,430) repeat (10) times at intervals of (1000) milliseconds
  1108.  
  1109. Recorded as "WM_messages":
  1110.  
  1111.    WM_MOUSEMOVE   MP1(0x00cb0181) MP2(0x00000000) DELAY(0x00000000)
  1112.    WM_MOUSEMOVE   MP1(0x010501f3) MP2(0x00000000) DELAY(0x0000003e)
  1113.    WM_MOUSEMOVE   MP1(0x010a01f2) MP2(0x00000000) DELAY(0x00000119)
  1114.    WM_MOUSEMOVE   MP1(0x011a0213) MP2(0x00000000) DELAY(0x00000020)
  1115.    WM_MOUSEMOVE   MP1(0x012802a8) MP2(0x00000000) DELAY(0x0000001f)
  1116.    WM_MOUSEMOVE   MP1(0x012d0301) MP2(0x00000000) DELAY(0x00000000)
  1117.    WM_MOUSEMOVE   MP1(0x012e0302) MP2(0x00000000) DELAY(0x0000005e)
  1118.    WM_MOUSEMOVE   MP1(0x012e0303) MP2(0x00000000) DELAY(0x0000001f)
  1119.    WM_MOUSEMOVE   MP1(0x012a02fd) MP2(0x00000000) DELAY(0x000000db)
  1120.    WM_MOUSEMOVE   MP1(0x012e02ff) MP2(0x00000000) DELAY(0x0000001f)
  1121.    WM_MOUSEMOVE   MP1(0x013c0314) MP2(0x00000000) DELAY(0x0000001f)
  1122.    WM_MOUSEMOVE   MP1(0x014e0328) MP2(0x00000000) DELAY(0x0000001f)
  1123.    WM_MOUSEMOVE   MP1(0x015d0334) MP2(0x00000000) DELAY(0x00000000)
  1124.    WM_MOUSEMOVE   MP1(0x01680344) MP2(0x00000000) DELAY(0x00000020)
  1125.    WM_MOUSEMOVE   MP1(0x016c034b) MP2(0x00000000) DELAY(0x0000001f)
  1126.    WM_MOUSEMOVE   MP1(0x016c034c) MP2(0x00000000) DELAY(0x0000001f)
  1127.    WM_MOUSEMOVE   MP1(0x016d034f) MP2(0x00000000) DELAY(0x0000001f)
  1128.    WM_MOUSEMOVE   MP1(0x016d0351) MP2(0x00000000) DELAY(0x0000003f)
  1129.    WM_MOUSEMOVE   MP1(0x016d0361) MP2(0x00000000) DELAY(0x0000003e)
  1130.    WM_MOUSEMOVE   MP1(0x016d0368) MP2(0x00000000) DELAY(0x00000000)
  1131.    WM_MOUSEMOVE   MP1(0x016d0369) MP2(0x00000000) DELAY(0x00000020)
  1132.    WM_BUTTON1DOWN MP1(0x016d0369) MP2(0x000083fe) DELAY(0x0000007d)
  1133.    WM_MOUSEMOVE   MP1(0x016d0369) MP2(0x00000000) DELAY(0x0000001f)
  1134.    WM_BUTTON1UP   MP1(0x016d0369) MP2(0x000003fe) DELAY(0x0000003e)
  1135.    WM_MOUSEMOVE   MP1(0x016c0368) MP2(0x00000000) DELAY(0x00000020)
  1136.    WM_MOUSEMOVE   MP1(0x01680361) MP2(0x00000000) DELAY(0x0000001f)
  1137.    WM_MOUSEMOVE   MP1(0x0164035f) MP2(0x00000000) DELAY(0x0000001f)
  1138.    WM_MOUSEMOVE   MP1(0x0163035d) MP2(0x00000000) DELAY(0x00000000)
  1139.    WM_VIOCHAR     MP1(0x20011004) MP2(0x00002064) DELAY(0x00000252)
  1140.    WM_0x0000007c  MP1(0x00000002) MP2(0x0001002a) DELAY(0x00000000)
  1141.    WM_0x0000007c  MP1(0x00000002) MP2(0x00000036) DELAY(0x00000000)
  1142.    WM_0x0000007c  MP1(0x00000002) MP2(0x0001001d) DELAY(0x00000000)
  1143.    WM_0x0000007c  MP1(0x00000002) MP2(0x0000005b) DELAY(0x00000000)
  1144.    WM_0x0000007c  MP1(0x00000002) MP2(0x00000038) DELAY(0x00000000)
  1145.    WM_0x0000007c  MP1(0x00000002) MP2(0x0000005e) DELAY(0x00000000)
  1146.    WM_0x0000007c  MP1(0x00000002) MP2(0x00000054) DELAY(0x00000000)
  1147.    WM_VIOCHAR     MP1(0x17011004) MP2(0x00001769) DELAY(0x0000003e)
  1148.    WM_0x0000007c  MP1(0x00000002) MP2(0x0000002a) DELAY(0x00000000)
  1149.    WM_0x0000007c  MP1(0x00000002) MP2(0x00000036) DELAY(0x00000000)
  1150.    WM_0x0000007c  MP1(0x00000002) MP2(0x0000001d) DELAY(0x00000000)
  1151.    WM_0x0000007c  MP1(0x00000002) MP2(0x0000005b) DELAY(0x00000000)
  1152.    WM_0x0000007c  MP1(0x00000002) MP2(0x00000038) DELAY(0x00000000)
  1153.    WM_0x0000007c  MP1(0x00000002) MP2(0x0000005e) DELAY(0x00000000)
  1154.    WM_0x0000007c  MP1(0x00000002) MP2(0x00000054) DELAY(0x00000000)
  1155.    WM_VIOCHAR     MP1(0x13011004) MP2(0x00001372) DELAY(0x00000020)
  1156.    WM_0x0000007c  MP1(0x00000002) MP2(0x0000002a) DELAY(0x00000000)
  1157.    WM_0x0000007c  MP1(0x00000002) MP2(0x00000036) DELAY(0x00000000)
  1158.    WM_0x0000007c  MP1(0x00000002) MP2(0x0000001d) DELAY(0x00000000)
  1159.    WM_0x0000007c  MP1(0x00000002) MP2(0x0000005b) DELAY(0x00000000)
  1160.    WM_0x0000007c  MP1(0x00000002) MP2(0x00000038) DELAY(0x00000000)
  1161.    WM_0x0000007c  MP1(0x00000002) MP2(0x0000005e) DELAY(0x00000000)
  1162.    WM_0x0000007c  MP1(0x00000002) MP2(0x00000054) DELAY(0x00000000)
  1163.    WM_VIOCHAR     MP1(0x20011044) MP2(0x00402064) DELAY(0x0000003e)
  1164.    WM_VIOCHAR     MP1(0x17011044) MP2(0x00401769) DELAY(0x00000000)
  1165.    WM_VIOCHAR     MP1(0x13011044) MP2(0x00401372) DELAY(0x0000001f)
  1166.    WM_VIOCHAR     MP1(0x1c010004) MP2(0x00001c0d) DELAY(0x0000003f)
  1167.    WM_0x0000007c  MP1(0x00000002) MP2(0x0000002a) DELAY(0x00000000)
  1168.    WM_0x0000007c  MP1(0x00000002) MP2(0x00000036) DELAY(0x00000000)
  1169.    WM_0x0000007c  MP1(0x00000002) MP2(0x0000001d) DELAY(0x00000000)
  1170.    WM_0x0000007c  MP1(0x00000002) MP2(0x0000005b) DELAY(0x00000000)
  1171.    WM_0x0000007c  MP1(0x00000002) MP2(0x00000038) DELAY(0x00000000)
  1172.    WM_0x0000007c  MP1(0x00000002) MP2(0x0000005e) DELAY(0x00000000)
  1173.    WM_0x0000007c  MP1(0x00000002) MP2(0x00000054) DELAY(0x00000000)
  1174.    WM_VIOCHAR     MP1(0x1c010144) MP2(0x00401c0d) DELAY(0x0000005e)
  1175.  
  1176. Recorded as "Script":
  1177.  
  1178.    Click with button 1 at (591,454) release after (218) milliseconds
  1179.    Delay (1563) milliseconds
  1180.    VioKey "dir"
  1181.    VioKey <ENTER>
  1182.  
  1183.  
  1184. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  1185.  
  1186. OS/2, Presentation Manager, and IBM are Trademarks of the IBM corporation 
  1187.  
  1188.  
  1189. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  1190.  
  1191. Copyright IBM corporation 
  1192. Copyright CI, Software and Graphic Arts, Inc.
  1193.  
  1194.  
  1195. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  1196.  
  1197. "Filename" specifies the complete name of the file to use for the bitmap 
  1198. comparison, including the drive and directory where the file is located. 
  1199.  
  1200. If the drive and path are not specified, the current directory is assumed.