python - 通过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()
解决方案
您没有设置 的dwFlags
字段STARTUPINFO
,因此dwX
/dwY
和dwXSize
/dwYSize
字段将被忽略。您需要添加这些标志才能使用这些字段:
startupinfo.dwFlags = win32process.STARTF_USEPOSITION | win32process.STARTF_USESIZE
但是,这仍然不能保证目标窗口实际上会处于指定的位置和大小。由目标进程自行决定是否遵守STARTUPINFO
。
推荐阅读
- timer - STM32:如何配置定时器以在正交编码器模式下每次增量触发中断?
- php - 更新时如何在mysql SET中插入变量?
- python - 在python中旋转二维数组的问题
- json - pySpark - 在插入数据库之前将整个数据框列转换为 JSON 对象
- amazon-web-services - 如何创建加入中未找到的项目计数?
- while-loop - 我需要帮助获得一个 while 循环来迭代比第一次更多的阶乘程序
- openssl - Google Colab 上的 OpenSSL?
- mysql - 如何更新sql中的临时变量?
- c++ - 为什么这个结构不是我期望的大小?
- recursion - 乘法持久性的大 O 表示法?