我在 C# 中使用 keybd_event win api 调用,我想模拟特殊的按键,比如alt+ f4,alt+tab和类似的。我的程序可以处理“简单”按键,例如shift+ p、altgr+w和简单使用tab, 或者enter也可以工作,但是当出现两个特殊按钮时(对于特殊按钮,我的意思是,alt或功能按钮),它似乎什么也没做。我的程序应该通过远程桌面处理多个表单,这就是我使用这个 keybd_event 调用的原因,但是例如+甚至在本地都不起作用(我在记事本上测试,但我不能用这个命令关闭它)。有人知道我在做什么错吗?甚至有可能让它们工作吗?shiftctrlaltf4
提前致谢!
编辑:
我创建了一个 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();