1

我正在为程序制作用户可定义的键宏。(这些宏仅限于该程序。)

我正在使用 TApplicationEvents 来记录关键消息。然后使用 SendInput 播放它们。但我需要禁用鼠标和键盘,这样它就不会中断播放。

我不能使用 JournalPlaybackProc 和 JournalRecordProc,因为它们受 UAC、Vista 和 Win7 中的 UIPI 约束。

是否有一种简单的方法可以在仍然使用 SendInput 的同时阻止鼠标和键盘输入。(一种不需要提升特权的方式。)

我还需要一个停止播放的转义键。

编辑: TControl.Perform 不起作用,因为它忽略了热键。

我想在 WM_KEY 消息中使用保留的半字节(位 25-28),但在 Windows 文档中它说它是保留的并且不使用。可能有什么后果。

4

2 回答 2

3

如果您希望“人工输入”仅限于您自己的应用程序,我不会使用 SendInput。如果您使用 TApplicationEvents.OnMessage 来记录消息,我会在播放宏并使用 Form1.Perform 时添加一个“if not(PlayingBack) then”检查 OnMessage

于 2009-11-27T20:57:10.260 回答
1

我一直使用 AutoIT 的 DLL 来发送按键以及阻止键盘和鼠标。

有一件事,那就是 AutoIT 不能阻止 Ctrl+Alt+Del 键。

一定要检查一下

高温高压

于 2009-11-28T07:06:56.223 回答