在系统托盘应用程序中放置while循环的位置,以便循环从应用程序开始

时间:2013-07-05 13:45:06

标签: visual-c++ while-loop managed systray

我在Visual Studio 2008中使用Windows窗体模板(Visual C ++)创建了一个系统托盘应用程序。我使用了ContextMenuStripNotifyIcon。这是一个托管代码,因为我使用了表单和拖放。

我希望只要此系统托盘应用程序启动,它就会开始轮询所连接的任何新USB设备(来自特定供应商)。

逻辑已准备就绪,但我不知道“在哪里放置while(1)循环?”

它在我制作的控制台应用程序中运行良好但现在我们希望它集成到系统托盘应用程序。

以下是代码段:

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

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

            }
        }

如果有人能提出一些关于如何继续的建议,那真的很值得。

1 个答案:

答案 0 :(得分:0)

谢谢汉斯!我添加了一个带有WM_DEVICECHANGE的新“组件类”,它工作正常。

以防万一需要此信息: 如果在Windows窗体应用程序启动时需要调用函数(在我的情况下是Systray应用程序),则可以在调用“InitializeComponent()”函数后调用相应的函数。虽然它清楚地提到“TODO:在这里添加构造函数代码”,但仍然是一个初学者(像我一样)对“将函数调用放在何处?”有所抑制。希望这有助于某人..