2013-03-14 75 views
0

我試圖在切換到VMWare播放器時發送輸入。這是因爲沒有按Ctrl-g並使VMWare抓住我的輸入。以下是我想出的腳本,但它什麼也沒有做。這是什麼錯過了?沒有綁定關鍵字的SendInput

#IfWinActive ahk_class VMPlayerFrame 
{ 
    SendInput, {Ctrl down}g{Ctrl up} 
}                    return 

回答

1

您可以使用#IfWinActive更改熱鍵或熱鍵,但不能創建腳本。

您需要檢測窗口更改並對其執行操作。

#SingleInstance 
#installKeybdHook 
#Persistent 

Gui +LastFound 
hWnd := WinExist() 
DllCall("RegisterShellHookWindow", UInt,Hwnd) 
MsgNum := DllCall("RegisterWindowMessage", Str,"SHELLHOOK") 
OnMessage(MsgNum, "ShellMessage") 
Return 

ShellMessage(wParam) 
{ 
    If (wParam = 4 or wParam = 32772) ; Without VMware Player running: wParam = 4, with VMware Player running: wParam = 32772 
    {   
     IfWinActive ahk_class VMPlayerFrame 
     { 
      SendInput, {Ctrl down}g{Ctrl up} 
     } 
    } 
} 
Return 

; Hotkey {Win}+g launches Chrome 
#g::Run "C:\Users\%A_Username%\AppData\Local\Google\Chrome\Application\chrome.exe" 

; Hotkeys {Ctrl}+Nr gives you fractures 
^2:: 
    Send, ½ 
    TrayTip, For 2 Squared,press Ctrl + Shift 2,1,1 
Return 

^3:: 
    Send, ¾ 
    TrayTip, For 3 Cubed,press Ctrl + Shift 3,1,1 
Return 

^4::Send, ¼ 

; HotKeys {Shift}+{Ctrl}+Nr gives you the power 
+^0::Send, ° 
+^1::Send, ¹ 
+^2::Send, ² ; Shift Control [email protected] 
+^3::Send, ³ ; Shift Control 3# 

; Hotstrings mvge, mvgd or mvgf will give you my salutations in various languages. 
:*:mvge::Regards,{Enter}{Enter}Robert Ilbrink 
:*:mvgd::Mit freundlichen Grüßen,{Enter}{Enter}Robert Ilbrink 
:*:mvgf::Salutions,{Enter}{Enter}Robert Ilbrink 
+0

我是AHK的新手。是否可以將此代碼與我現有的熱鍵和熱鍵結合使用?我嘗試了,但沒有成功。 – Forethinker 2013-03-14 08:23:38

+0

如果我理解你是對的,你想知道你是否也可以在同一個腳本中有熱鍵和熱鍵?答案是肯定的。只要您在第一個或第二個「返回」下放置熱點。啓動時,所有AutoHotKey行都會執行,直到第一個「返回」。通過在第一部分下放置所有其他的hotstrings/hotkeys,確保第一部分可以在啓動時執行。這有幫助嗎? – 2013-03-14 08:44:09

+0

這個'鉤子'被認爲是熱鍵或熱鍵嗎?我的意思是可以將此解決方案與包含hostrings和熱鍵的現有.ahk文件結合使用。 – Forethinker 2013-03-14 08:49:34