日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
應用程序禁止Windows屏幕保護

如果在你的程序中需要一個很長的時間段來進行大量的數(shù)據(jù)處理,這段時間長得足以使Windows因檢測不到用戶動作而激活屏幕保護程序,一旦啟動了屏幕保護程序,你的程序運行實際上就變慢了,這會大大影響程序的正常運行。有沒有一種應用程序可以在進行長時間的數(shù)據(jù)處理前關掉屏幕保護呢?答案是肯定的。Windows在啟動屏幕保護程序前會向當前激活的應用程序發(fā)送WM_SYSCOMMAND消息,其中wParam參數(shù)指定了即將執(zhí)行的系統(tǒng)命令類型,在本例中其值為SC_SCREENSAVE。問題在于程序如何捕獲這個消息呢?在C Builder中可以利用TApplication類的OnMessage事件句柄來處理這個消息。應用程序在接收到任何Windows消息后都會觸發(fā)TApplication類的OnMessage事件,通過定義這個事件的處理程序,可以捕獲發(fā)送給應用程序的所有Windows消息(這當然不包括在程序中用SendMessage函數(shù)發(fā)送的消息)。

澄城網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、成都響應式網(wǎng)站建設公司等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)從2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選成都創(chuàng)新互聯(lián)。

  OnMessage事件的定義如下:

 
 
 
  1. typedefvoid__fastcall(__closure
  2. *TMessageEvent)(tagMSG&Msg,bool&Handled);
  3. __propertyTMessageEventOnMessage=
  4. {read=FOnMessage,write=FOnMessage};

  其中TMessageEvent類型是OnMessage事件的類型,它定義了處理消息的方法,Msg參數(shù)給出了Windows消息的相關信息,其結構如下:

 
 
 
  1. typedefstructtagMSG{
  2. HWNDhwnd;
  3. UINTmessage;
  4. WPARAMwParam;
  5. LPARAMlParam;
  6. DWORDtime;
  7. POINTpt;}

  Handled參數(shù)決定了如何對消息進行下一步處理,如果在接收到一個消息后將Handled參數(shù)設為true,則這個消息將不會得到進一步的處理,在本例中就是取消屏幕保護程序的激活。

  啟動C Builder,新建一工程文件,在頭文件中的Private段增加對成員函數(shù)CaptureMessage的聲明:

 
 
 
  1. classTForm1:publicTForm
  2. {
  3. __published:
  4. private:
  5. void__fastcallCaptureMessage(tagMSG&Msg,bool&Handled);
  6. public:
  7. __fastcallTForm1(TComponent*Owner);
  8. };

  在.cpp文件中增加CaptureMessage的定義:

 
 
 
  1. void__fastcallTForm1::CaptureMessage(tagMSG&Msg,bool&Handled)
  2. {
  3. if(Msg.message==WM_SYSCOMMAND&&Msg.wParam==SC_SCREENSAVE)
  4. Handled=true;//阻止屏幕保護的啟動
  5. else
  6. Handled=false;//進行該消息的缺省處理
  7. }

  再將定義好的CaptureMessage函數(shù)作為OnMessage事件的事件處理器,將以下代碼加到主窗體的OnCreate事件處理器中:

 
 
 
  1. void__fastcallTForm1::FormCreate(TObject*Sender)
  2. {
  3. Application->OnMessage=CaptureMessage;
  4. }

  編譯并運行程序,你可以事先將屏幕保護的等待時間設為一個盡可能小的值來檢驗程序的運行情況。你會發(fā)現(xiàn)在程序運行期間,屏幕保護程序將無法被激活,關閉運行的程序后再等待一會兒,屏幕保護程序就會正常出現(xiàn)。以上代碼在C Builder3、win98環(huán)境中運行通過。


網(wǎng)頁標題:應用程序禁止Windows屏幕保護
網(wǎng)頁地址:http://www.5511xx.com/article/dppecjs.html