在Visual C ++中模拟按键

时间:2010-08-01 17:14:52

标签: visual-c++ keypress simulate keyevent

好的,所以我可能会在这里完全咆哮错误的树,因为我不是最新的Windows编程,但现在这样。

我正在尝试在Visual Studio 2010中的C ++项目中启动模拟按键。

基本上当程序从另一个应用程序接收一个特定的代码字符串时(通过许多if语句进行处理,但是很麻烦但是有效)

我需要它来执行与我在键盘上按下控制键的功能相同的功能。

现在我发现的一些代码就是这个。

keybd_event(VK_LCONTROL,0,0,0); 
  keybd_event(bKey, 0, 0, 0);


   keybd_event(bKey, 0, KEYEVENTF_KEYUP, 0);
  keybd_event(VK_LCONTROL,0,KEYEVENTF_KEYUP,0); 

因此bKey是S的相应ASCII代码,它让我无法逃脱,但它仍然与这篇文章无关。

我对它的理解应该做什么

Push Control down
Push S down
Release S
Release Control.

然而它似乎没有这样做,它似乎只是按下并释放S,从而根据当时是否有文本输入,适当或不依赖打印S.

我在这里完全咆哮错误的树吗?我知道如何在Xcode的Objective C中做到这一点,但两者看起来完全不同,我知道它们是不同的系统,但仍然。

有人可以提出解决方案吗?基本上是一种使程序一起命中Control + S的方法(不是一个接一个地一起)。

非常感谢任何帮助。那里似乎有很多相互矛盾的信息。

1 个答案:

答案 0 :(得分:2)

请改为尝试:

keybd_event(VK_LCONTROL,MapVirtualKey(VK_LCONTROL,0),0,0); 
keybd_event(bKey, MapVirtualKey(bKey,0), 0, 0);


keybd_event(bKey, MapVirtualKey(bKey,0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_LCONTROL,MapVirtualKey(VK_LCONTROL,0),KEYEVENTF_KEYUP,0); 
相关问题