gpt4 book ai didi

python - win32gui MoveWindow() 未与屏幕左边缘对齐

转载 作者:行者123 更新时间:2023-12-03 16:40:33 52 4
gpt4 key购买 nike

我正在使用 win32gui将记事本窗口移动到屏幕的原点 (0, 0),宽度和高度等于 500。结果是窗口没有移动到真正的左边框,而是 ~10 px。向右。宽度和高度也不等于 500 像素。 (~620 像素。相反)。
我正在使用以下代码来生成我的结果。

import win32gui
from PIL import ImageGrab

# Open notepad.exe manually.
hwnd = win32gui.FindWindow(None, "Untitled - Notepad")
win32gui.MoveWindow(hwnd, 0, 0, 500, 500, True)
bbox = win32gui.GetWindowRect(hwnd)
img = ImageGrab.grab(bbox)

这里是窗口在屏幕上的整体位置的截图:
enter image description here

这里是 img 的图片:
enter image description here

最佳答案

Windows 10 有一个 7 像素的不可见边框。 (如果包含可见的 1 像素窗口边框,则总计为 8 像素。)它是用于调整窗口大小的边框,位于窗口的左侧、右侧和底部边缘。

注意调整大小光标如何与顶部边缘 react 。那里没有看不见的边界。

一个简单的解决方法是抵消 xMoveWindow .

win32gui.MoveWindow(hwnd, -7, 0, 500, 500, True)

或者创建一个新函数来做到这一点:
def move_window(hwnd, x, y, n_width, n_height, b_repaint):
win32gui.MoveWindow(hwnd, x - 7, y, n_width, n_height, b_repaint)

关于python - win32gui MoveWindow() 未与屏幕左边缘对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51694887/

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