使用系统托盘图标创建后台进程

时间:2009-07-27 13:21:44

标签: c++ windows winapi background system-tray

我正在尝试制作一个在后台检查某些内容的Windows应用,并通过系统托盘图标通知用户。

该应用程序是使用Not managed C ++制作的,没有选项可以切换到.net或Java。

如果用户想要停止该应用,他将使用托盘图标。

由于系统托盘方面的应用程序不能是服务,因为它必须在用户计算机上安装任何东西时运行(它是单个.exe)

使用典型的Win32程序结构(RegisterClass,WndProc等)我不知道如何放置一些代码来分开窗口消息循环。 也许我必须使用CreateProcess()或CreateThread()?它是处理多线程环境的正确方法吗?

如果我必须使用CreateProcess()/ CreateThread(),我如何在两个线程之间进行通信?

谢谢;)

2 个答案:

答案 0 :(得分:2)

对于系统托盘图标,您需要Shell_NotifyIcon。

请参阅http://msdn.microsoft.com/en-us/library/bb762159.aspx

答案 1 :(得分:0)

我怀疑你想要创建新的进程来执行此操作,您希望在应用程序中创建一个线程。执行此操作的API为CreateThread。但是如果你正在使用C ++,那么你应该考虑使用框架和类库来实现这一点,而不是从头开始编写有效的C代码。

属于应用程序的所有线程共享应用程序的全局变量,因此可用于通信。您需要使用类似关键部分的内容来保护此类多线程访问。