VMware, скорее всего, устанавливает свой собственный захват клавиатуры, который имеет приоритет по AHK's. Та же проблема происходит при выполнении Клиента удаленного рабочего стола. Решение состоит в том, чтобы проверить, активно ли целевое окно время от времени, и переустановите рычаг AHK, если это. Рычаг может быть переустановлен путем приостановки и затем неприостановки AHK.
Вот мой сценарий для Удаленного рабочего стола, который должен быть легко настраиваем для VMware:
; Script by Russell Davis, http://russelldavis.blogspot.com/
; with inspiration from http://www.autohotkey.com/forum/topic5702.html
; and http://www.autohotkey.com/forum/topic1662.html
#UseHook
#SingleInstance force
setTimer, windowWatch, 500
windowWatch:
if WinActive("ahk_class TscShellContainerClass") {
if (!active) {
active := true
; Short sleep to make sure remote desktop's hook is in place first
Sleep 50
; Coming out of suspend mode recreates the keyboard hook, giving
; our hook priority over the remote desktop client's.
suspend off
}
} else {
active := false
suspend on
}
return
; Be careful if using a hotkey with an Alt or Win modifier. The modifier's
; keyup event may trigger a system action. AHK is supposed to work around this,
; but it doesn't seem to work in this case.
; See http://www.autohotkey.com/forum/topic22378.html for a related discussion.
^+CapsLock::
; Need a short sleep here for focus to restore properly.
Sleep 50
WinMinimize ahk_class TscShellContainerClass
return