SendKey命令使用vbs而不是C#

时间:2015-06-04 12:04:43

标签: c# sendkeys

我正尝试从Windows窗体按钮(C#)发送 Ctrl + Alt + Left 来旋转我的屏幕。这是一个英特尔热键。 当我按下按钮时没有发生任何事情,但是如果我在vbs文件中使用几乎相同的命令就可以了。

这是不起作用的c#代码:

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

运行的vb脚本:

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

我对这一切都很陌生,所以也许我错过了一些明显的东西?

1 个答案:

答案 0 :(得分:1)

可能是一个括号问题:

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

您可以在documentation中找到更多详细信息:

  

指定应保留SHIFT,CTRL和ALT的任意组合   当按下其他几个键时,请为这些键包含代码   括号中的键。例如,指定按住SHIFT的同时   按下E和C,使用“+(EC)”。指定按住SHIFT的同时   按下E,然后按C而不SHIFT,使用“+ EC”。

不确定VBS的行为:我期望C#的行为完全相同,因为SendKeys的VBS documentation这样说......