2

好的,所以我可能在这里完全错误的树,因为我在 Windows 编程方面不是最新的,但是这里有。

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

本质上,当程序从另一个应用程序接收到特定的代码字符串时(这一切都是通过许多 if 语句来工作的,虽然很乱但可以工作)

我需要它来执行与按键盘上的 control 和 s 相同的功能。

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

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 的方法(不是一个接一个,一起)。

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

4

1 回答 1

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); 
于 2010-08-01T17:26:16.663 回答