2024-10-04 11:23:28 发布
网友
我正在尝试将多个窗口的HWND命名为同一个窗口,我认为简单的方法是重命名我找到的窗口并再次搜索,但似乎我不允许以我想要的方式重命名它。 这就是我尝试过的
import win32gui import win32api test = win32gui.FindWindow(0, "notepad") win32gui.SetWindowText(test, "testname")
我已经在我的旧项目中完成了这项工作。也许这对你有帮助。请使用此示例作为参考
def UpdateControl_FromValue(self): name_val = self.GetOptionValue(self.option_folder_name) id_val = self.GetOptionValue() self.in_setting_name = True if id_val: self.SetOptionValue("", self.option_folder_name) opt_processors.FolderIDProcessor.UpdateControl_FromValue(self) else: if name_val: win32gui.SetWindowText(self.GetControl(), name_val) self.in_setting_name = False
FindWindow可能返回无效句柄(例如,当找不到与文本匹配的窗口时)。那可能是你的问题
FindWindow
win32gui模块公开win32gui.EnumWindows(doc)以迭代顶级窗口。您可以提供一个自定义回调来转换窗口标题
win32gui.EnumWindows
在下面的示例中,我按标题前缀过滤窗口,但如果更适合您,您可以使用正则表达式实现过滤器
import win32gui def f(hwnd, more): title = win32gui.GetWindowText(hwnd) # print(f"{hwnd} - {title}") prefix = 'notepad' if title.startswith(prefix): win32gui.SetWindowText(hwnd, title[len(prefix):]) win32gui.EnumWindows(f, None)
我已经在我的旧项目中完成了这项工作。也许这对你有帮助。请使用此示例作为参考
FindWindow
可能返回无效句柄(例如,当找不到与文本匹配的窗口时)。那可能是你的问题win32gui模块公开
win32gui.EnumWindows
(doc)以迭代顶级窗口。您可以提供一个自定义回调来转换窗口标题在下面的示例中,我按标题前缀过滤窗口,但如果更适合您,您可以使用正则表达式实现过滤器
相关问题 更多 >
编程相关推荐