2015-06-04 70 views
2

我想送按Ctrl + Alt鍵+ Windows窗體按鈕(C#)旋轉我的屏幕。這是一個英特爾熱鍵。 當我按下按鈕什麼都沒有發生,但如果我在一個vbs文件中使用幾乎相同的命令,它的工作原理。SendKey命令VBS工作,但不是C#

這是C#代碼不起作用:

private void button1_Click(object sender, EventArgs e) 
{ 
    SendKeys.Send("^%{LEFT}"); 
} 

VB腳本,不工作:

Set objShell = CreateObject("WScript.Shell") 
objShell.SendKeys "^%{LEFT}" 

我很新的這一切,也許我失去了一些東西明顯?

+0

嘗試使用'SendKeys.SendWait()' – Bauss

+0

相同的結果。我只注意到send和sendwait都在我的Windows 8電腦上工作,但不在我需要的XP電腦上工作。 – matt0667

+0

按鍵僅在實際支持此功能的硬件上有效。此外,SendKeys將鍵擊發送到[當前應用程序](https://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys%28v=vs.110%29.aspx),而腳本將它發送到您的桌面 –

回答

1

也許是一個括號問題:

SendKeys.Send("^(%{LEFT})"); 

,你可以找到在documentation更多詳情其中指出:

要指定SHIFT,CTRL和ALT的任意組合應該是在按下其他幾個鍵的同時按住 ,將這些鍵的代碼括在括號內。例如,要指定在按住E和C鍵的同時按住SHIFT鍵,請使用「+(EC)」。要指定按住SHIFT而按下 E,然後按C不SHIFT,使用「+ EC」。

不知道VBS的行爲:我希望C#的非常相同的行爲,因爲VBS documentation爲的SendKeys這麼說......

相關問題