home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / rxswqry.zip / RxSwitchQuery.INF (.txt) < prev    next >
OS/2 Help File  |  1998-01-28  |  16KB  |  422 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Introduction ΓòÉΓòÉΓòÉ
  3.  
  4. RxSwitchQuery V1.00
  5. A REXX interface DLL for querying the WinSwitchList 
  6.  
  7. Copyright (C) 1998-01-28 - Mads Orbesen Troest & SIRIUS Cybernetics 
  8.  
  9. Documentation Revision 1.00 (1998-01-28)
  10.  
  11.  
  12. ΓòÉΓòÉΓòÉ 1.1. Abstract ΓòÉΓòÉΓòÉ
  13.  
  14. Abstract Introduction 
  15.  
  16. So... What on earth is this stuff all about?! 
  17.  
  18. RxSwitchQuery (RxIsRun.DLL) is a small OS/2 Dynamic Link Library (DLL) that 
  19. interfaces routines for querying the OS/2 system WinSwitchList with REXX. 
  20.  
  21. Querying the WinSwitchList allows you to check if a certain program (OS/2, DOS 
  22. or Windoze) is running. RxSwitchQuery also allows you to wait for a given 
  23. application to appear in the WinSwitchList, or for an application to disappear; 
  24. this is useful in situations where scripts have to be synchronised with running 
  25. programs. 
  26.  
  27. These functions cannot be made from standard REXX, and resorting to 
  28. tape-and-glue solutions of repeatedly calling external query programs is a very 
  29. slow and computionally intensive task. With this easy-to-use and versatile DLL, 
  30. you can easily and efficiently check for running OS/2, DOS or Windoze programs 
  31. from your standard REXX programs. 
  32.  
  33.  
  34. ΓòÉΓòÉΓòÉ 1.2. Conditions of Use ΓòÉΓòÉΓòÉ
  35.  
  36. Conditions of Use 
  37.  
  38. This version is to be considered internal SIRIUS Cybernetics software; it must 
  39. not be spread to other parties without the author's explicit accept! 
  40.  
  41. If you are not a member of SIRIUS Cybernetics, you may only use this package if 
  42. you have got the consent of Mads Orbesen Troest. 
  43.  
  44. Click here to see how to contact the author... 
  45.  
  46.  
  47. ΓòÉΓòÉΓòÉ 1.3. Contacting Author ΓòÉΓòÉΓòÉ
  48.  
  49. Contacting Author 
  50.  
  51. If you wish to contact me for any questions, feedback, suggestions or just 
  52. plain talk, you can reach me in the following ways: 
  53.  
  54.      SnailMail 
  55.  
  56.           Mads Orbesen Troest 
  57.           Dyrskuevej 53, 1.MF 
  58.           DK-9200 Aalborg SV 
  59.           Denmark 
  60.  
  61.      Phone 
  62.  
  63.           (+45) 3073 5352 (Voice) 
  64.           (+45) 9818 5383 (Fax/Data) 
  65.  
  66.      InterNet 
  67.  
  68.           motr96@sprog.auc.dk 
  69.           http://www.sprog.auc.dk/~motr96 
  70.           Eek @ #Eek & #OS/2 (IRC Net) 
  71.  
  72.      FTN 
  73.  
  74.           2:238/202@FidoNet 
  75.           81:445/202@OS2Net 
  76.  
  77.  Never you hesitate to write; I always enjoy response to my work! 
  78.  
  79.  
  80. ΓòÉΓòÉΓòÉ 2. Using RxSwitchQuery ΓòÉΓòÉΓòÉ
  81.  
  82. Using RxSwitchQuery 
  83.  
  84. This section describes how you make RxSwitchQuery accessible to your own REXX 
  85. code, and how you go about utilising the available functions. 
  86.  
  87.  
  88. ΓòÉΓòÉΓòÉ 2.1. Making RxSwitchQuery Accessible ΓòÉΓòÉΓòÉ
  89.  
  90. Making RxSwitchQuery Accessible 
  91.  
  92. The first thing you must do to be able to use RxSwitchQuery from your own REXX 
  93. programs is to tell the REXX interpreter which external functions to load from 
  94. which DLL. This is achieved through the RxFuncAdd command: 
  95.  
  96.           /* Sample REXX Code for making all functions of RxSwitchQuery (RxIsRun.DLL) available */
  97.  
  98.           CALL RxFuncAdd "RxSwitchQueryVer", "RxIsRun", "RxSwitchQueryVer"
  99.           CALL RxFuncAdd "RxSwitchQueryApp", "RxIsRun", "RxSwitchQueryApp"
  100.           CALL RxFuncAdd "RxSwitchQueryWaitAppInList", "RxIsRun", "RxSwitchQueryWaitAppInList"
  101.           CALL RxFuncAdd "RxSwitchQueryWaitAppNotInList", "RxIsRun", "RxSwitchQueryWaitAppNotInList"
  102.  
  103.  I know... I might have made it easier for you by providing a 
  104.  "RxSwitchQueryLoadFuncs" routine or something, but I was too lazy to do that; 
  105.  you'll have to accept this, or bug me to implement it in a newer version, if 
  106.  any such is to come. 
  107.  
  108.  A comment on unloading the DLL (and other REXX DLLs): It is, in fact, very 
  109.  nasty behaviour if you try to manually enforce OS/2 to drop the external 
  110.  functions it has loaded. OS/2 will automatically discard these DLLs when the 
  111.  session from which it was loaded is ended; if you force it to drop the 
  112.  functions before that, all other running programs that may use it will also 
  113.  loose the funcs! Please remember that OS/2 is a very advanced multi-tasking, 
  114.  self-managing system! 
  115.  
  116.  After having added the functions with the REXX RxFuncAdd call, you should be 
  117.  able to call them. The next section provides an overview of the set of 
  118.  routines to access the WinSwitchList from your own REXX application... 
  119.  
  120.  
  121. ΓòÉΓòÉΓòÉ 3. RxSwitchQuery Function Reference ΓòÉΓòÉΓòÉ
  122.  
  123. RxSwitchQuery Function Reference 
  124.  
  125. This section provides a reference of the functions that RxSwitchQuery 
  126. (RxIsRun.DLL) provide. These functions are: 
  127.  
  128.      RxSwitchQueryVer - Return Version Information 
  129.      RxSwitchQueryApp - Query WinSwitchList for Application 
  130.      RxSwitchQueryWaitAppInList - Wait for Application to Appear in 
  131.       WinSwitchList 
  132.      RxSwitchQueryWaitAppNotInList - Wait for Application to Disappear from 
  133.       WinSwitchList 
  134.  
  135.  Conventions 
  136.  
  137.    During the specification of the routines, the following conventions are 
  138.    followed: 
  139.  
  140.           ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  141.           Γöé[ brackets ]        ΓöéOptional argument; e.g. "[fishname] <dishname>"   Γöé
  142.           Γöé                    Γöémeans that you may provide the name of the fish,  Γöé
  143.           Γöé                    Γöéand you must provide that of the dish.            Γöé
  144.           Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  145.           Γöé< brackets >        ΓöéMandatory argument; e.g. "<fishname> [dishname]"  Γöé
  146.           Γöé                    Γöémeans that you have to provide the name of fish,  Γöé
  147.           Γöé                    Γöéand you may also provide that of the dish.        Γöé
  148.           Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  149.           ΓöéITALIC STRING       ΓöéDefault value if argument is not specified; e.g. "Γöé
  150.           Γöé                    ΓöéSILD|DILD" means "SILD" will be used, if argument Γöé
  151.           Γöé                    Γöéis not present.                                   Γöé
  152.           Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  153.           Γöé| or                ΓöéIndicates an "or"; e.g. "SILD|DILD" means either  Γöé
  154.           Γöé                    Γöé"SILD" or "DILD".                                 Γöé
  155.           Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  156.           Γöélower case string   ΓöéArgument with non-fixed contents; e.g. "fishname" Γöé
  157.           Γöé                    Γöémeans that you are to provide an argument holding Γöé
  158.           Γöé                    Γöéthe name of the fish.                             Γöé
  159.           Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  160.           ΓöéUPPER CASE STRING   ΓöéArgument with fixed contents; e.g. "SILD|DILD"    Γöé
  161.           Γöé                    Γöémeans that the argument must be either "SILD" or  Γöé
  162.           Γöé                    Γöé"DILD" (not case sensitive, though).              Γöé
  163.           ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  164.    Arguments passed to the routines are never case sensitive. 
  165.  
  166.  
  167. ΓòÉΓòÉΓòÉ 3.1. RxSwitchQueryVer - Return Version Information ΓòÉΓòÉΓòÉ
  168.  
  169. RxSwitchQueryVer 
  170.  
  171.           RxSwitchQueryVer() - version string
  172.  
  173.  RxSwitchQueryVer returns a cimbined version and copyright string. 
  174.  
  175.  Arguments: 
  176.  
  177.    N/A 
  178.  
  179.  Returns: 
  180.  
  181.    The format of the returned string is: 
  182.  
  183.           ID            VER   DLL           - COPYRIGHT NOTICE
  184.           ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ ΓöÇΓöÇΓöÇΓöÇΓöÇ ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ ΓöÇ ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  185.           RxSwitchQuery V1.00 (RxIsRun.DLL) - (C) Mads Orbesen Troest & SIRIUS Cybernetics 1998
  186.  
  187.    Even if the contents may change in coming releases, these fields will always 
  188.    remain, delimited by ' ' (space). When reaching the '-' (dash) field, the 
  189.    rest of the string is a copyright notice. 
  190.  
  191.  Examples 
  192.  
  193.  
  194. ΓòÉΓòÉΓòÉ 3.2. RxSwitchQueryApp - Query WinSwitchList for Application ΓòÉΓòÉΓòÉ
  195.  
  196. RxSwitchQueryApp 
  197.  
  198.           RxSwitchQueryApp( <program>, [PARTIAL|NOPARTIAL], [CASE|NOCASE] ) - RUNNING|NOT_RUNNING
  199.  
  200.  RxSwitchQueryApp searches the current WinSwitchList for an application, and 
  201.  reports whether or not it is present. 
  202.  
  203.  Arguments: 
  204.  
  205.       ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  206.       Γöéprogram             ΓöéString to search for.                             Γöé
  207.       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  208.       Γöépartial match       ΓöéSpecify "PARTIAL" if you want to accept partial   Γöé
  209.       Γöé                    Γöématches in the comparison; useful for programs    Γöé
  210.       Γöé                    Γöéthat append the name of the file they work on to  Γöé
  211.       Γöé                    Γöétheir entry. The default is "NOPARTIAL".          Γöé
  212.       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  213.       Γöécase sensitivity    ΓöéSpecify "NOCASE" if you want the comparison to    Γöé
  214.       Γöé                    Γöédisregard case; the default is "CASE".            Γöé
  215.       ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  216.  
  217.  Returns: 
  218.  
  219.       ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  220.       ΓöéRUNNING             ΓöéIndicates that the queried program was found in   Γöé
  221.       Γöé                    Γöéthe WinSwitchList.                                Γöé
  222.       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  223.       ΓöéNOT_RUNNING         ΓöéIndicates that the queried program was not found  Γöé
  224.       Γöé                    Γöéin the WinSwitchList.                             Γöé
  225.       ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  226.  
  227.  Examples 
  228.  
  229.  
  230. ΓòÉΓòÉΓòÉ 3.3. RxSwitchQueryWaitAppInList - Wait for Application to Appear in WinSwitchList ΓòÉΓòÉΓòÉ
  231.  
  232. RxSwitchQueryWaitAppInList 
  233.  
  234.           RxSwitchQueryWaitAppInList( <program>, [PARTIAL|NOPARTIAL], [CASE|NOCASE], [pollfreq] ) - OK|ABORTED
  235.  
  236.  RxSwitchQueryWaitAppInList waits for an application to appear in the 
  237.  WinSwitchList. 
  238.  
  239.  Arguments: 
  240.  
  241.       ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  242.       Γöéprogram             ΓöéString to search for.                             Γöé
  243.       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  244.       Γöépartial match       ΓöéSpecify "PARTIAL" if you want to accept partial   Γöé
  245.       Γöé                    Γöématches in the comparison; useful for programs    Γöé
  246.       Γöé                    Γöéthat append the name of the file they work on to  Γöé
  247.       Γöé                    Γöétheir entry. The default is "NOPARTIAL".          Γöé
  248.       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  249.       Γöécase sensitivity    ΓöéSpecify "NOCASE" if you want the comparison to    Γöé
  250.       Γöé                    Γöédisregard case; the default is "CASE".            Γöé
  251.       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  252.       Γöépollfreq            ΓöéOptionally specifiy the polling frequency in      Γöé
  253.       Γöé                    Γöémilliseconds; the default value is 1000 = 1       Γöé
  254.       Γöé                    Γöésecond. This specifies the frequency with which   Γöé
  255.       Γöé                    Γöéthe WinSwitchList is queried.                     Γöé
  256.       ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  257.  
  258.  Returns: 
  259.  
  260.       ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  261.       ΓöéOK                  ΓöéIndicates that the queried application appears in Γöé
  262.       Γöé                    Γöéthe current WinSwitchList.                        Γöé
  263.       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  264.       ΓöéABORTED             ΓöéIndicates that the query was terminated           Γöé
  265.       Γöé                    Γöéprematurely; e.g. by pressing CTRL+CREAK.         Γöé
  266.       ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  267.  
  268.  Examples 
  269.  
  270.  
  271. ΓòÉΓòÉΓòÉ 3.4. RxSwitchQueryWaitAppNotInList - Wait for Application to Disappear from WinSwitchList ΓòÉΓòÉΓòÉ
  272.  
  273. RxSwitchQueryWaitAppNotInList 
  274.  
  275.           RxSwitchQueryWaitAppNotInList( <program>, [PARTIAL|NOPARTIAL], [CASE|NOCASE], [pollfreq] ) - OK|ABORTED
  276.  
  277.  RxSwitchQueryWaitAppInList waits for an application to disappear from the 
  278.  WinSwitchList. 
  279.  
  280.  Arguments: 
  281.  
  282.       ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  283.       Γöéprogram             ΓöéString to search for.                             Γöé
  284.       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  285.       Γöépartial match       ΓöéSpecify "PARTIAL" if you want to accept partial   Γöé
  286.       Γöé                    Γöématches in the comparison; useful for programs    Γöé
  287.       Γöé                    Γöéthat append the name of the file they work on to  Γöé
  288.       Γöé                    Γöétheir entry. The default is "NOPARTIAL".          Γöé
  289.       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  290.       Γöécase sensitivity    ΓöéSpecify "NOCASE" if you want the comparison to    Γöé
  291.       Γöé                    Γöédisregard case; the default is "CASE".            Γöé
  292.       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  293.       Γöépollfreq            ΓöéOptionally specifiy the polling frequency in      Γöé
  294.       Γöé                    Γöémilliseconds; the default value is 1000 = 1       Γöé
  295.       Γöé                    Γöésecond. This specifies the frequency with which   Γöé
  296.       Γöé                    Γöéthe WinSwitchList is queried.                     Γöé
  297.       ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  298.  
  299.  Returns: 
  300.  
  301.       ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  302.       ΓöéOK                  ΓöéIndicates that the queried application appears in Γöé
  303.       Γöé                    Γöéthe current WinSwitchList.                        Γöé
  304.       Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  305.       ΓöéABORTED             ΓöéIndicates that the query was terminated           Γöé
  306.       Γöé                    Γöéprematurely; e.g. by pressing CTRL+CREAK.         Γöé
  307.       ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  308.  
  309.  Examples 
  310.  
  311.  
  312. ΓòÉΓòÉΓòÉ 4. Examples of Usage ΓòÉΓòÉΓòÉ
  313.  
  314. Examples of Usage 
  315.  
  316. This section provides a couple of examples on how to use RxSwitchQuery in 
  317. practice: 
  318.  
  319.      Wait for OS/2 Application to Start 
  320.      Wait for Windoze Application to End 
  321.  
  322.  
  323. ΓòÉΓòÉΓòÉ 4.1. Wait for OS/2 Application to Start ΓòÉΓòÉΓòÉ
  324.  
  325. Wait for OS/2 Application to Start 
  326.  
  327. This example demonstrates how to wait for an OS/2 application to start. The 
  328. script uses the default non-partial matching, because we want to make sure we 
  329. get the right application. Case insensitivity is enabled because we want to be 
  330. able to enter the application name on the commandline, without bothering about 
  331. matching the case of the program exactly. A polling frequency of 5000 (5 
  332. seconds) is specified; this means that RxSwitchQuery will only check for the 
  333. application appearing in the WinSwitchList every 5 seconds. 
  334.  
  335. Note 
  336.    If the program you query is the sort that "pop in and out" quickly, you must 
  337.    - of course - use a hight polling frequency to make sure you do not miss it. 
  338.    However, for normal situations the default of 1000 milliseconds will do 
  339.    nicely. 
  340.  
  341.  Hint 
  342.    To find out what string to query, use ALT-TAB to see how an OS/2 application 
  343.    appears in the WinSwitchList. 
  344.  
  345.  Source Code: 
  346.  
  347.           /
  348.           /* RxSwitchQuery (RxIsRul.DLL) Test: Wait for OS/2 App to Start *
  349.            *                                                              *
  350.            * (C) Mads Orbesen Troest & SIRIUS Cybernetics 1998            */
  351.  
  352.           PARSE ARG App /* Get App on CommandLine */
  353.           IF App = "" THEN EXIT /* Exit if no App Specified */
  354.  
  355.           /* Load External RxSwitchQuery Routines: */
  356.  
  357.           CALL RxFuncAdd "RxSwitchQueryVer", "RxIsRun", "RxSwitchQueryVer"
  358.           CALL RxFuncAdd "RxSwitchQueryApp", "RxIsRun", "RxSwitchQueryApp"
  359.           CALL RxFuncAdd "RxSwitchQueryWaitAppInList", "RxIsRun", "RxSwitchQueryWaitAppInList"
  360.           CALL RxFuncAdd "RxSwitchQueryWaitAppNotInList", "RxIsRun", "RxSwitchQueryWaitAppNotInList"
  361.  
  362.           /* Do some Initial ChitChat: */
  363.  
  364.           appStr = RxSwitchQueryVer() /* Retrieve Version Information */
  365.  
  366.           SAY ""
  367.           SAY "RxSwitchQuery Test: Wait for OS/2 App to Start, utilising:"
  368.           SAY WORD( appStr, 1) WORD( appStr, 2 ) WORD( appStr, 3 )
  369.           SAY ""
  370.           SAY "Γûá INFO  : Waiting for '"App"' to Start..."
  371.           RC = RxSwitchQueryWaitAppInList( App,,'NOCASE', 5000 ) /* Only poll every 5 seconds */
  372.           IF RC = "OK" THEN SAY "Γûá INFO  : OK!"
  373.           ELSE SAY "Γûá PANIC : Aborted!"
  374.  
  375.  
  376. ΓòÉΓòÉΓòÉ 4.2. Wait for Windoze Application to End ΓòÉΓòÉΓòÉ
  377.  
  378. Wait for Windoze Application to End 
  379.  
  380. This example demonstrates how to wait for a Windoze application to end. The 
  381. script uses partial matching, because of the way Windoze applications appear in 
  382. the WinSwitchList. Case insensitivity is enabled because we want to be able to 
  383. enter the application name on the commandline, without bothering about matching 
  384. the case of the program exactly. Since no polling frequency is specified, the 
  385. default of 1000 (1 second) is used. 
  386.  
  387. Hint 
  388.    To find out what string to query, use ALT-TAB to see how a Windoze 
  389.    application appears in the WinSwitchList. Many programs append the name of 
  390.    the file they work on; therefore you usually have to use partial matching 
  391.    when querying Windoze programs. 
  392.  
  393.  Source Code: 
  394.  
  395.           /
  396.           /* RxSwitchQuery (RxIsRul.DLL) Test: Wait for Windoze App to End *
  397.            *                                                               *
  398.            * (C) Mads Orbesen Troest & SIRIUS Cybernetics 1998             */
  399.  
  400.           PARSE ARG App /* Get App on CommandLine */
  401.           IF App = "" THEN EXIT /* Exit if no App Specified */
  402.  
  403.           /* Load External RxSwitchQuery Routines: */
  404.  
  405.           CALL RxFuncAdd "RxSwitchQueryVer", "RxIsRun", "RxSwitchQueryVer"
  406.           CALL RxFuncAdd "RxSwitchQueryApp", "RxIsRun", "RxSwitchQueryApp"
  407.           CALL RxFuncAdd "RxSwitchQueryWaitAppInList", "RxIsRun", "RxSwitchQueryWaitAppInList"
  408.           CALL RxFuncAdd "RxSwitchQueryWaitAppNotInList", "RxIsRun", "RxSwitchQueryWaitAppNotInList"
  409.  
  410.           /* Do some Initial ChitChat: */
  411.  
  412.           appStr = RxSwitchQueryVer() /* Retrieve Version Information */
  413.  
  414.           SAY ""
  415.           SAY "RxSwitchQuery Test: Wait for Windoze App to End, utilising:"
  416.           SAY WORD( appStr, 1) WORD( appStr, 2 ) WORD( appStr, 3 )
  417.           SAY ""
  418.           SAY "Γûá INFO  : Waiting for '"App"' to End..."
  419.           RC = RxSwitchQueryWaitAppNotInList( App, 'PARTIAL', 'NOCASE')
  420.           IF RC = "OK" THEN SAY "Γûá INFO  : OK!"
  421.           ELSE SAY "Γûá PANIC : Aborted!"
  422.