A resposta de Russell dá a você uma boa parte do caminho usando o RDP como exemplo. É um pouco mais difícil detectar que você está no console do vsphere / vmware, mas pode ser feito com o abaixo. Eu comentei as alterações / adições
#UseHook
#SingleInstance force
; A window's title can contain WinTitle anywhere inside it to be a match
SetTitleMatchMode, 2
setTimer, windowWatch, 500
windowWatch:
; if rdp OR (partial title matching vsphere AND you are in the console captured section)
if WinActive("ahk_class TscShellContainerClass") or (WinActive(" - vSphere Client") and Control("MKSEmbedded1")) {
if (!active) {
active := true
Sleep 50
suspend off
}
} else {
active := false
suspend on
}
return
; return ClassNN of mouse position
Control(ClassNN) {
MouseGetPos,,,,control
return (ClassNN = control)
}
Eu uso isso para permitir que as chaves de mídia play / pause funcionem em ambos os rdp / vsphere
Media_Play_Pause::
Sleep 50
Run "C:\Foobar2000\foobar2000.exe" /playpause
return