C++ 创建 Windows 屏幕保护程序

lam*_*bda 3 c++ windows opengl sdl

我使用 OpenGL 和 SDL 在 C++ 中创建了一个动画(它不使用 Windows 库),并希望将其用作 Windows 系统的屏幕保护程序。我读过一个例子:它描述了您只需将.exe扩展名更改为.scr.

我已经这样做了,并将动画作为屏幕保护程序运行,但我注意到动画运行得并不流畅。好像应用程序性能有所损失。

我制作的应用程序创建动画,将其设置为全屏,隐藏光标并处理所有键盘输入。如何让我的应用程序作为屏幕保护程序顺利运行?

Jas*_*n C 5

这不仅仅是重命名文件。

至少,您必须支持正确的行为来响应以下命令行参数(取自Microsoft):

ScreenSaver           - Show the Settings dialog box.
ScreenSaver /c        - Show the Settings dialog box, modal to the
                        foreground window.
ScreenSaver /p <HWND> - Preview Screen Saver as child of window <HWND>.
ScreenSaver /s        - Run the Screen Saver.
Run Code Online (Sandbox Code Playgroud)

如果可执行文件的多个实例正在启动并作为全屏屏幕保护程序运行(屏幕保护程序仅应在指定 /s 的情况下实际运行),这可能是导致性能问题的原因。您应该在例如任务管理器中验证这一点。

希望有帮助。