首页 > 其他分享 >Delphi编写Win7屏幕保护唤醒工具

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

时间:2023-01-25 22:35:19浏览次数:52  
标签:Delphi 程序 Win7 保护 SendMessage 屏幕 唤醒 WM


本工具网络下载地址​​
本工具完整Delphi7源码

//程序截图如下:

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

Delphi编写Win7屏幕保护唤醒工具_网络_02



写此程序的目的:

    很多时候,我需要暂时离开电脑,不想关机,又想延长电脑屏幕的寿命,


所以我想到了屏幕保护。众所周知,在系统中设置了屏幕保护后,需要在指定


的一段时间内屏幕保护程序才能运行,而我的需求却是随时都可以启动屏幕保护


程序,因此有了写这款小程序的想法!...




程序的实现原理:

    原理很简单啦,其实就是给系统发送一个广播消息,让系统启动屏幕保护程序就可以了。


发送消息,有两个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;


​​



标签:Delphi,程序,Win7,保护,SendMessage,屏幕,唤醒,WM
From: https://blog.51cto.com/softo/6023010

相关文章

  • Delphi文本文件的写操作
    最近我用Delphi写了个程序,需要将用户信息写入文件,因此在网上查了下Delphi有关文本文件的操作,经整理后,我将其封装成了一个函数,以方便以后的使用,访函数代码如下://将帐号信......
  • Delphi启动外部程序
    无论是用VC还是用Delphi,启动外部程序,调用的都是相同的系统中的API函数,如下Delphi代码所示://登录按钮procedureTForm1.Label_LoginClick(Sender:TObject);beginRunOther......
  • delphi通过方法名调用方法
    delphi通过方法名调用方法unitUnit1;interfaceusesWinapi.Windows,Winapi.Messages,System.SysUtils,System.Variants,System.Classes,Vcl.Graphics,Vcl......
  • delphi DateTimeToUnix 时间戳转换
    函数第2个参数AReturnUTC默认是true,设置为false,北京时间正确返回。2023-01-2412:33:17》1674534797lbledtUnix2.Text:=DateTimeToUnix(strtodatetime(lbledtdt.Text),......
  • Using Semaphores in Delphi, Part 2: The Connection Pool
    Abstract:Semaphoresareusedtocoordinatemultiplethreadsandprocesses.Thatsemaphoresprovidemultiplethreadswithsimultaneousaccesstoasharedresou......
  • 软件的基本是要处理好”算法“及其基础(三)delphi 10.4.1字符串工具单元及其函数
     //:关于字符串的定义: _RawByteStr=RawByteString; {$IFDEFNEXTGEN}   UTF8String=type_AnsiString(65001);   RawByteString=type_AnsiString($f......
  • 折腾delphi2009
    很老的软件了,几年前修改象棋演播室时用到过。重装机器后一直没装这个软件。前几天从网上重新下载了安装包,根据说明安装,解密,似乎一切顺利。但是第二次启动时,提示无法在临时......
  • 为了更新steam,在网上学把steam以win7运行,然后重启就这样了
    提问:问题显示c00002afatasystemerror,蓝屏博客园上已有的方法都试过了,手边也没有u盘重装系统解答: 这种错误通常表明系统文件或者驱动程序已经损坏或者缺失。在没有U......
  • 【最新】Delphi XE7 绿色版下载,亲测可用!
    最后更新时间2017-12-05.本文整理自2ccc盒子iny的帖子→链接到原贴破解→链接一、绿色版介绍绿色版除了不包含FastReport(RADStudio自带的FastReport为精简......
  • (转)Delphi编译器版本对照表及工具链
    目录Delphi编译器版本对照表及工具链1、Delphi编译器版本历史对照表2、Delphi工具链(Delphi编译器)3、Delphi条件编译3.1、预定义条件符号:3.2、对编译器版本的条件......