如何在窗口最大化的情况下打开应用程序?

时间:2018-06-06 10:27:52

标签: python windows

import os
import win32gui, win32con

class Path:
   pass

path1 = os.popen(r"C:\Windows\notepad.exe")

记事本打开后,应以全屏显示(最大化窗口)。

2 个答案:

答案 0 :(得分:3)

您可以使用带有start修饰符的Windows /max命令,即:

import subprocess

subprocess.call(["cmd", "/c", "start", "/max", "C:\\Windows\\notepad.exe"])

答案 1 :(得分:0)

由于您使用os.popen启动了可执行文件,因此@zwer答案是最好的处理方式。
但是,既然你也在使用 PyWin32 ,这里有一个使用[MS.Docs]: CreateProcessW function的替代方法(通过它的包装器:[ActiveState.Docs]: win32process.CreateProcess)。

code.py

#!/usr/bin/env python3

import sys
import win32process
import win32con


EXE_NAME = r"C:\Windows\notepad.exe"


def main():
    si = win32process.STARTUPINFO()
    si.dwFlags = win32con.STARTF_USESHOWWINDOW
    si.wShowWindow = win32con.SW_MAXIMIZE
    h_proc, h_thr, pid, tid = win32process.CreateProcess(None, EXE_NAME, None, None, False, 0, None, None, si)
    print(h_proc, h_thr, pid, tid)


if __name__ == "__main__":
    print("Python {:s} on {:s}\n".format(sys.version, sys.platform))
    main()

<强>输出

(py35x64_test) e:\Work\Dev\StackOverflow\q050718126>"e:\Work\Dev\VEnvs\py35x64_test\Scripts\python.exe" code.py
Python 3.5.4 (v3.5.4:3f56838, Aug  8 2017, 02:17:05) [MSC v.1900 64 bit (AMD64)] on win32

<PyHANDLE:556> <PyHANDLE:552> 11952 14144

notepad.exe 窗口弹出最大化:)