8

必須の企業通信システム (Lync および Outlook) を実行する Windows 7 VM があります。私がやりたいことは、この Windows マシンでシステム トレイを監視し、ホスト マシン (Xubuntu 13.04) に通知を送信するプロセスを実行することです。これにより、電子メールまたは IM を受信したときに通知されます (既にシームレスに試しました)。これを行うには RDP を使用しますが、効果的なソリューションではありません)。

Linuxまたはネットワーク指向のものは比較的簡単に処理できますが、Windowsシステムトレイの状態を照会する方法がわかりません(または状態変化のイベントリスナーをアタッチします)。私は C++ と Python に慣れていますが、実行可能なソリューションを試してみます。

詳細な状態情報が望ましいですが、最低限、トレイ内のアイコン数の変化を検出できる必要があります。

4

2 に答える 2

3

Windows では、Visual Studio をインストールすると、Visual Studio Tools の中に「Spy++」という名前の便利なツールがあります。基本的に、これはすべてのウィンドウを表示し、特定のウィンドウが受け取るメッセージを確認できるツールです。

ここに画像の説明を入力

このツールを使用すると、「スタートボタン」、ショートカット、トレイ、時計などを含むパネル全体が「Shell_TrayWnd」であることがわかります。「検索」メニューを使用して、任意のウィンドウに「目的」をドラッグするだけで、特定のウィンドウを検索できます。

トレイ ウィンドウ自体は "SysPager" (添付画像の 000100D2) です。このウィンドウのメッセージをログに記録し、Outlook でメールを受信したときにこのウィンドウが受け取るメッセージの種類を確認できます。

その後、このウィンドウが受信するすべてのメッセージをリッスンし、「Spy++」で見たものに基づいて何が起こったかを判断するコードを記述できます。

これは開始用です。ウィンドウ ハンドルを取得し、ウィンドウが受信するメッセージをリッスンするコードを記述することは別の部分ですが、MSDN または StackOverflow で既にカバーされていると思います。特定のウィンドウ ハンドルの検索はFindWindowEx関数によって行われ、メッセージをリッスンするには、関数によって行われる「フック」を設定する必要がありSetWindowsHookExます。フックについては、MSDN でかなり詳しく説明されています。

于 2013-07-17T16:02:03.263 に答える
0

Outlook インスペクター ( http://msdn.microsoft.com/en-us/library/office/ff869356(v=office.15).aspx )が必要な場合があります。私が理解しているように、イベントの見通しプロセスを監視するのに役立ちます。

于 2014-09-02T10:20:32.590 に答える