Oleg Vazhnev
Oleg Vazhnev

Reputation: 24067

autohotkey: sometimes button is not clicked

I wrote such autohotkey script to auto-logon my program:

SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
Run info.exe
WinWait, User identification,
Sleep 300
ControlSend, Edit1, user, User identification
ControlSend, Edit2, password, User identification
ControlClick, Button1, User identification

The problem is - sometimes Button1 is not clicked. When i'm execution script in most cases Button1 is clicked, but sometimes it doesn't. When script autoexecuted on locked workstation (this is the scenario I actually need), Button1 is never clicked.

I've tried to insert Sleep, 1000 after each line in script but it didn't helped.

The question is why, and how to fix/workaround the problem

I will try today to replace

ControlSend, Edit2, password, User identification
ControlClick, Button1, User identification

with

ControlSend, Edit2, password{Enter}, User identification

probably this will work...

Upvotes: 0

Views: 3226

Answers (1)

Oleg Vazhnev
Oleg Vazhnev

Reputation: 24067

I spent a week tring to solve my problem anf finally resolved it. Hope this will help to someone.

Never try to send CAPITALIZED letter to autohotkey, instead send shiftdown and shiftup

Wrong:

ControlSend, Edit2, passworD, User identification

Right:

ControlSend, Edit2, passwor{SHIFTDOWN}d{SHIFTUP}, User identification

Also it would be better to avoid ControlClick if possible. To click a button ControlSend a Space to it.

Upvotes: 3

Related Questions