6

起動時に実行可能ファイルを呼び出そうとしていますが、別の実行可能ファイル自体が呼び出されます。最初の部分では、実行可能ファイルへのパスを に追加しただけHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Runで動作します。私の実行可能ファイルは起動時に呼び出されます。

後者には、特に次の行が含まれています。

startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
startupinfo.wShowWindow = subprocess.SW_HIDE
proc = subprocess.Popen(command, startupinfo=startupinfo)

ただし、コンピューターの起動時にコマンド シェル (cmd) が表示されます。すべて正常に動作しますが、非表示ではなく表示されます...基本的に、このコマンドシェルを非表示にするにはどうすればよいですか?

を使用する場合ProcessExplorer、次の階層があります。

+ System
|_ Interrupts
|_ smss.exe
    |_ some processes...
+ explorer.exe
    |_ some processes...
|_ MYSCRIPT.EXE

これが私が達成しようとするシーケンスです:

  • VM で実行するすべての Python 実行可能ファイルを含む ISO ファイルを作成します。そのうちの 1 つ ( master.exe) が他の人を呼び出します。
  • 後者を自動的にマウントする VM を作成します
  • 準備された VM には、次を呼び出すスケジュールされたタスクがあります。D:\master.exe
  • master.exe(ここでは関係のない他のタスクの中でも)に価値D:\myscript.exeを追加しますHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  • VM が再起動します
  • D:\myscript.exe実行されます(そして、それは正常に機能し、有人で機能します)が、コマンドプロンプトで実行されます。
4

5 に答える 5

3

これは、Python プログラマーが遭遇する典型的な問題です。したがって、解決策は Python 自体によって提供されます。ここなど、SOで何度も尋ねられてきましたが、あなたにとって、問題はもう少し複雑です。

スクリプトを使用するか実行python.exeするかがすべてです。pythonw.exe1 つ目はコンソールを開きますが、2 つ目は開きません。

コンパイルされたスクリプトを使用する場合、使用するバージョンを「コンパイラ」に伝える必要があります。py2exe を使用していると仮定すると、SO に関するこの投稿を見ることができます。ここでは、その進め方を詳しく説明します。

于 2013-01-21T12:57:26.697 に答える
1

開いているコンソール ウィンドウは、スクリプトを実行している Python プロセスに属している可能性があります。スクリプトを実行しているレジストリのエントリを表示してください。

于 2013-01-15T13:37:43.210 に答える
0

コンソールプログラムを実行すると、Windowsはコンソールウィンドウを作成します。「python.exe」はコンソールプログラムです。

コンソールウィンドウが必要ない場合は、「python.exe」ではなく「pythonw.exe」を使用してPythonスクリプトを実行できます。

于 2013-01-21T12:15:33.223 に答える
0

exe形式にコンパイルできます。その問題が発生したとき、py2exeを使用してpythonファイルを非表示の実行可能ファイルにコンパイルしました。

あなたがしなければならないのは、setup.pyファイル(コンパイルに使用される)を変更することだけです。

setup(console=['__main__.py'], options={"py2exe":{"includes":["sip"]}})

setup(windows=['__main__.py'], options={"py2exe":{"includes":["sip"]}})
于 2015-09-17T05:25:29.503 に答える
0

同じ問題があり、Pyinstallerを使用しました。

Pyinstaller は、.py ファイルをスタンドアロンの実行可能ファイルにコンパイルするスマートなクロスプラットフォーム ツールです。

次の方法でインストールします。

pip install pyinstaller(詳細はこちら

次のコマンドを使用してコンソールを非表示にします (スクリプトをプロセスにします)。

pyinstaller yourfilename.py -F --windowed

(「-F」フラグを使用すると単一の .exe ファイルが取得され、「--windowed」フラグを使用するとコンソールが非表示になります)

于 2018-04-03T19:43:16.367 に答える