国产黄色免费网站,人人干人人干人人干,免费大黄网站在线看,国产情侣一区二区三区,99精品国产福利免费一区二区,国产亚洲成归v人片在线观看,伊人88

2023信創(chuàng)獨角獸企業(yè)100強
全世界各行各業(yè)聯(lián)合起來,internet一定要實現(xiàn)!

實現(xiàn)禁止用戶關(guān)閉Window9X

2004-02-14 eNet&Ciweek

  ---在軟件的安裝或演示操作等過程中,如果關(guān)閉WIN9X會產(chǎn)生嚴重的后果,就必須禁止用戶關(guān)閉WIN9X,直到完成相應(yīng)的操作,那么如何才能禁止用戶關(guān)閉WIN9X呢?其實很簡單,當用戶關(guān)閉WIN9X時,系統(tǒng)會發(fā)送給各應(yīng)用程序一個消息wm_queryendsession,告訴各應(yīng)用程序要關(guān)機了,如果反饋回來的消息值為0,那么WIN9X就不能關(guān)機。因此,截獲wm_queryendsession,并反饋回0,大功就告成了,下面是一個例子。

  ----在下面這個例子中,我們在窗體中加入一個復選框(CHECKBOX),如果用戶不選中它,則無法關(guān)閉WIN9X,如果選中它,才可以關(guān)閉。在實際應(yīng)用中,用戶可首先設(shè)定一個布爾變量,當所需的作操都完成后,使其值變化,當程序檢測到這個變量的值變化后才允許關(guān)閉WIN9X。為方便大家使用,給出窗體的完整代碼(很短):   

  unitUnit1;  

  interface 

  uses

  Windows,Messages,SysUtils,

  Classes,Graphics,Controls,

  Forms,Dialogs,StdCtrls; 

  type

  TForm1=class(TForm)

  CheckBox1:TCheckBox;

  private

  {Privatedeclarations}

  //聲明攔截WM_QueryEndSession消息的過程

  procedureWMQueryEndSession(varMsg:TMessage);

  messageWM_QueryEndSession;

  public

  {Publicdeclarations}

  end; 

  var

  Form1:TForm1;  

  implementation 

  {$R*.DFM}

  procedureTForm1.WMQueryEndSession

  (varMsg:TMessage);

  begin

  ifCheckBox1.CheckedthenMsg.Result:=1

  elseMsg.Result:=0;

  end;

  end.  

  ----運行上面的程序,首先不要選中復選框,在WIN9X的“開始”菜單中選擇“關(guān)閉系統(tǒng)\關(guān)閉計算機或重新啟動計算機”,你將發(fā)現(xiàn)屏幕閃爍了一下又恢復了正常;將復選框選中,再關(guān)閉計算機,這下就可如愿了。

相關(guān)頻道: eNews

您對本文或本站有任何意見,請在下方提交,謝謝!

投稿信箱:tougao@enet16.com