【发布时间】:2013-07-10 14:05:23
【问题描述】:
我在 C# 中使用 keybd_event win api 调用,我想模拟特殊按键,例如 alt+f4、alt+tab 和类似的。我的程序可以处理“简单”的按键,例如 shift+p、altgr+w 和简单的使用tab 或 enter 也可以工作,但是当出现两个特殊按钮时(对于特殊按钮,我的意思是 alt、shift、ctrl 或功能按钮)它似乎什么也没做。我的程序应该通过远程桌面处理多种表单,这就是我使用这个 keybd_event 调用的原因,但是例如 alt+f4 甚至在本地都不起作用(我在记事本上测试,但是我不能用这个命令关闭它)。有人知道我在做什么错吗?甚至有可能让它们工作吗?
提前致谢!
编辑:
我创建了一个 DLLImport 类,其中存储了所有 win api 调用。我也有一些辅助方法,例如:
private void PressAlt()
{
DLLImport.keybd_event(0xA0, 0x38, 0, 0);
}
private void ReleaseAlt()
{
DLLImport.keybd_event(0xA0, 0x38, 0x0002, 0);
}
对于选项卡,我在单独的方法中使用它:
DLLImport.keybd_event(0x09, 0x0f, 0, 0); //press tab
...
DLLImport.keybd_event(0x09, 0x0f, 0x0002, 0); //release tab
我现在正在测试它:
PressAlt();
PressSpecial("tab");
ReleaseSpecial("tab");
ReleaseAlt();
【问题讨论】:
-
你能展示一些源代码吗?看不到任何东西很难发现问题。
-
我已经编辑了我的问题(我很抱歉,我还是这个论坛的新手)。