• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Delphi编写Win7屏幕保护唤醒工具

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
本工具网络下载地址:http://download.csdn.net/download/friendan/4637954
本工具完整Delphi7源码:http://download.csdn.net/download/friendan/4637961

//程序截图如下:



写此程序的目的:
    很多时候,我需要暂时离开电脑,不想关机,又想延长电脑屏幕的寿命,
所以我想到了屏幕保护。众所周知,在系统中设置了屏幕保护后,需要在指定
的一段时间内屏幕保护程序才能运行,而我的需求却是随时都可以启动屏幕保护
程序,因此有了写这款小程序的想法!...


程序的实现原理:
    原理很简单啦,其实就是给系统发送一个广播消息,让系统启动屏幕保护程序就可以了。
发送消息,有两个API可以使用,一个是SendMessage(...),另一个是PostMessage(...),它们的
详细参数,有兴趣的朋友上网查下就可以了。

    需要说明的是我在本程序中刚开始使用的API是SendMessage,结果一启动屏幕保护程序,
我的程序就卡死了,后来换成了PostMessage,程序不卡了,功能一切正常。
估计是因为SendMessage发送消息时,直到别的程序处理完消息才返回,
没返回就等待,从而使自身程序失去系统消息响应、卡死了。
而PostMessage发送消息时,不等待线程处理消息就返回,是异步消息模式,因此没有导致程序的卡死。

程序的主要代码如下:
//启动屏幕保护按钮
procedure TForm1.Stx_LaunchClick(Sender: TObject);
begin

RunSSProc();

end;
//////////////////////////////////////////////////////////

//屏幕保护启动过程
procedure TForm1.RunSSProc();
begin

//暂停一秒,给用户一点时间释放键盘和鼠标
//否则有可能启动屏幕保护失败
Sleep(1000);

//暂时想不通,为什么Delphi可以直接调用以下这行代码
//SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_SCREENSAVE,0);
PostMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_SCREENSAVE,0);

//经测试用以下这行代码也可以,
//HWND_BROADCAST参数在Delphi中用wnd_Broadcast来代替
//WM_SYSCOMMAND在Delphi中用什么来代替,暂时我还没知道
//SC_SCREENSAVE是个宏,实为61760
//SendMessage(wnd_Broadcast,WM_SYSCOMMAND,61760,0);

end;





鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap