線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1800
推到 Plurk!
推到 Facebook!

抓取USB大量儲存裝置的方法Part 3-3 如何確認裝置已經完成安裝或移除呢??

 
G01
高階會員


發表:249
回覆:379
積分:215
註冊:2002-05-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-04 16:32:06 IP:210.200.xxx.xxx 未訂閱
接下來我們要如何確認硬體裝置已經完成安裝或移除呢??    首先,讓我們來觀察Delphi的Messages.pas這個檔案    以 WM_ACTIVE 訊息來說,在Delphi進行訊息攔截的程式樣板如下    procedure TForm1.GetActiveMessage(var Msg:TWMActivate); begin   case Msg.Active of     WA_INACTIVE:       begin          end;     WA_ACTIVE:       begin          end;     WA_CLICKACTIVE:       begin          end;   end;//case...end!! end;    看到以上的程式碼之後,會產生一個疑問就是 " TWMActivate " 這個資料格式(注意!!),是從哪裡來的?? 讓我們來查看Messages.pas 這一段 Source Code      TWMActivate = packed record     Msg: Cardinal;     Active: Word; { WA_INACTIVE, WA_ACTIVE, WA_CLICKACTIVE }     Minimized: WordBool;     ActiveWindow: HWND;     Result: Longint;   end;    原來在 Delphi中早就針對Windows Message 處理的需求幫我們把大部分的    Message ID <-----> 參數的傳遞方式由C++轉為Delphi的Code (請參考前一篇文章中說明的 Msg 參數的結構 !!)    所以才會有以下的codeing方式....很方便吧!!      case Msg.Active of     WA_INACTIVE:       begin          end;     WA_ACTIVE:       begin          end;     WA_CLICKACTIVE:       begin          end;   end;//case...end!!    然而,百密仍有一疏;(我個人認為,這可能是OS一直在更新的原因;當然,函式庫會來不及更新吧?? 如果有新的Patch應該會更新吧??  ^O^ )    在Delphi7的SourceCode(Messages.pas)中,卻沒有TWMDeviceChange這個資料格式;    OK,沒關係 , 雙手是萬能的;經過查詢之後,我們可以將>參考>參考>參考
系統時間:2024-09-09 16:24:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!