アプリケーションのインストール中。一般的に、ユーザーはインストールの開始前にすべてのウィンドウを閉じるように求められました。インストールされていない場合、インストールは中部 で停止し、開いているウィンドウをすべて閉じるようにユーザーに依頼します。 XXXアプリケーションでコードを追加するように求められました。アプリケーションが実行中で、他のウィンドウ(例:エクスプローラ、ブラウザ、ワードなど)を開いた場合、アプリケーションはウィンドウのリストを開いたというウィンドウをスローする必要があります。 私はC#で始める方法をお勧めします。開いているウィンドウのリストを取得するC#
答えて
お試しSetWinEventHook P/Invoke経由のWinAPI機能。 EVENT_OBJECT_CREATE
イベントをフックできますが、私は100%確実ではありません。私はC/C++でしかこれをやっていません。
System.Diagnostics.Process
クラスを使用すると、マシンで実行されているすべてのプロセスの情報を取得できます。次に、意図したアプリケーション/プロセスが実行されているかどうかを調べることができます。
GetProcesses()
またはGetProcessByName()
のいずれかの方法を使用できます。参照のためにthis msdn linkを参照してください。私は同じことを達成するより効率的な方法があると確信しています。このHTH
テスト:
var openWindowProcesses = System.Diagnostics.Process.GetProcesses()
.Where(p => p.MainWindowHandle != IntPtr.Zero && p.ProcessName != "explorer");
openWindowProcesses
べきは、彼らがアクティブなメインウィンドウを持っている、開いているすべてのアプリケーションが含まれています。
エクスプローラがデスクトップのメインプロセスであり、決して閉じないでください。p.ProcessName != "explorer"
をwhere式に置きます。
プロセスの実行を監視するには、ManagementEventWatcher
クラスを使用できます。 thisをご覧ください。
を使用すると、タイマーにより、ウィンドウの一覧を取得する必要があるような問題点を解決するために
foreach (var process in Process.GetProcesses().Where(p => p.MainWindowHandle != IntPtr.Zero)) {
//do something with the process here. To display it's name, use process.MainWindowTitle
}
アプリケーションに複数の可視ウィンドウがある場合はどうなりますか? – Neolisk
- 1. C#開いている "TcpListeners"のリストを取得する方法
- 2. 開いているすべてのウィンドウのタイトルを取得
- 3. Javascript開いているウィンドウから要素を取得する
- 4. AutoItを使用して開いているすべてのウィンドウのリストを取得
- 5. OS Xの開いているファイル(ディスクリプタ)のリストを取得
- 6. 開いているポップアップウィンドウのリストを取得
- 7. 親ウィンドウの再ロード後に開いているすべての子ウィンドウの参照を取得する方法
- 8. 開いているウィンドウのIDを取得してその開いているウィンドウのサイズを変更する方法
- 9. Android 2の新しいウィンドウで開くリンクを取得する
- 10. FreeBSDで開いているposix共有メモリセグメントのリストを取得するには
- 11. iphone objective-cにインストールされているアプリケーションのリストを取得
- 12. C開いているファイル記述子をすべて取得する
- 13. 他のリストに基づいてリストを取得する
- 14. Cのマウスクリックに基づいてアクティブなウィンドウ名を取得する#
- 15. jQuery:開いているウィンドウと開いているウィンドウのドキュメントフォームにsubmit()コールバックを添付してください
- 16. プロセス内に現在ロードされているDLLのリストを取得するC#
- 17. 開いているウィンドウのデータを上書きします。開くウィンドウ(JavaScript)
- 18. バッチリストの開いているウィンドウ
- 19. C#Windowsメニュー項目のヘルプユーザーが開いているウィンドウを管理する
- 20. ウインドウ内でC#を開いて閉じるウィンドウのアプリケーション
- 21. Eclipseエディタで開いているすべてのファイルのリストを取得する方法は?
- 22. Linux:表示されているすべてのウィンドウのリストを取得する方法
- 23. Autohotkey:特定のタイトルのウィンドウのリストを取得する
- 24. インストールされているすべてのアプリケーションのリストを取得
- 25. ダウンロードしているアプリケーションのリストを取得するには?
- 26. インストールされているインスタントメッセンジャーアプリのリストを取得するには?
- 27. nHibernateのセッションファクトリから開いているセッションオブジェクトのリストを取得する方法はありますか?
- 28. 新しいウィンドウを開くためにASP.NET MVCを取得するには?
- 29. オープニング設定チャーム中にカメラが開いていると、ウィンドウが開いているウィンドウが閉じます。
- 30. プログラムでTFS 2010で特定のプロジェクトの開いているワークアイテムのリストを取得する
(可視メインウィンドウを持っている)あなたのシステム上の開いているすべてのアプリケーションを介して列挙するために、このようなforeachループを設定します。隠された窓は何ですか? – DReJ
私は、この質問をした人はタイマーの使用について知っていると思います。このようなシナリオでは、非表示のウィンドウでプロセスを閉じるだけで十分だと思います。これらの状況では、プロセスはウィンドウより重要です。プログラマーはプロセスをチェックして、どのプロセスを開いてはならないかを調べる必要があります。これは、Whereメソッドの式を変更することで簡単に実行できます。 しかし、ありがとう!私は私の答えでプロセスを見ていることについていくつかの情報を追加します。 –
お寄せいただきありがとうございます。一度実装すると私はあなたに結果を知らせます – user517206