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) CDBurnerXP のポータブル バージョンPORTABLE_APP_LOCATION
へのパスに変更し、 CreateProcess の代わりに ShellExecuteEx オプションを使用すると、プロセスは Windows タスク マネージャーで開始されますが、アプリの実際のウィンドウは表示されません。これは、 GIMPのポータブル バージョンなど、実行後に表示される他の EXE では発生しません。この違いは、実行可能ファイルの特性によるものだと思います。誰がこれを引き起こしているのか知っていますか?
3) Windows が「この EXE を実行してもよろしいですか?」というメッセージを表示する条件は何ですか? CDBurnerXP は証明書で署名されていると思いますが、Python 内からこの EXE を実行しようとすると、Windows でこの質問が表示されることがあります。
どうもありがとう。