Я запускаю несколько портативных приложений из своего приложения python.Запуск внешнего EXE из 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 или питона?
2) Если я изменяю PORTABLE_APP_LOCATION
на путь до a portable version of CDBurnerXP и используйте вместо опции CreateProcess параметр ShellExecuteEx, я вижу, что процесс запускается в диспетчере задач Windows, но фактическое окно приложения не отображается. Это не происходит с другими EXE, такими как переносимая версия GIMP, которые появляются после запуска. Я предполагаю, что это отличие происходит от свойства исполняемых файлов. Кто-нибудь знает, что вызывает это?
3) На каких условиях Windows запрашивает «Вы уверены, что хотите запустить этот EXE»? Я считаю, что CDBurnerXP подписан с сертификатом, но иногда Windows вызывает этот вопрос при попытке запустить этот EXE изнутри python.
Большое спасибо.
Мне известны другие варианты выполнения таких файлов, как 'os.system' и' subprocess.call'. Это не то, что я спросил:/ – user1555863