2013-07-05 51 views
0

開始表單模板(的Visual C++)在Visual Studio 2008中我已經使用ContextMenuStripNotifyIcon。這是一個託管代碼,因爲我使用了窗體和拖放功能。放在哪裏while循環在系統托盤中的應用,使循環用我已經使用Windows創建了一個系統托盤應用程序應用

我希望系統托盤應用程序啓動後立即開始輪詢連接的任何新USB設備(來自特定供應商)。

的邏輯是準備好除了我不知道「如果把這個while(1)循環?」

它工作在一個控制檯應用程序,我做了罰款,但現在我們希望它被集成到系統托盤的應用程序。

這裏是代碼片段:

 int numDevices, n = 0; 
       while(1) 
     { 

      Sleep(5000); 
      numDevices = usb_find_devices(); 
      if(connectedDevices > numDevices) 
      { 
       enumDevices(); 
            connectedDevices++; 

      } 
     } 

這真的是可觀的,如果任何人都可以建議我如何進行一些指點。

+0

您需要一個線程來防止通知圖標完全死亡。不是正確的方法,而是監聽WM_DEVICECHANGE消息。 –

+0

[如何在沒有Windows窗體的情況下接收Windows消息]的可能重複(http://stackoverflow.com/questions/2061167/how-to-receive-the-windows-messages-without-a-windows-form) –

回答

0

謝謝漢斯!我用WM_DEVICECHANGE添加了一個新的「組件類」,它工作正常。

萬一有人需要這樣的信息: 如果一個函數需要爲Windows窗體應用程序啓動(在我的情況下,系統托盤的應用程序),相應功能可以在呼叫後,被要求「的InitializeComponent()被立即調用「功能。雖然它明確提到了「TODO:在這裏添加構造函數代碼」,但初學者(像我一樣)卻禁止「關於這個函數調用的位置?」希望這有助於某人..

相關問題