hellkite 日記と雑記とメモ。

Shiki Kazamaの駄文と音楽と、時々技術な感じ

PythonでWindowハンドラを取得する方法


スポンサーリンク


某奥方からとあるソフトの依頼があったので実現可能性を見積もってた。
結果、依頼された機能を実現するためには、あるアプリが起動中かどうか調べる必要がある。というわけで、ウィンドウハンドラを取得する方法を模索していた。


とりあえず、言語はPythonにすることにしたので、Googleで関連情報を調べまくり。拡張モジュールのpywin32をインストールする必要があるそうなのでDLしてインストール。
DLサイトはこちら:Python for Windows Extensions | SourceForge.net
ウィンドウハンドラを手に入れるためには、FindWindowを使えばいいらしい。
対話モードでPythonを立ち上げて、動作確認。

>>> import winxpgui

>>> hWnd = winxpgui.FindWindow('Vim','0')
>>> hWnd
0
>>> hWnd = winxpgui.FindWindow('VIM_MESSAGES','0') ;これは動作しない
>>> hWnd
0
>>> hWnd = winxpgui.FindWindow('Notepad','0')
>>> hWnd
0


え”?ダメジャン(・ω・;)
VisualC++に付属しているSpy++を使用して、Notepadのハンドラをチェック。その値をGetWindowTextにぶち込んで、WindowTitleが表示されるかどうか確認。

>>> name = winxpgui.GetWindowText(00010014)
>>> name
'AVTabView'

おぅ。こっちは動いた。のっけからつまずいたなぁ。FindWindowが動かないと実現できなさそうなんだけど・・・(・ω・`)

***追記 2007/01/10***
取得できました:ウィンドウハンドラが取得できた - hellkite 日記と雑記とメモ。