屏幕保护程序与控制面板的关系(欢迎讨论)
1。操作系统:windows98
2。编程环境:visualc 6。0
3。问题
现象:
第一个:
直接复制MSDN自己带的屏幕保护程序SAVER,不作任何改动,编译后将其
输出文件saver.scr拷贝到c:\windows\system下,然后在控制面板中选择
显示器,在屏幕保护中选择saver,此时出现以下现象:
* 预览按钮可以工作。
* 设置按钮不工作。
* 如果选择了密码设置,那么密码根本不起作用。
第二个:
在编译时将输出文件改成.exe输出,此时如果在运行框内用命令行输入,
出现以下现象:
* ....\saver.exe /c 运行后出现设置对话框,正确。
* ....\saver.exe /s 运行后进入屏幕保护,正确。
* ....\saver.exe /p 运行会出现错误提示,"出现错误操作",错误。
问题:
屏幕保护程序与控制面板(其实就是操作系统)之间到底是怎样通信的?
譬如,用户点击设置按钮后,屏幕保护程序会怎样响应之?是不是用户点击
预览、设置按钮都是用响应的参数调用并执行程序?如果是这样,那么如何解释
上面的现象?
密码设置是怎样加入屏幕保护程序的?是控制面板实现呢,还是在每个
屏幕保护程序中实现?似乎应该是前一个,那么又怎样实现呢?或者可能是
这样:控制面板响应密码设置操作,将密码信息写入注册表,然后在每个屏幕
保护程序中响应键盘和鼠标消息并要求用户输入密码并检验。哎呀,越说越
胡涂了。
如果用screen saver library 直接编程,msdn里讲的比较简单,里面提到
只要编写几个函数,然后和library 一起编译即可。我实在不明白什么叫一起编译。
是不是我只要建立一个源文件,然后将这些函数放在该文件中,include library,
在加上其他的一些细节就可以编译了。我先是建了一个win32 application(就是
那个hello world的),改写了一部分,未能成功。从msdn的文档来看,library中
提供了start code,好像是library中隐含winmain,它从内部调用了我自己定义的
那几个函数。
我现在是糊里糊涂的,上面提到的只是自己的一点想法,错误多多,大家看了
尽管指正之,感激不尽。