為了可以監控 USB 裝置插拔, 採用 WMI(Windows Management Instrumentation) 來實現, 如果是在本機查詢的話, 不會有 CPU 佔用使用率的問題 (wmiprvse.exe), 但是在某遠端電腦的監控, 就會有 CPU 使用率過高的問題, 後來改用 WINPROC 處理 Windows 訊息, 不過要用到 window Setup API 由於程式編輯器是 VB.NET, 找到 VC++ 的源碼, 再一步步的轉譯, 再來就是測試, 後來寫成一個類別, 發現處理訊息要靠 Form 表單來觸發, 於是加上繼承類別 NativeWindow, 並使用 AssignHandle 方法, 因為不知道主程式表單的 handle 何時產生, 又加上 Timers.Timer 來監控主程式表單, 結果碰到跨執行緒的問題, 所以再加上 invoke 功能, 到此測試監控遠端電腦 USB 裝置插拔的功能正常, 也許還有 bug 和改進的空間, 繼續工作囉,...
星期六, 十月 17, 2009
訂閱:
張貼意見 (Atom)




0 意見:
張貼意見