Blocking input when executing AutoHotkey scripts.

When we are doing some UI automation with AutoHotkeys script, we really would not like other user to be able to move / input which may result in errors.

By using:

BlockInput, on
Sleep, 2000
BlockInput, off

We would be able to block user input while Autohotkey still be able to work with the system (MouseMove, x, y etc)

I thought it works well till B tell me that it was not working on his box, I retested it and no it was not working on the new installed x64 win7 too (I am sure it was working before, on a x32 win7…)

It turns out it was related to UAC in Win7, scripts has to be run with Admin rights to get BlockInput working (it was not documented on the API ref.).

A bit of Google gave me some solutions:

Howtogeek – Add “Run as Administrator” for AutoHotkey Scripts in Windows 7 or Vista

Make the scripts into exe (compile scripts), setup registry to force autohotkey to run as Admin fixes the problem.

Blockinput not working under windows vista