Sendkeys.send发送alt + space + n组合

时间:2013-12-11 16:26:47

标签: c# .net keyboard-shortcuts combinations sendkeys

标题几乎解释了问题。我希望通过Senkeys.send方法获得alt + space + n组合,如何做到这一点?到目前为止,我已经尝试了SendKeys.Send("% N");,但它无效。

2 个答案:

答案 0 :(得分:0)

空格键不是传统的修饰键,所以我相信你需要单独发送keyUp和keyDown事件。

我对C#sendkeys并不完全熟悉,因为我使用AutoIt库来做这种事情,使用AutoIt命令会是这样的:

private void pressAltSpaceN()
{
   AutoItX3Declarations.AU3_Send("{alt down}", 0);
   AutoItX3Declarations.AU3_Send("{space down}", 0);
   AutoItX3Declarations.AU3_Send("{n down}", 0);
   AutoItX3Declarations.AU3_Send("{n up}", 0);
   AutoItX3Declarations.AU3_Send("{space up}", 0);
   AutoItX3Declarations.AU3_Send("{alt up}", 0);
}

希望其他人可以告诉你如何使用SendKeys发送keyUp和keyDown事件,否则你可以学习如何使用这个问题的答案将AutoIt集成到C#中:link

答案 1 :(得分:0)

您正在使用的字符串应该可以使用。也许默认的日记钩子不适用于您尝试最小化的应用程序。您可以尝试使用app.config和SendInput使用备用方法(请参阅here)。

解决问题的更好方法是使用GetActiveWindow获取焦点窗口的句柄,然后调用ShowWindowAsync并传入ShowWindowCommand值为2。