gpt4 book ai didi

python win32gui 寻找子窗口

转载 作者:行者123 更新时间:2023-11-28 22:06:53 25 4
gpt4 key购买 nike

例如首先你必须找到skype的hwnd

hwnd = win32gui.FindWindow(None, 'skype')

以及他所有的子窗口和它们的标题

child = ???

有什么想法吗?

最佳答案

此代码显示具有一定长度的 WindowsText 的 EditPlus 子窗口的 hwnd:

编辑

您必须找到您的应用程序的hwnd,然后将此句柄与EnumChildWindows 一起使用。我用它扩展了示例代码。一旦获得应用程序 hwnd,您就可以仅枚举其窗口。当您将 0 作为 hwnd 提供给 EnumChildWindows 时,您将获得所有正在运行的窗口的句柄。在我的代码中添加一些打印并检查它!

扩展代码:

import win32gui

MAIN_HWND = 0

def is_win_ok(hwnd, starttext):
s = win32gui.GetWindowText(hwnd)
if s.startswith(starttext):
print s
global MAIN_HWND
MAIN_HWND = hwnd
return None
return 1


def find_main_window(starttxt):
global MAIN_HWND
win32gui.EnumChildWindows(0, is_win_ok, starttxt)
return MAIN_HWND


def winfun(hwnd, lparam):
s = win32gui.GetWindowText(hwnd)
if len(s) > 3:
print("winfun, child_hwnd: %d txt: %s" % (hwnd, s))
return 1

def main():
main_app = 'EditPlus'
hwnd = win32gui.FindWindow(None, main_app)
print hwnd
if hwnd < 1:
hwnd = find_main_window(main_app)
print hwnd
if hwnd:
win32gui.EnumChildWindows(hwnd, winfun, None)

main()

关于python win32gui 寻找子窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2948964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com