Windows 编程/编程屏幕保护程序
外观
屏幕保护程序是图形程序,在计算机闲置时会锻炼计算机屏幕,以防止屏幕损坏。然而,屏幕保护程序也可以非常美观、有趣和娱乐。
屏幕保护程序本质上是正常的可执行程序,只是有一些细微的差别
- 它们使用 .scr 扩展名,而不是 .exe
- 它们具有 ScreenSaverProc,而不是 WindowProc。
- 它们调用 DefScreenSaverProc,而不是 DefWindowProc。
此外,屏幕保护程序必须包含一个配置对话框,当您单击屏幕保护程序并选择“属性”时,外壳可以调用该对话框。最后一个要求是屏幕保护程序必须在资源 1 处有一个字符串资源,其中包含对屏幕保护程序的描述。
Windows 会根据屏幕保护程序必须执行的操作模式,在命令行上向屏幕保护程序发送多个不同的参数。以下是一些参数
- /a <hwnd>
- /s
- /c <hwnd>
- /p <hwnd>
-a 选项告诉屏幕保护程序设置关联密码(如果选择屏幕保护程序为密码保护)。-s 选项告诉屏幕保护程序运行图形并开始保存屏幕。-c 选项告诉屏幕保护程序显示配置对话框,-p 选项告诉屏幕保护程序以预览模式运行。
WinMain 函数应解码命令行,并获取开关(a、s、p、c)和句柄(如果指定)。句柄值将以 ASCII 字符串形式存在,因此需要将其转换为整数,并存储到适当的 HWND 变量中。提供的句柄是屏幕保护程序父窗口的句柄,该父窗口通常是 Windows 显示对话框中的屏幕保护程序选项卡。如果屏幕保护程序处于屏幕保护模式,则没有父窗口。
如果 WinMain 收到 -s 或 -p,则 WinMain 应调用 ScreenSaverProc。如果它收到 -c 选项,WinMain 应调用对话框过程函数。如果屏幕保护程序收到 -a 选项,则它应弹出一个对话框来更改密码。