让应用程序禁止Windows屏幕保护
敬业的IT人
互联网
佚名
2008-1-3 22:05:01
- ·应用MFC开发高级应用程序
·在VC++应用程序中读取文本数据
·使用GWT开发AJAX应用程序
·DirectSound应用程序开发快速入门
·在Ajax应用程序中实现数据交换
·用Indy组件开发Socket应用程序
·MFC应用程序框架入门
·VFP基础教程 第十一章 应用
·用VC++建立Service服务应用程序
·用VC++编制FTP客户端应用程序
OnMessage事件的定义如下:
typedef void__fastcall(__closure*TMessageEvent)(tagMSG &Msg,bool&Handled);
__property TMessageEvent OnMessage=
{read=FOnMessage,write=FOnMessage};
其中TMessageEvent类型是OnMessage事件的类型,它定义了处理消息的方法,Msg参数给出了Windows消息的相关信息,其结构如下:
typedef struct tagMSG{HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;}
Handled参数决定了如何对消息进行下一步处理,如果在接收到一个消息后将Handled参数设为true,则这个消息将不会得到进一步的处理,在本例中就是取消屏幕保护程序的激活。
启动C++ Builder,新建一工程文件,在头文件中的Private段增加对成员函数CaptureMessage的声明:
class TForm1 : public TForm{
__published:
private:
void __fastcall CaptureMessage(tagMSG &Msg,bool &Handled);
public:
__fastcall TForm1(TComponent* Owner);
};
在.cpp文件中增加CaptureMessage的定义:
void __fastcall TForm1::CaptureMessage(tagMSG &Msg,bool &Handled){
if(Msg.message= =WM_SYSCOMMAND && Msg.wParam= =SC_SCREENSAVE)
Handled=true; //阻止屏幕保护的启动
else
Handled=false; //进行该消息的缺省处理
}
再将定义好的CaptureMessage函数作为OnMessage事件的事件处理器,将以下代码加到主窗体的OnCreate事件处理器中:
void __fastcall TForm1::FormCreate(TObject *Sender){
Application->OnMessage=CaptureMessage;
}
按F9编译并运行程序,你可以事先将屏幕保护的等待时间设为一个尽可能小的值来检验程序的运行情况。你会发现在程序运行期间,屏幕保护程序将无法被激活,关闭运行的程序后再等待一会儿,屏幕保护程序就会正常出现。以上代码在C++ Builder3、win98环境中运行通过。
- 最新文章
- 用C++Builder编写发送电子邮件软件[01-03]
- 用C++ Builder实现桌布自动更新[01-03]
- 用C++ Builder3 制作记事本[01-03]
- 深入VCL 理解BCB的消息机制(二)[01-03]
- C++Builder中集合的处理[01-03]
- 手机短信息SMS开发—编码和解码[01-03]
- 相关文章
- C++Builder开发Web应用程序[01-03]
- Windows多线程间同步事件的控制方法[01-03]
- 以C++ Builder处理Windows 讯息(Messa..[01-03]
- 用C++ Builder开发多层数据库应用程序[01-03]
- 用C++ Builder检测Windows的启动模式[01-03]
- 应用程序禁止Windows屏幕保护[01-03]
