使用Python更改控制台窗口的位置(Windows)

时间:2017-08-22 22:26:17

标签: python windows windows-console

是否可以通过python更改Windows控制台的位置? 如果没有,是否有任何解决方法?

我不知道您是否需要任何特定信息,但以防万一:我使用的是Windows 8.1(64x),Python 3.5.0,控制台是通过Popen和主要产生的目标是将其移至右上角。

如果需要任何信息,请告知我们。

1 个答案:

答案 0 :(得分:0)

我改编自an answer by NYMK

这将移动并调整单个命令提示符窗口的大小(由CMD打开)。它很简单,不会处理错误,多个命令提示符窗口或命令行。

import win32gui

appname = 'Command Prompt'
xpos = 50
ypos = 100
width = 800
length = 600

def enumHandler(hwnd, lParam):
    if win32gui.IsWindowVisible(hwnd):
        if appname in win32gui.GetWindowText(hwnd):
            win32gui.MoveWindow(hwnd, xpos, ypos, width, length, True)


win32gui.EnumWindows(enumHandler, None)

要准备完整的命令行-尝试:

import win32gui
import argparse

parser = argparse.ArgumentParser()
parser.add_argument("app_name", type=str, default='Command Prompt', help="The window name")
parser.add_argument("xpos", type=int,  default=0, help="x position: 0 or greater")
parser.add_argument("ypos", type=int,  default=0, help="y position: 0 or greater")
parser.add_argument("width", type=int, default=100, help="window width: 10 or greater")
parser.add_argument("length", type=int, default=100, help="window length: 10 or greater")

args = parser.parse_args()

appname = args.app_name
xpos = args.xpos
ypos = args.ypos
width = args.width
length = args.length


def enumHandler(hwnd, lParam):
    if win32gui.IsWindowVisible(hwnd):
        if appname in win32gui.GetWindowText(hwnd):
            win32gui.MoveWindow(hwnd, xpos, ypos, width, length, True)


win32gui.EnumWindows(enumHandler, None)