前段时间我使用 C++/WinAPI 编写了一个 Windows 屏幕保护程序,但现在当我在 Windows 8 上的登录屏幕上尝试它时(当没有用户登录时)它似乎不起作用。这显然是 Windows 8 中的一个错误,因为当我重新启动系统时,我的屏幕保护程序开始正常工作。(请注意,此行为从未在任何先前版本的 Windows 上发生过。)
发生的情况是,当屏幕保护程序启动时,屏幕变黑,在那之后什么也没有发生。显然我不能用 Visual Studio 调试它,所以我在第一行添加了一个跟踪语句,它应该在 ScreenSaverProc() 的 WM_CREATE 中开始执行,但是当屏幕保护程序像我上面描述的那样挂起时,该行永远不会被调用。
这告诉我,在发送 WM_CREATE 消息之前,一些初始化代码挂起,但为了解决这个问题,我无法访问该代码,因为微软关于 WinAPI 屏幕保护程序的教程指示链接到 Scrnsave.lib(或 ScrnsavW.lib 在我的情况下。 )
所以我想知道,有没有办法在不使用 Scrnsave.lib 的情况下构建 WinAPI 屏幕保护程序?