win32のTkinterで、ウィンドウハンドル (hWnd)を取得

tkinterのウィンドウから、win32ネイティブなウィンドウハンドル (hWnd)を取得するのに、 ちょっと手こずったので、次回用にメモ。

hWnd = int(root.frame(),16)

Python2.5で確認。
正式なドキュメントに載ってないので、将来 変更されるかも

ウィンドウハンドル (hWnd)は、win32apiを呼ぶ時に必要になるものです。

参考
PythonでSetWindowPosを使うにはどうしたら良いでしょうか?
こちらのコードは動きませんが、動くように改造
起動すると、小さいウィンドウが開き、常に、デスクトップの一番上に表示されます。
(クローズボックスで閉じてください)

使用モジュール pywin32

import Tkinter as Tk
import win32gui
import win32con
root = Tk.Tk()
root.update()        ### これで、画面にちゃんと表示されてからhWndを取得
hWnd = int(root.frame(),16) ### ここ、リンク先と違ってます

win32gui.SetWindowPos(hWnd,win32con.HWND_TOPMOST,0,0,0,0,
win32con.SWP_NOMOVE | win32con.SWP_NOSIZE)
root.mainloop()
Tags: ,

Related posts

Tags: ,

Comments are closed.