我正在使用win32gui
将“记事本”窗口移动到宽度和高度等于500的屏幕原点(0,0)。结果是该窗口没有移动到真正的左边界,而是〜10像素。在右边。宽度和高度也不等于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)
答案 0 :(得分:2)
Windows 10具有7个像素的不可见边框。 (如果包括可见的1像素窗口边框,则总计为8像素。)这是调整窗口大小的边框,位于窗口的左,右和下边缘。
注意调整大小的光标如何与顶部边缘反应。那里没有看不见的边框。
一个简单的解决方法是只偏移x
中的MoveWindow
。
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)