日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

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

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

澄城網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)從2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選成都創(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消息的相關(guān)信息,其結(jié)構(gòu)如下:

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

  Handled參數(shù)決定了如何對消息進行下一步處理,如果在接收到一個消息后將Handled參數(shù)設(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. }

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


網(wǎng)頁標題:應(yīng)用程序禁止Windows屏幕保護
轉(zhuǎn)載注明:http://www.dlmjj.cn/article/dppecjs.html