実行プロセスのWindowハンドルを取得する
System.Diagnosticsを使う
プロセスのWindowハンドルを取得するには、win32APIはFindWindowを使うけれど、.NET FrameworkではSystem.Diagnosticsを使うらしいです。
"Diagnostics"とは辞書で調べると"診断学"という意味です。System.Diagnosticsとはシステム診断のこと。プロセス管理やイベントログ、パフォーマンスカウンターなどシステムを管理する機能のものが入っているようです。
まずは、System.Diagnosticsの中のオブジェクトを使えるようにする。
from System.Diagnostics import *
次にDiagnostics内のProcessクラスのGetCurrentProcessメゾットを使って、実行プロセスのProcessオブジェクトを取得します。
proc = Process.GetCurrentProcess()
最後にProcessオブジェクトのプロパティとしてWindowハンドルを取得し目的が完了する。
print proc.MainWindowHandle
全部まとめると次のようになります。
# coding: shift-jis
from System.Diagnostics import *
proc = Process.GetCurrentProcess()
print proc.MainWindowHandle
raw_input()
出力画面:
1378894 ←例えば
MessageBoxを表示するでWindowハンドルを使った例があります。