Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Re: Rebol/Windows Macro Maker - Autopilot.r

From: james:mustard at: 2-Apr-2002 13:00

Hi Terry, I mangled things a bit and rearranged other bits ;-) The example at the end demonstrates the Force command which can take 1 or 2 parameters. AutoPilot: func [inpu][ AutoPilot: read/lines to-file inpu AutoPilotCode: {Set WshShell = WScript.CreateObject("WScript.Shell")} AutoPilotA: {WshShell.AppActivate "###1"^/} AutoPilotR: {WshShell.Run "###1"^/} AutoPilotS: {WScript.Sleep "###1"^/} AutoPilotT: {WshShell.SendKeys "###1"^/} ;please note that some apps have 2 names - one for launch and 1 for userspace ;Microsoft Word is one such example. Winword to launch, Microsoft Word for userspace. AutoPilotF: { if not WshShell.AppActivate("###1") then WshShell.Run("###2") do while not WshShell.AppActivate("###1") WScript.sleep 10 loop end if } rj: func [cmd srch dat][AutoPilotCode: join AutoPilotCode replace/all copy cmd srch dat] foreach syl AutoPilot [ syl: to-block syl switch length? syl [ 2 [ com: to-string first syl att: second syl if com = "Activate" [rj AutoPilotA "###1" att] if com = "Launch" [rj AutoPilotR "###1" att] if com = "Wait" [rj AutoPilotS "###1" att] if com = "Type" [rj AutoPilotT "###1" att] if com = "Force" [replace rj AutoPilotF "###1" att "###2" att] ] 3 [ com: to-string first syl att: second syl att2: third syl if com = "Force" [replace rj AutoPilotF "###1" att "###2" att2] ] ] ] write %autopilot.vbs AutoPilotCode browse %autopilot.vbs ;call wait 3 delete %autopilot.vbs ] ;---------------------------- ;Below is a sample macro that will launch Word (if it exists) type something, then launch notepad, ;wait 3 seconds, type "Hello World, wait 1 second and type "Again" write %myMacrofile.txt {Force "Microsoft Word" "Winword"^/Type "This is microsoft word!"^/Force "Notepad" ^/Type "^n" ^/Wait 3000 ^/Type "Hello World" ^/Wait 1000 ^/Type " Again."^/} Autopilot "myMacrofile.txt"