Domanda

Chiamo Powershell in questo modo:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noprofile -noninteractive -nologo -file "C:\Users\dummy\Documents\dev\powershell\samples\test.ps1"

sto chiamando da uno script python, ma lo stesso problema si può osservare se chiamati tramite un collegamento. Ho pensato che la bandiera -NonInteractive causerebbe Poweshell di eseguire in una finestra nascosta, ma non è così. C'è un modo di soppressione della finestra della console quando si chiama PowerShell da un'applicazione esterna?

Soluzione basata su Johannes Rössel suggerimento

import subprocess
st_inf = subprocess.STARTUPINFO()
st_inf.dwFlags = st_inf.dwFlags | subprocess.STARTF_USESHOWWINDOW
subprocess.Popen(["notepad"], startupinfo=st_inf)
È stato utile?

Soluzione

È possibile passare gli argomenti appropriati per CreateProcess o Process.Start per sopprimere la finestra della console.

Tuttavia, PowerShell dispone anche di un parametro -WindowStyle che è possibile impostare per nascosto.

Altri suggerimenti

Non ho avuto fortuna con -WindowStyle Hidden, perché una finestra della console è apparso ogni volta per un po '.

Ecco perché io uso un exe aiutante chiamato PsRun.exe che fa esattamente questo. È possibile scaricare sorgente e il file exe Esegui attività pianificate con WinForm GUI in PowerShell . Io lo uso per operazioni pianificate.

(Si noti che il parametro -windowstyle è disponibile solo per V2.)

Usa -WindowStyle Hidden. Vedere qui .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top