我一直在研究一款名为L.A. Noire的游戏开发的录音软件。游戏能够以窗口模式运行,但它们似乎不允许窗口移动。
当游戏在启动时滞后时,我注意到的一件事是你可以移动窗口,它会留在你放置它的地方。深入研究Windows 7我发现我可以通过SHIFT +右键单击强制窗口菜单,并确认窗口确实可以移动。
我抓住了Win32 API调用SetWindowPos
并将我的C#代码实现为"关注"一个窗口。这适用于其他应用程序,如uTorrent,Calc和我尝试过的所有其他常规应用程序。但是,它确实不为LA Noire工作。我试图切换SetWindowPos
上的标记,例如表示不将其传递给WndProc
,不显示/移动,不调整大小等的标记。
我还尝试了SetWindowPos
的其他变体,例如MoveWindow
,它们没有帮助移动LA Noire,但仍然使用Calc等。
下一个合乎逻辑的步骤是什么?我应该手动向程序发送WM_MOVE
还是应该在窗口上安装挂钩?