2016-04-23 9 views
0

Windowsの特定のアプリを開いているようなイベントをキャッチする方法はありますか?Windowsアプリで他のアプリを起動するユーザイベントをキャッチ

私は、ユーザーが特にWindowsストアアプリケーションを開くと、そのアプリケーションがそのイベントをキャッチできる必要があります。

私はまだそれをまだ開始していません。私はちょうどそれが可能であるかどうかを知りたいですか?

C#開発またはJavaScript開発で可能でしょうか?

私はJavaScriptがより快適です。

+0

オープンしているアプリケーションとイベントをキャッチしているアプリケーションの両方が同じ開発者によって公開されている場合を除きます。あなたはそれらのイベントをキャッチすることはできません。それ以外の場合は、サードパーティの追跡イベントapiを使用して、アプリでそれらを実装した後にこれらのイベントを捕捉することができます。 – Jerin

+0

あなたはそのようなAPIを知っていますか?システムレベルでは、シングルクリック/ダブルクリックイベントを捕まえることができますか?そして、システムが目的のアプリを起動しているかどうかを確認してください –

+1

もう一度これらのAPIを追跡する必要があるアプリに追加する必要があります。あなたのアプリをインストールすることはできません。また、ユーザーがクリックすると、アドウェアやマルウェアに類似したアプリケーションが表示されます。 – Jerin

答えて

0

最も信頼できる解決策は、Windowsサービスを作成することです。あなたはC#でWindowsサービスを書くことができますが、私はあなたがJavaScriptを使用してそれを行うことができます疑いがあります。 Windowsサービス(ドライバとも呼ばれます)の利点は、アプリケーションとして表示されないため、途中で停止したり停止したりする可能性が低いことです。 Hooking the native API and controlling process creation on a system-wide basis - CodeProjectはC++の例です。また、C++も使用するDetecting Windows NT/2K process execution - CodeProjectを参照してください。明らかに、既存のサービス(ドライバ)を使用しているため、ドライバの部分を書く必要はありません。

Windowsサービスを使用していない場合でも、C#は引き続きJavaScriptより優れたソリューションです。最も簡単な方法はWindows Management Instrumentation(WMI)を使用することです。 Windowsサービスの外部でC#を使用する例については、Wes' Puzzling Blog - Using WMI to monitor process creation, deletion and modification in .NETを参照してください。 Constantly monitor processesも参照してください。 JavaScriptの場合は、Monitoring Events (Windows)に記載されているように、常設イベントコンシューマーを使用する必要があります。その例はCreating WMI Permanent Event Subscriptions Using MOF - CodeProjectを参照してください。

+0

は多くのドキュメントを含んでいます。ありがとう。これは私がこの話題に乗ることができ、完璧な解決策を期待していなかったので、答えとしてマークしています。 –

関連する問題