首页 > 解决方案 > 通过python打开特定大小的.exe文件

问题描述

我正在尝试创建一个可以使用 win32process 打开特定大小的程序的按钮。不知何故,我写的代码不起作用..我该如何使它工作?

from tkinter import *
from tkinter import filedialog
from tkinter.filedialog import *
from PIL import ImageTk,Image
import win32process


window=Tk()

def openfile():
    window.filename = askopenfilename(title="Open file", filetypes=(("exe files", "*.exe"),("all files", "*.*")))  
    startupinfo = win32process.STARTUPINFO()
    startupinfo.dwX = 10
    startupinfo.dwY = 20
    startupinfo.dwXSize = 600
    startupinfo.dwYSize = 100

    win32process.CreateProcess(
        None,
        window.filename,
        None,
        None,
        False,
        0,
        None,
        None,
        startupinfo
    )

OpeButton = Button(window, text="Open", command=openfile)#COMMAND=OPEN
OpeButton.pack()
OpeButton.place(relx = 0.52, rely = 0.5)

window.overrideredirect(1)
window.mainloop()

标签: pythonwinapiprocesswindowsize

解决方案


您没有设置 的dwFlags字段STARTUPINFO,因此dwX/dwYdwXSize/dwYSize字段将被忽略。您需要添加这些标志才能使用这些字段:

startupinfo.dwFlags = win32process.STARTF_USEPOSITION | win32process.STARTF_USESIZE

但是,这仍然不能保证目标窗口实际上会处于指定的位置和大小。由目标进程自行决定是否遵守STARTUPINFO


推荐阅读