2

现在我可以绘制游戏,但前提是它们处于窗口模式,我只是在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++)

4

1 回答 1

2

你就是不能(至少那样)。当游戏进入全屏模式时,它们通常使用对 DirectX 或 OpenGL 的低级调用来执行此操作,这将禁用 Windows 桌面的所有窗口逻辑。然后游戏直接绘制到图形设备的帧缓冲区中,图形驱动程序将在屏幕上显示此内容 - 完全绕过窗口。

要真正“超越”它,您可以忘记所有类型的 WinForms/MFC 调用,但您必须查看允许您操作帧缓冲区的低级驱动程序调用(尽管我怀疑您是否可以从外部进程执行此操作) .

于 2012-12-29T18:44:53.863 回答