我想从字符串变量调整任何窗口的大小,但 win32 无法获取字符串

问题描述 投票:0回答:1

这是代码。

import linecache
import os
import win32gui

desktop = os.path.expanduser("~\\Desktop")

def resize_pg(N4, x, y, w, h):
    hwnd = win32gui.FindWindow(None, N4)
    win32gui.MoveWindow(hwnd, x, y, w, h, True)
    print(N4)
    
file_path = desktop+('\Re.txt')
ref_1 = linecache.getline(file_path,1)
ref_2 = linecache.getline(file_path,2)
resize_pg(ref_1 , 0, 0, 420, 336)

这是Re.txt中的数据:

A.txt - Notepad
B.txt - Notepad

错误显示:

Traceback (most recent call last):
  File "c:\Users\Desktop\UUU.py", line 16, in <module>
    resize_pg(ref_1, 0, 0, 420, 336)
  File "c:\Users\Desktop\UUU.py", line 9, in resize_pg
    win32gui.MoveWindow(hwnd, x, y, w, h, True)
pywintypes.error: (1400, 'MoveWindow', 'Invalid window handle.')
python-3.x win32gui
1个回答
0
投票

你需要调试这种情况。不幸的是,您的代码中没有任何错误检查/处理,因此您无法判断到底出了什么问题。

至少,将您的

print(N4)
移动到
resize_pg()
函数的顶部,看看您是否获得了正确的窗口名称。然后在调用
print(hwnd)
后添加
FindWindow()
以查看是否找到了窗口。

此外,您是否使用

Notepad
文件打开了
A.txt
?检查窗口标题,是
A.txt - Notepad
吗?例如,您可以将 Windows 设置为不显示文件扩展名。

© www.soinside.com 2019 - 2024. All rights reserved.