3

バックグラウンドでいくつかのことをチェックし、システムトレイアイコンを介してユーザーに通知するWindowsアプリを作成しようとしています。

アプリは管理されていないC++で作成されており、.netまたはJavaに切り替えるオプションはありません。

ユーザーがアプリを停止したい場合は、トレイアイコンを使用します。

システムトレイ側であり、ユーザーのコンピューターに何もインストールせずに実行する必要があるため、アプリをサービスにすることはできません(単一の.exeです)。

典型的なWin32プログラム構造(RegisterClass、WndProcなど)を使用して、ウィンドウメッセージループを分離するためにコードを配置する方法がわかりません。たぶん私はCreateProcess()またはCreateThread()を使用する必要がありますか?マルチスレッド環境を処理する正しい方法ですか?

CreateProcess()/ CreateThread()を使用する必要がある場合、2つのスレッド間で通信するにはどうすればよいですか?

ありがとう ;)

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 に答える