3

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

该应用程序是使用非托管 C++ 制作的,没有切换到 .net 或 Java 的选项。

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

由于系统托盘端,该应用程序不能成为服务,并且因为它必须在用户计算机上不安装任何东西的情况下运行(它是单个 .exe )

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

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

谢谢 ;)

4

2 回答 2

2

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

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

于 2009-07-27T13:37:16.653 回答
0

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

属于一个应用程序的所有线程共享应用程序的全局变量,因此可以用于通信。您将需要使用临界区之类的东西来保护这种多线程访问。

于 2009-07-27T13:24:27.713 回答