现在我可以在游戏上绘制,但只有当它们处于窗口模式时,我只需在TopMost窗体上绘制并将其设置为可点击:
//C++ .NET 4
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
int initialStyle = GetWindowLong(this->Handle, -20);
SetWindowLong(this->Handle, -20, initialStyle | 0x80000 | 0x20);
}但如果游戏在全屏模式下运行,我就不能这样做:
我能用全屏游戏做点什么吗?(如果可能,使用C++ )
发布于 2012-12-30 02:44:54
你就是不能(至少这样)。当游戏进入全屏模式时,它们通常使用对DirectX或OpenGL的低级调用来执行此操作,这将禁用Windows Desktop的所有窗口逻辑。然后,游戏直接绘制到图形设备的帧缓冲区中,图形驱动程序将在屏幕上显示这些内容-所有其他窗口都被绕过。
要真正“解决”这一点,你可以忘记所有的WinForms/MFC调用,但是你必须研究允许你操纵帧缓冲区的低级驱动程序调用(尽管我怀疑你能从外部进程做到这一点)。
https://stackoverflow.com/questions/14083291
复制相似问题