我正在从python应用程序运行几个便携式应用程序。
考虑以下代码:
import win32com.shell.shell as w32shell
import os
import sys
import win32process as process
PORTABLE_APP_LOCATION = "C:\\Windows\\System32\\calc.exe"
#This function runs a portable application:
def runPortable():
try:
startObj = process.STARTUPINFO()
process.CreateProcess(PORTABLE_APP_LOCATION,None,None,None,8,8,None,None,startObj)
# OR
#w32shell.ShellExecuteEx(lpFile=PORTABLE_APP_LOCATION)
except:
print(sys.exc_info()[0])
runPortable()
1)我应该期望从pythonw或python到此代码的执行有什么不同吗?
2)如果我更改PORTABLE_APP_LOCATION为CDBurnerXP便携式版本的路径,并使用ShellExecuteEx选项而不是CreateProcess,则可以看到该进程已在Windows Task Manager上启动,但该应用程序的实际窗口不可见。对于其他EXE(例如GIMP的便携式版本),在运行后确实会出现这种情况。我认为这种差异来自可执行文件的属性。有人知道是什么原因造成的吗?
3)Windows在什么条件下提示“您确定要运行此EXE”?我相信CDBurnerXP已使用证书签名,但是当尝试从python内部运行此EXE时,Windows仍然有时会弹出此问题。
慕斯王
相关分类