Jump to content

CTRL-ALT-DEL Pauses Script Execution


Recommended Posts

Hello, All.

First post. I am looking for information on how to let my users lock their screen during a lengthy install. I have used BlockInput() but my install script still is paused when I unlock the system to check the progress.

If you don't lock the screen the script finishes. Here is one of the scripts. Also any pointers on making the scripts more robust appreciated. I am still not sure on how to script for the possibility of one of several windows popping up.

I am using AutoIt v3

Dim $dialogfound = 0
Dim $regvalue = 0
$regvalue = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Cadence", "14.2")
BlockInput(1)
RUN("SETUP.EXE")
SplashTextOn("Cadence 14.2 Local Installation Starting", "Please DO NOT touch keyboard or mouse!",-1,100,-1,0,16,"",12,500)
Sleep(500)
; Send("#l")
Do
If WinExists("Warning", "OK") Then
    WinActivate("Warning", "OK")
    Send("{ENTER}")
    $dialogfound=1
ElseIf WinExists("Information", "OK") Then
    WinActivate("Information", "OK")
    Send("{ENTER}")
    $dialogfound=1
    MsgBox(0, "Insufficient Rights", "Cadence must be installed under an account with Administrative Rights.")
    Exit
Endif
Until $dialogfound = 1
WinWaitActive("Welcome", "&Next >")
Send("!n")
WinWaitActive("Software License Agreement", "&Yes")
Send("!y")
WinWaitActive("Licensing", "&Network licensing")
Send("!n")
WinWaitActive("Network Options", "Install products")
ControlFocus("Network Options", "Install products", "Button2")
ControlClick("Network Options", "Install products", "Button2")
Send("!n")
WinWaitActive("License Manager Communication", "&Next >")
ControlSetText("License Manager Communication", "Port Number:", "Edit2", "5280")
ControlSetText("License Manager Communication", "Host Name:", "Edit3", "server_name_here")
Send("!n")
WinWaitActive("User Information", "&Next >")
Send("!n")
WinWaitActive("User Information Confirmation", "&Yes")
Send("!y")
WinWaitActive("Select Products", "")
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100) 
Send("{DOWN}")
Sleep(100)  
Send("{SPACE}") 
Sleep(100)  
Send("{DOWN}") 
Sleep(100)  
Send("{SPACE}") 
Sleep(100)  
Send("{DOWN}") 
Sleep(100)  
Send("{SPACE}") 
Sleep(100)  
Send("{DOWN}") 
Sleep(100)  
Send("{DOWN}") 
Sleep(100)  
Send("{DOWN}") 
Sleep(100)  
Send("{SPACE}") 
Sleep(100) 
Send("{DOWN}") 
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("{SPACE}")
Sleep(100)
Send("{DOWN}")
Sleep(100)
Send("!n")
WinWaitActive("Working Directory", "&Next >")
Send("!n")
WinWaitActive("Select Program Folder", "&Next >")
Send("!n")
WinWaitActive("IntelliCAD", "&No")
Send("!n")
WinWaitActive("Footprint Viewer Options", "&Next >")
ControlFocus("Footprint Viewer Options", "Allegro footprint viewer", "Button6")
ControlClick("Footprint Viewer Options", "Allegro footprint viewer", "Button6")
Send("!n")
WinWaitActive("Allegro Footprint Library Path", "&Next >")
Send("!n")
WinWaitActive("Installation Summary", "&Next >")
Send("!n")
WinWaitActive("Product File Extension Registration", "&No")
Send("!n")
WinWaitActive("Text Editor File Extension Registration", "&No")
Send("!n")
WinWaitActive("Quick Trainer Icon", "&No")
Send("!n")
WinWaitActive("Viewing Online Documentation", "")
Send("{ENTER}")
WinWaitActive("Library CD Reminder", "Libraries for use with")
Send("{ENTER}")
WinWaitActive("Setup Complete", "")
Send("{ENTER}")
SplashOff()
BlockInput(0)
Sleep(300)
EXIT
In an insane world, the sane must appear insane
Link to comment
Share on other sites

from personal experience, avoid using keystrokes to navigate installs, even with the sleeps there. if a popup window comes up, whoops! your script is FUBAR and you might be doing something adversely bad in the process. Use controlIDs as much as possible and always tell it to wait for the next window and to activate it before navigating it. believe me!

as far as your question goes,

"my install script still is paused when I unlock the system to check the progress."

how do you manually unlock it? it looks like you just have a blockinput(0) at the end. my guess is that the script is not "paused", it just got messed up somewhere and the script went all the way through without the desired results. Again, using the aforementioned tactic, it should help the problem. here is an example from my installer script:

$citrix71_auto = MsgBox(4100, "Automated?", "Would you like the (un)installation of " & $data & " to be automated?")

If $citrix71_auto = 7 Then
    Run("\\rminas\Software\Citrix\Citrix ICA Client\Citrix ICA Client 7.100\ica32.exe")
ElseIf $citrix71_auto = 6 Then
    Run("\\rminas\Software\Citrix\Citrix ICA Client\Citrix ICA Client 7.100\ica32.exe")
    WinWaitActive("Citrix ICA 32-bit Windows Client", "click Next")
    WinActivate("Citrix ICA 32-bit Windows Client", "click Next")
    Send("n")
    WinWaitActive("Welcome", "Welcome to the ICA Client Setup program.  ")
    WinActivate("Welcome", "Welcome to the ICA Client Setup program.  ")
    ControlClick("Welcome", "Welcome to the ICA Client Setup program.  ", 1, "left", 1)
        WinWaitActive("Citrix License Agreement", "CITRIX(R) LICENSE AGREEMENT")
    ControlClick("Citrix", "CITRIX", 6, "left", 1)
    Sleep("250")
    ControlClick("Choose Destination Location", "", 1, "left", 1)
    Sleep("250")
    ControlClick("Select Program Folder", "", 1, "left", 1)
    Sleep("250")
    ControlClick("Select Client Name", "", 1, "left", 1)
    Sleep("250")
     ControlClick("Select Desired Features", "", 1, "left", 1)
     Sleep("250")
     WinWaitActive("Information", "")
     Sleep("1000")
     Send("{ENTER}")
     Sleep("250")
     WinClose("C:\Documents and Settings\All Users\Start Menu\Programs\Citrix ICA Client")
EndIf

you can find out which controlIDs to use using the AutoIt Window Info tool in the start menu. look in the help file to get the syntax correct.

Edited by mike1305

Amp Energy Drink: the official sponsor of me scripting at 2AM.

Link to comment
Share on other sites

First - thank you for the example. I will definitely give it a try!

I believe the script is paused because once I "click" the Next button or OK button the install script finishes.

if you click anything while it is trying to automate the process, you will efficiently bump it "out of tune" one step in the process and more likely than not it will just stay at a given window.

Amp Energy Drink: the official sponsor of me scripting at 2AM.

Link to comment
Share on other sites

Welcome to the forum!

I'm sorry, but there's no way you can block the Ctrl+Alt+Del default behavior, but there is a workaround.

When the users presses Ctrl+Alt+Del, even if BlockInput(1) is activated, the input is unblocked and the task manager window appears.

By blocking the input constantly and killing the system windows, you aviod it.

Opt("WinTitleMatchMode", 4)
Func DoNotAllowTaskManager()
    BlockInput(1)
    WinKill("classname=#32770", "")
EndFunc

AdlibEnable("DoNotAllowTaskManager", 1)

Sleep(5000)
BlockInput(0)

[quote name='Valik' post='301213' date='Jan 31 2007, 10:36 PM']You seem to have a habit of putting things in the wrong place. I feel sorry for any female you attempt to have sex with.[/quote][font="Lucida Sans Unicode"][/font]

Link to comment
Share on other sites

Due to security reasons I have to allow the screen lock.

So is there no way to just tell AutoIt to continue if it sees the Windows Security Dialog or the Computer Locked dialog? I am assuming that is what is happening.

In an insane world, the sane must appear insane
Link to comment
Share on other sites

Due to security reasons I have to allow the screen lock.

So is there no way to just tell AutoIt to continue if it sees the Windows Security Dialog or the Computer Locked dialog? I am assuming that is what is happening.

I see what you mean. Windows is timing out and your network makes it so the computer gets locked after X minutes if inactivity? Are you trying to avoid this lock from happening? I don't see how it could with all the keys being pressed during the install process. If you can pin down a section of the script you think this is happening in, throw a random mouse movement in there to keep windows awake.

hope that is what you are referring to.

mike

Amp Energy Drink: the official sponsor of me scripting at 2AM.

Link to comment
Share on other sites

Hmmm...

Maybe

If WinExists("classname=#32770", "") Then
     WinWaitClose("classname=#32770", "")
EndIf
oÝ÷ Ù8b²)íéh¢"ZZºÇ­ë®*mº{b[a{§v°êò¢ç(ºWcºËm¯&Þ~Þ¶¢ËZV­Ûz§±«­¢+Ø)5Í ½à À°ÅÕ½Ðí%¹Íѱ±Ñ¥½¸ÅÕ½Ðì°ÅÕ½ÐíA±Í¼¹½ÐÁÉÍÌ
ÑÉ°­±Ð­°Õ¹Ñ¥°¥¹Íѱ±Ñ¥½¸¥¸½ÙȸQ¡¹­Ì¸ÅÕ½Ðì¤(

[quote name='Valik' post='301213' date='Jan 31 2007, 10:36 PM']You seem to have a habit of putting things in the wrong place. I feel sorry for any female you attempt to have sex with.[/quote][font="Lucida Sans Unicode"][/font]

Link to comment
Share on other sites

Thanks for the reply, Mike.

My ultimate goal is to allow the script to continue even after the CTRL_ALT_DEL is pressed or the screensaver invokes.

The software I am installing (multiple verisons inwhich the example I sent is just the first script) takes over an hour to finish. It isn't practicle to sit in front of a computer watching the install.

I have tried Installshield technology without much success (and it only does "silent" installs so you aren't able to quickly determine how far along an install is). AutoIt allows me to just look at the screen and have a good idea how much longer to go.

I've spent the last few days updating my original scripts and removing the "SEND" commands, substituting ControlClicks where possible.

Here is an axample of one of the other scripts associated with this install process. Works until CTRL_ALT_DEL...

Dim $dialogfound = 0
Dim $regvalue = 0
$regvalue = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Cadence Design Systems", "Cadence SPB 15.2")
BlockInput(1)
RUN("SETUP.EXE")
SplashTextOn("Cadence 15.2 ISR Installation Starting", "Please DO NOT touch keyboard or mouse!",-1,100,-1,0,16,"",12,500)
Do
If WinActive("Cadence SPB 15.2 Update Setup", "The setup has detected") Then
    WinActivate("Cadence SPB 15.2 Update Setup", "The setup has detected")
    ControlClick("Cadence SPB 15.2 Update Setup", "&Yes", "Button1")
    $dialogfound=1
    Sleep(250)
Endif
If WinActive("Cadence SPB 15.2 Update Setup", "Update Setup for Cadence SPB 15.2") Then
    WinActivate("Cadence SPB 15.2 Update Setup", "Update Setup for Cadence SPB 15.2")
    ControlClick("Cadence SPB 15.2 Update Setup", "&Next >", "Button1")
    $dialogfound=2
    Sleep(250)
Endif
If WinActive("Cadence SPB 15.2 Update Setup", "License Agreement") Then
    WinActivate("Cadence SPB 15.2 Update Setup", "License Agreement")
    ControlClick("Cadence SPB 15.2 Update Setup", "I &accept", "Button5")
    ControlClick("Cadence SPB 15.2 Update Setup", "&Next >", "Button2")
; Send("!a")
; Send("{ENTER}")
    $dialogfound=3
    Sleep(250)
ElseIf WinActive("Information", "OK") Then
    WinActivate("Information", "OK")
    Send("{ENTER}")
    $dialogfound=4
    MsgBox(0, "Insufficient Rights", "Cadence must be installed under an account with Administrative Rights.")
    Exit
ElseIf WinActive("Cadence SPB 15.2 Update Setup", "This setup has detected that SPB 15.2 Update 1 has not been installed on this system.") Then
    WinActivate("Cadence SPB 15.2 Update Setup", "&No")
    Send("!n")
    $dialogfound=5
    Exit
Endif
If WinActive("Cadence SPB 15.2 Update Setup", "We advise you") Then
    WinActivate("Cadence SPB 15.2 Update Setup", "We advise you")
    ControlClick("Cadence SPB 15.2 Update Setup", "OK", "Button1")
    $dialogfound=6
    Sleep(250)
Endif   
; Send("{ENTER}")
If WinActive("Cadence SPB 15.2 Update Setup", "Choose Destination Location") Then
    WinActivate("Cadence SPB 15.2 Update Setup", "Choose Destination Location")
    ControlClick("Cadence SPB 15.2 Update Setup", "&Next >", "Button3")
    $dialogfound=7
    Sleep(250)
Endif
; Send("!n")
If WinActive("Cadence SPB 15.2 Update Setup", "Installation Summary") Then
    WinActivate("Cadence SPB 15.2 Update Setup", "Installation Summary")
    ControlClick("Cadence SPB 15.2 Update Setup", "&Next >", "Button1")
    $dialogfound=8
    Sleep(250)
Endif
if WinActive("Cadence SPB 15.2 Update Setup", "Update Complete") Then
    WinActivate("Cadence SPB 15.2 Update Setup", "Update Complete")
    ControlClick("Cadence SPB 15.2 Update Setup", "Finish", "Button4")
    $dialogfound=9
    Sleep(250)
Endif
Until $dialogfound = 9
; Send("{ENTER}")
SplashOff()
BlockInput(0)
EXIT
In an insane world, the sane must appear insane
Link to comment
Share on other sites

Looks good. Make sure to give your script all the fail-safes required. What will your script do if the installer instantly crashes and it is sitting there waiting for a window to come up that will never come? I like your idea with the If statements, which would basically make the script breeze through to the end in the case of a crash. maybe you need a bit of some sleeps inbetween the ifs though in case you get some slower computers that lag.

as far as making the script work while ctrl+alt+del window is up, I think that the controlclicks will still work when the window being clicked to is inactive.

edit: just noticed the do...until loop. interesting idea! only a few extra lines and pretty solid.

Edited by mike1305

Amp Energy Drink: the official sponsor of me scripting at 2AM.

Link to comment
Share on other sites

If you are checking for the window to be active then you dont need to activate it again. Also, the window doesnt need to be active, or even visible for ControlClick to work.

Instead of:

if WinActive("Cadence SPB 15.2 Update Setup", "Update Complete") Then
    WinActivate("Cadence SPB 15.2 Update Setup", "Update Complete")
    ControlClick("Cadence SPB 15.2 Update Setup", "Finish", "Button4")
    $dialogfound=9
    Sleep(250)
EndifoÝ÷ Ù:òjëh×6if WinExists("Cadence SPB 15.2 Update Setup", "Update Complete") Then
    ControlClick("Cadence SPB 15.2 Update Setup", "Finish", "Button4")
    $dialogfound=9
    Sleep(250)
Endif
Edited by BPBNA
Link to comment
Share on other sites

Thank you for your input!

I will try removing the WinActivate lines. Obviously if the screen is locked the window won't Activate :P

I have been searching the forum trying to find previous posts and I see that some are using this:

While 1

; code here

Wend

Is this ment to cause an endless loop that can only be exited using EXIT? My teachers always told me that I was a bad coder if I did that... :nuke:

In an insane world, the sane must appear insane
Link to comment
Share on other sites

Yes, it causes and endless loop. I don't think that is bad coding at all, especially if his solution to it is setting a variable to 1 for the While and still using the same Exit command. Same concept, more code. I find it clean and simple, if the script works as intended, it will exit the loop like it should, if not, the script will crash and exit the loop anyways.

Link to comment
Share on other sites

Well, I removed the WinActivates and the script runs faster. Thank you for the tip.

However, my original problem persists. How to keep the script executing in the background if the system is locked.

In an insane world, the sane must appear insane
Link to comment
Share on other sites

Well, if the script does not run when the computer is locked, don't lock the computer. :P

If it is locking itself during long pauses while programs are between user input windows in installations, add one of these puppies in there:

Do
    Sleep(60000)
    Opt("MouseCoordMode", 1)
    MouseMove(1, 1, 1)
Until WinActive("YOUR_WINDOW", "WINDOW TEXT")

Amp Energy Drink: the official sponsor of me scripting at 2AM.

Link to comment
Share on other sites

  • 1 month later...

Well, if the script does not run when the computer is locked, don't lock the computer. :)

If it is locking itself during long pauses while programs are between user input windows in installations, add one of these puppies in there:

Do
    Sleep(60000)
    Opt("MouseCoordMode", 1)
    MouseMove(1, 1, 1)
Until WinActive("YOUR_WINDOW", "WINDOW TEXT")
Mike,

I have been away from work for a few weeks so sorry for the delay in this reply.

Could you be more explicit in your solution? What does the Do/Until loop do do? LOL Where would I put it?

In an insane world, the sane must appear insane
Link to comment
Share on other sites

From original:

if WinExists("Cadence SPB 15.2 Update Setup", "Update Complete") Then
    ControlClick("Cadence SPB 15.2 Update Setup", "Finish", "Button4")
    $dialogfound=9
    Sleep(250)
Endif
oÝ÷ Ù:ò¶¬jëh×6
While Not WinExists("Cadence SPB 15.2 Update Setup", "Update Complete") 
    Sleep(250)
WEnd

ControlClick("Cadence SPB 15.2 Update Setup", "Finish", "Button4")
$dialogfound=9
Sleep(250)
oÝ÷ ØêÛzÛ^­«­¢+Ø)]¥¹]¥Ð ÅÕ½Ðí
¹MAÄÔ¸ÈUÁÑMÑÕÀÅÕ½Ðì°ÅÕ½ÐíUÁÑ
½µÁ±ÑÅÕ½Ðì¤)
½¹Ñɽ±
±¥¬ ÅÕ½Ðí
¹MAÄÔ¸ÈUÁÑMÑÕÀÅÕ½Ðì°ÅÕ½Ðí¥¹¥Í ÅÕ½Ðì°ÅÕ½Ðí   ÕÑѽ¸ÐÅÕ½Ðì¤(ÀÌØí¥±½½Õ¹ôä)M±À ÈÔÀ¤

Because your script quickly test whether window exists and if not (due to Lock window) then goes at next lines...

Link to comment
Share on other sites

Hmm. I think I see where you are going. I'll give it a try. Thank you.

From original:

if WinExists("Cadence SPB 15.2 Update Setup", "Update Complete") Then
    ControlClick("Cadence SPB 15.2 Update Setup", "Finish", "Button4")
    $dialogfound=9
    Sleep(250)
Endif
oÝ÷ Ù:ò¶¬jëh×6
While Not WinExists("Cadence SPB 15.2 Update Setup", "Update Complete") 
    Sleep(250)
WEnd

ControlClick("Cadence SPB 15.2 Update Setup", "Finish", "Button4")
$dialogfound=9
Sleep(250)
oÝ÷ ØêÛzÛ^­«­¢+Ø)]¥¹]¥Ð ÅÕ½Ðí
¹MAÄÔ¸ÈUÁÑMÑÕÀÅÕ½Ðì°ÅÕ½ÐíUÁÑ
½µÁ±ÑÅÕ½Ðì¤)
½¹Ñɽ±
±¥¬ ÅÕ½Ðí
¹MAÄÔ¸ÈUÁÑMÑÕÀÅÕ½Ðì°ÅÕ½Ðí¥¹¥Í ÅÕ½Ðì°ÅÕ½Ðí   ÕÑѽ¸ÐÅÕ½Ðì¤(ÀÌØí¥±½½Õ¹ôä)M±À ÈÔÀ¤

Because your script quickly test whether window exists and if not (due to Lock window) then goes at next lines...

In an insane world, the sane must appear insane
Link to comment
Share on other sites

  • 1 month later...

hello Doctor,

did you allready find a solution? I have the same problem as well. I use autoit to make a backup from several databases (navision) and when I run this script when I'm working behind my computer, it works flawless. But when I run this script from the scheduler and leave my computer alone, then it stops after a while. If I move the mouse (without clicking) then the script continues.

I also put a Send({SCROLLLOCK on}) and off in the

while loop, but that doesn't help either. (you can see the led go on and off) but the script only continues if I

move the mouse by hand.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...