如何在模拟点击时保持窗口不活动? 我用C++编写了一个程序,用不为活动的窗口模拟点击: PostMessage (z, WM_LBUTTONDOWN, 0,MAKELONG(t.left+x,t.top+y));

如何在模拟点击时保持窗口不活动? 我用C++编写了一个程序,用不为活动的窗口模拟点击: PostMessage (z, WM_LBUTTONDOWN, 0,MAKELONG(t.left+x,t.top+y));,c++,winapi,click,window,C++,Winapi,Click,Window,但是,每当它发出咔哒声时,就会激活窗口,窗口就会移到顶部 有没有一种方法可以使窗口保持不活动状态,或者用另一种方法单击它 我使用SetWindowPos(z,HWND_BOTTOM,…)使该窗口位于z顺序列表的底部,但它仍然激活 编辑:该窗口是一个游戏控制台尝试从PostMessage切换到,看看是否获得相同的效果 这当然是正常的,当你用鼠标点击一个窗口时也会发生这种情况。不,如果你没有程序的来源,你就不能改变这种行为。我也在尝试做类似的事情。但是如果他有源代码呢?他该怎么办?:)在其他窗口(文

但是,每当它发出咔哒声时,就会激活窗口,窗口就会移到顶部

有没有一种方法可以使窗口保持不活动状态,或者用另一种方法单击它

我使用
SetWindowPos(z,HWND_BOTTOM,…)
使该窗口位于z顺序列表的底部,但它仍然激活


编辑:该窗口是一个游戏控制台

尝试从
PostMessage
切换到,看看是否获得相同的效果

这当然是正常的,当你用鼠标点击一个窗口时也会发生这种情况。不,如果你没有程序的来源,你就不能改变这种行为。我也在尝试做类似的事情。但是如果他有源代码呢?他该怎么办?:)在其他窗口(文件夹、记事本)上它不会激活它们如果你控制目标窗口,你可以处理
WM_MOUSEACTIVATE
消息以防止窗口激活(通过返回
MA_NOACTIVATE
)。合成输入
PostMessage
是错误的工具。改用。扩展Jonathan Potter的建议,你可以控制一个你不拥有的窗口,即使你没有源代码。您首先必须将代码放入目标进程(例如使用钩子)。下一步是将该代码子类化为目标窗口。一旦WndProc处于控制状态,您可以简单地忽略
WM\u MOUSEACTIVATE
消息。但是请注意,这并不能保证有效。