我正尝试从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}"
我对这一切都很陌生,所以也许我错过了一些明显的东西?
答案 0 :(得分:1)
可能是一个括号问题:
SendKeys.Send("^(%{LEFT})");
您可以在documentation中找到更多详细信息:
指定应保留SHIFT,CTRL和ALT的任意组合 当按下其他几个键时,请为这些键包含代码 括号中的键。例如,指定按住SHIFT的同时 按下E和C,使用“+(EC)”。指定按住SHIFT的同时 按下E,然后按C而不SHIFT,使用“+ EC”。
不确定VBS的行为:我期望C#的行为完全相同,因为SendKeys的VBS documentation这样说......