如何在 Windows 上获取 Tkinter 窗口的 HWND?

Sza*_*mbi 6 windows tkinter python-3.x tkinter-canvas

如何HWND在Windows上的python3中获取Tkinter窗口的?

  • 如果可能的话,我想获取 Tkinter 窗口的本机窗口句柄。
  • 我需要窗口的HWND或来执行自定义绘图操作。HDC

有没有办法获取HWNDCanvas任何其他子组件?

有一种方法可以列出当前进程创建的所有窗口。我还可以迭代前面列出的任何窗口的子窗口。这将是这个问题的丑陋的解决方案。

如果 Tkinter 不直接公开句柄,请发布任何替代解决方案。

Mik*_*SMT 8

我相信您需要的是 TopLevel 窗口方法。

\n

查看此链接

\n
\n

frame() [ # ]
\n返回一个字符串,其中包含与 window\xe2\x80\x99s 最外层父窗口相对应的系统特定窗口标识符。对于 Unix,这是 X 窗口标识符。对于 Windows,这是 HWND 转换为长整数。

\n
\n

此处还有有关获取 HWND 的其他信息

\n
\n

winfo_id() [ # ]
\n获取此小部件的系统特定窗口标识符。对于 Unix,这是 X 窗口标识符。对于 Windows,这是 HWND 转换为长整数。

\n

\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0返回:
\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0窗口标识符。

\n
\n

我相信使用winfo_id()上面的方法,你应该能够获得窗口的HWND。

\n