■963 / inTopicNo.1) |
デスクトップの全ウィンドウのタイトル文字列を取得したい |
□投稿者/ いば 准尉(28回)-(2005/08/03(Wed) 15:16:34)
|
分類:[C#]
分類:[C#]
【環境】Visual C#.NET
WindowsXP home edtion Microsoft Visual C# .NET 69504-335-0000007-18085 Crystal Reports for Visual Studio .NET AAP5G-JS00000-U7000B4
【問題】デスクトップの全ウィンドウをタイトル文字列を取得したい
現在、親システムからDLL形式で呼ばれるコマンドを作成しています。 親システムのメニューから[file]-[execute]-[Command_Name.DLL]で 実行するイメージです。
やりたい事は、コマンドの二重起動を禁止する事なのですが、じゃん ぬねっと様のサンプルソースを使ってもうまく実装することができません。
■[TIPS] 二重起動を禁止する http://jeanne.wankuma.com/tips/process/01-previnstance.html
■[TIPS] 二重起動を確実に禁止する http://jeanne.wankuma.com/tips/process/02-mutex.html
理由は、親システムのプロセスを取得してしまっていて、コマンド自身の フォームを取得できないからです。
そこで、少し苦しいですが、「同名タイトルのウィンドウが起動して いたら自分自身は起動しない」という方法を採ろうとして下記ソース を組んだのですが、これではトップレベルのウィンドウしか見つかり ません。
foreach (Process p in Process.GetProcesses()) { if (p.MainWindowHandle != IntPtr.Zero) { Console.WriteLine(p.ProcessName + " : " + p.MainWindowTitle); } }
どなたか、親子関係を無視して、現在Windowsデスクトップに表示されている 全てのウィンドウを取得する方法をご存知でしたら、教えていただけますで しょうか。
よろしくお願いします。
|
0
|