我用C++编写了一个程序,可以模拟在非活动窗口上的点击,使用如下: PostMessage (z, WM_LBUTTONDOWN, 0,MAKELONG(t.left+x,t.top+y)); 但是每次点击它时,它都会激活窗口并将窗口移动到顶部。 有没有办法让窗口保持不活动或者另一种点击方式? 我使用了SetWindowPos(z , HWND_BOTTOM,....)来使该窗口位于z-order列表的底部,但它仍然会被激活。 编辑:该窗口是一个游戏控制台。
WM_MOUSEACTIVATE
消息来防止该窗口被激活(通过返回MA_NOACTIVATE
)。 - Jonathan PotterPostMessage
是错误的工具。请使用SendInput
。扩展Jonathan Potter所建议的,即使您没有源代码,也可以控制您不拥有的窗口。首先,您必须将您的代码放入目标进程中(例如使用钩子)。下一步是让该代码子类化目标窗口。一旦您的 WndProc 掌控了控制权,您就可以简单地忽略WM_MOUSEACTIVATE
消息。但请注意,这并不能保证有效。 - IInspectable