跳转到内容

Windows 编程/编程屏幕保护程序

来自维基教科书,开放的书籍,为开放的世界

屏幕保护程序是图形程序,在计算机闲置时会锻炼计算机屏幕,以防止屏幕损坏。然而,屏幕保护程序也可以非常美观、有趣和娱乐。

屏幕保护程序本质上是正常的可执行程序,只是有一些细微的差别

  1. 它们使用 .scr 扩展名,而不是 .exe
  2. 它们具有 ScreenSaverProc,而不是 WindowProc。
  3. 它们调用 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 选项,则它应弹出一个对话框来更改密码。

启动屏幕保护程序

[编辑 | 编辑源代码]
华夏公益教科书