2013-07-05 10 views
0

Visual Studio 2008에서 Windows Forms 템플릿 (Visual C++)을 사용하여 시스템 트레이 응용 프로그램을 만들었습니다. ContextMenuStripNotifyIcon을 사용했습니다. 양식과 드래그/드롭을 사용하여 관리되는 코드입니다.시스템 트레이 응용 프로그램에서 while 루프를 사용하여 응용 프로그램에서 루프가 시작되도록

이 시스템 트레이 응용 프로그램이 시작 되 자마자 연결되어있는 특정 공급 업체의 새 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와 함께 새로운 "Component Class"를 추가했는데 정상적으로 작동합니다.

누구나이 정보가 필요하면 : Windows Forms App이 시작되는 즉시 함수를 호출해야하는 경우 (예 : Systray 응용 프로그램) "InitializeComponent()"를 호출 한 후 해당 함수를 호출 할 수 있습니다. "기능. 명확하게 "TODO : 여기에 생성자 코드를 추가하십시오"라고되어 있지만, 초보자 (나 같은)는 "이 함수 호출을 넣을 곳"과 관련된 금지 사항이 있습니다. 이게 누군가에게 도움이되기를 바랍니다.