You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于Win32 Python代码多次更新windowText?支持文件读取

没问题!要实现窗口文本的多次更新其实很简单,核心就是循环遍历你要显示的内容,每次更新后加个延时让你能看到变化。我给你分两种常用场景来写修改方案,你可以直接套用:

场景一:用预设的文本序列依次更新

如果你的更新内容是固定的,比如依次显示"something new 2"、"something new 3"这类,直接把这些内容放进一个列表,循环调用更新函数就行。这里我基于你现有的代码结构做了修改:

import win32gui
import win32api
import win32con
import time  # 导入time模块实现延时,让你能看到每一次的更新效果

def update_window_text(window_title, new_text):
    # 找到目标窗口的句柄
    hwnd = win32gui.FindWindow(None, window_title)
    if hwnd:
        # 发送消息更新窗口文本
        win32api.SendMessage(hwnd, win32con.WM_SETTEXT, 0, new_text)
    else:
        print(f"未找到标题为「{window_title}」的窗口,请检查标题是否正确!")

# 把你要依次显示的文本放进这个列表里
text_list = [
    "Hello send by Python via Win32!",
    "Something new",
    "something new 2",
    "something new 3",
    "更新完成啦!"
]

# 替换成你实际要修改的窗口标题
target_window = "你的目标窗口标题"

# 循环遍历文本列表,逐个更新
for text in text_list:
    update_window_text(target_window, text)
    time.sleep(2)  # 每次更新后等待2秒,你可以根据需求调整这个时间(比如1秒或3秒)
场景二:从文本文件逐行读取内容更新

如果你的更新内容存在文本文件里(每行一个内容),可以用文件读取的方式来实现,这样不用每次改代码,直接修改文本文件就行:

import win32gui
import win32api
import win32con
import time

def update_window_text(window_title, new_text):
    hwnd = win32gui.FindWindow(None, window_title)
    if hwnd:
        win32api.SendMessage(hwnd, win32con.WM_SETTEXT, 0, new_text)
    else:
        print(f"未找到标题为「{window_title}」的窗口,请检查标题是否正确!")

# 替换成你实际要修改的窗口标题
target_window = "你的目标窗口标题"
# 替换成你的文本文件路径(比如"update_content.txt")
text_file_path = "你的文本文件路径.txt"

try:
    # 打开文本文件,逐行读取内容(自动跳过空行)
    with open(text_file_path, 'r', encoding='utf-8') as file:
        content_lines = [line.strip() for line in file if line.strip()]
    
    # 循环更新窗口文本
    for line in content_lines:
        update_window_text(target_window, line)
        time.sleep(2)  # 同样可以调整等待时间
except FileNotFoundError:
    print(f"出错啦!找不到文件「{text_file_path}」,请检查路径是否正确。")
except Exception as e:
    print(f"读取文件时发生错误:{str(e)}")

几个需要注意的小细节:

  • 一定要把代码里的"你的目标窗口标题"替换成你实际要修改的窗口的准确标题,不然会找不到窗口。
  • time.sleep()的参数是秒数,如果你觉得等待太久可以改小,比如time.sleep(1)就是等待1秒。
  • 如果你的文本文件是用GBK编码保存的,记得把encoding='utf-8'改成encoding='gbk',避免出现乱码。

内容的提问来源于stack exchange,提问作者Steed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 03:51:08