2010-12-17 4 views
2

5つのウィンドウを持つアプリケーションがあります。 私はそのプロセスのPIDを持っていて、どうすれば得ることができますかすべてそのプロセスのWindowHandles?C#:ProcessnameですべてのウィンドウのWindowHandlesを取得

ありがとうございました。

+1

([EnumChildWindows] http://www.pinvoke.net/default.aspx/user32を呼び出し、その後MainWindowHandleを取得ANS .enumchildwindows)をクリックします。 –

答えて

0

このMSDN articleで説明したいくつかのPInvokeのものから始めます。

0

ユーザーこのような何か:

Process[] processes = Process.GetProcesses("."); 
foreach (var process in processes) 
{ 
    var handle = process.MainWindowHandle; 
} 
+0

はい。そんなこと知ってる。他の4つのウィンドウはどうですか? – Lzzzra

+0

すべてのウィンドウを繰り返し、HWNDからプロセスIDを取得し、このプロセスIDを目的のIDと照合することができます。GetWindowThreadProcessIdをチェックしてください –

1

はMainWindowHandleを取得し、それにEnumChildWindowsを呼び出します。

たぶんよりも良いのPInvokeなりますマネージコードを呼び出すと、あなたはここより見つけることができますManaged Windows API

関連する問題