gpt4 book ai didi

c# - 忽略鼠标点击并将键盘输入发送到外部应用程序

转载 作者:行者123 更新时间:2023-11-30 17:12:31 25 4
gpt4 key购买 nike

在遗留程序中单击鼠标时如何模拟击键。笔记!程序可能不知道鼠标被点击了

我正在尝试

 IntPtr module = LoadLibrary("user32.dll");
_mouseHookHandle = (HookType.MouseLowLevel, _mouseDelegate, module, 0);

并测试从 HookProc 返回 -1。但是当我这样做时,SendInput 不会将我的输入发送到应用程序。如果我从 CallNextHookEx 返回结果,SendInput 工作,但随后鼠标点击被发送到遗留应用程序。

背景

我们有一个用特殊键盘控制的程序。当按下键盘上的一个键时,它会发送一系列 ESC 和字母。然后程序根据鼠标在屏幕上的位置执行操作。

我正在开发一个屏幕键盘,这样您就可以在没有这个特殊键盘的情况下控制应用程序。用户使用鼠标选择屏幕键盘上的按钮。然后用户将鼠标指针移动到他要向其发送突击队的对象,然后再次单击。但话虽如此,鼠标点击可能不会传递给程序,程序会在鼠标点击时执行另一个操作。

最佳答案

作为可能的方法之一,您可以使用简单的 SendMessage 将任何窗口消息直接发送到目标窗口。它可以与外部应用程序的窗口一起使用。 (但您需要找到目标窗口的句柄才能使用此功能)。通过这种方式,您也可以发送任何键盘和鼠标事件。

忽略鼠标事件更加困难。您需要对该窗口进行子类化,即附加您自己的自定义窗口过程来过滤窗口消息。为此,您需要将 DLL 注入(inject)到受控进程中。
整体任务相当复杂,不是可以复制粘贴的简单代码片段。

关于c# - 忽略鼠标点击并将键盘输入发送到外部应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10631149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com