bjoeg 0 Posted August 9, 2011 Using AutoIT to start an executable which installs a program, which in the very end pops up with a dialog box asking whether to reboot computer now or not. No matter how I do it, I cannot get the scrip to work, and I am at the state where I think my brain starts to run in loops. The first script: Run("\\fileserver\Setup.EXE /S") WinWaitActive("Install") Send("{TAB}") Send("{ENTER}") Since this did not work, I guessed it was because the dialog box comes at the end of the installation, making the script halt on the executable before it could run the WinWaitActive command. Then I tried making it with an If argument, so now the script looks like: If WinWaitActive("Install") then Send("{TAB}") Send("{ENTER}") EndIf Run("\\fileserver\Setup.EXE /S") But this does not work either. Any thoughts or recommendations? Share this post Link to post Share on other sites
JohnOne 1,603 Posted August 9, 2011 First do some debugging Run("\\fileserver\Setup.EXE /S");Run is not a blocking function, so next it is waiting for window WinWaitActive("Install");is that the whole name of the window, are there others with same name Msgbox(0,"","We got here") Is the "install" window the prompt for restart computer? AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Share this post Link to post Share on other sites
bjoeg 0 Posted August 9, 2011 Msgbox(0,"","We got here")Thx JohnOne, you little extra line helped a lot, I added it to after the WinWaitActive and send commands. Now the AutoIT script executes the Setup.Exe and immediately executes the other commands, even the MsgBox command.- So should the MsgBox command not wait until WinWaitActive was finished?- And if so is WinWaitActive not supposed to wait indefinitely (it seems to execute immediately instead of waiting on Window/dialog box)To clarify this is the script:Run("\\fileserver\Setup.EXE /S")WinWaitActive("Install")Send("{TAB}")Send("{ENTER}")Msgbox(0,"","We got here")Regarding the window. There are no other windows named Install. I have triple checked the name with AutoItInfo, even tried to call the windows with Class name. Share this post Link to post Share on other sites
JohnOne 1,603 Posted August 9, 2011 (edited) WinWaitActive waits indefinately, unless you pass it a timeout paramater. I would try adding a small sleep into your code after WinWaitActive But first, determine if the window is actually accepting simulated key strokes. With the window already exists, try the tab and enter code. WinActivate("Install") Sleep(100) Send("{TAB}") Send("{ENTER}") Edited August 9, 2011 by JohnOne AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. Share this post Link to post Share on other sites
bjoeg 0 Posted August 11, 2011 Okay. I managed to test more today. Yes the box accepts input. Tried a simplified troubleshooting. I activated the software install manual, and when the window popped up, then ran script which looked for install window and send the input, and this worked. So either there must be a hidden window named install (other visible windows pops up during install, though not any of them are named Install), or something else which triggers the commands prematurely. I will try other options tomorrow, e.g. matching against window content. Share this post Link to post Share on other sites
bjoeg 0 Posted August 15, 2011 And now it works, by looking for dialog contents as well. Share this post Link to post Share on other sites