gpt4 book ai didi

c# - SendMessage() 仅在窗口打开时有效,在最小化时无效

转载 作者:行者123 更新时间:2023-11-30 13:06:21 24 4
gpt4 key购买 nike

我一直在使用 SendMessage 将鼠标点击发送到几个窗口。一个是游戏(一切正常),但另一个窗口,作为游戏的第 3 方工具,SendMessage 出现问题。如果窗口“未最小化”,则一切正常,如果窗口完全被另一个窗口覆盖,则无关紧要。但是如果同一个窗口被最小化,那么什么也不会发生,我用 spy++ 进行了检查,消息确实被接收但没有被处理(正确的术语?)。过去几天我试图解决这个问题,在这里和谷歌上都进行了类似的搜索,搜索了很多主题但没有任何帮助?

//MyImports
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);

[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

我是这样包装的

public static void LClick(string windowclass, int x, int y)
{
IntPtr WHandle = FindWindow(windowclass, null);
SendMessage(WHandle, (int)WMessages.WM_LBUTTONDOWN, (IntPtr)1, (IntPtr)MakeLParam(x, y));
SendMessage(WHandle, (int)WMessages.WM_LBUTTONUP, (IntPtr)0, (IntPtr)MakeLParam(x, y));
}

我试过焦点,激活。可能有用的信息之一是第三方程序正在作为游戏的 module("Qt5QWindowIcon") 加载。

我也尝试了 PostMessage,它在最小化时与 SendMessage() 有同样的问题。

这个游戏确实允许宏和无人值守的宏,提示设计用于执行宏的第三方工具(由创作者发布)我只是想模拟鼠标点击程序来启动宏。

我只会使用 SendInput,但我的程序的全部目的是在后台运行。

最佳答案

我遇到了同样的问题。请更改程序集名称和项目名称(更改的名称不是以您正在抛出/发布 Windows 消息的名称开头)然后重建它并检查它。现在您将能够进行调试。

关于c# - SendMessage() 仅在窗口打开时有效,在最小化时无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23412625/

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