【发布时间】:2013-07-05 13:45:06
【问题描述】:
我在 Visual Studio 2008 中使用 Windows 窗体模板 (Visual C++) 创建了一个系统托盘应用程序。我使用了 ContextMenuStrip 和 NotifyIcon。这是一个托管代码,因为我使用了表单和拖放操作。
我希望此系统托盘应用程序一启动,它就会开始轮询连接的任何新 USB 设备(来自特定供应商)。
除了我不知道“把这个while(1) 循环放在哪里?”之外,逻辑已经准备好了。
它在我制作的控制台应用程序中运行良好,但现在我们希望它集成到系统托盘应用程序中。
这里是sn-p的代码:
int numDevices, n = 0;
while(1)
{
Sleep(5000);
numDevices = usb_find_devices();
if(connectedDevices > numDevices)
{
enumDevices();
connectedDevices++;
}
}
如果有人能建议我一些关于如何进行的指示,那将非常感激。
【问题讨论】:
-
您需要一个线程来防止通知图标完全失效。这样做不是正确的方法,而是听 WM_DEVICECHANGE 消息。
标签: visual-c++ while-loop managed systray