0

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...

Oleg Vazhnev
  • 23,239
  • 54
  • 171
  • 305

1 Answers1

3

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.

bgmCoder
  • 6,205
  • 8
  • 58
  • 105
Oleg Vazhnev
  • 23,239
  • 54
  • 171
  • 305
  • Ah! I wish I would have seen your post earlier. `ControlSend` is case-sensitive - which you have unwittingly discovered. – bgmCoder Mar 27 '14 at 04:08