Python控制台全屏?也许使用 os.system?

Ale*_*ach 3 python windows windows-console

我想弄清楚如何让我的程序在全屏控制台窗口中打开。

是否可以在命令提示符中键入任何命令来切换全屏?

如果是这样,我会想象代码是这样的:

from os import system

system("toggle.fullscreen")

{CODE HERE}
Run Code Online (Sandbox Code Playgroud)

我知道可以使用模式 con,但这实际上并没有切换它被最大化,这对我来说会更有用,谢谢!

小智 7

您可以使用keyboard.presspip3 install keyboard如果没有安装则安装。

代码:

import keyboard
keyboard.press('f11')
Run Code Online (Sandbox Code Playgroud)


Ery*_*Sun 5

这是一个最大化当前控制台窗口的函数。它使用 ctypes 来调用 WinAPI 函数。首先它调用GetLargestConsoleWindowSize以计算它可以使窗口有多大,并可以选择指定lines超过此数量的数量以获得回滚缓冲区。要完成调整屏幕缓冲区大小的工作,它只需通过调用 mode.com 即可subprocess.check_call。最后,它通过获取控制台窗口句柄GetConsoleWindow并调用ShowWindow使其最大化。

import os
import ctypes
import msvcrt
import subprocess

from ctypes import wintypes

kernel32 = ctypes.WinDLL('kernel32', use_last_error=True)
user32 = ctypes.WinDLL('user32', use_last_error=True)

SW_MAXIMIZE = 3

kernel32.GetConsoleWindow.restype = wintypes.HWND
kernel32.GetLargestConsoleWindowSize.restype = wintypes._COORD
kernel32.GetLargestConsoleWindowSize.argtypes = (wintypes.HANDLE,)
user32.ShowWindow.argtypes = (wintypes.HWND, ctypes.c_int)

def maximize_console(lines=None):
    fd = os.open('CONOUT$', os.O_RDWR)
    try:
        hCon = msvcrt.get_osfhandle(fd)
        max_size = kernel32.GetLargestConsoleWindowSize(hCon)
        if max_size.X == 0 and max_size.Y == 0:
            raise ctypes.WinError(ctypes.get_last_error())
    finally:
        os.close(fd)
    cols = max_size.X
    hWnd = kernel32.GetConsoleWindow()
    if cols and hWnd:
        if lines is None:
            lines = max_size.Y
        else:
            lines = max(min(lines, 9999), max_size.Y)
        subprocess.check_call('mode.com con cols={} lines={}'.format(
                                cols, lines))
        user32.ShowWindow(hWnd, SW_MAXIMIZE)
Run Code Online (Sandbox Code Playgroud)