Sto provando a chiamare un eseguibile all'avvio, che chiamerà un altro eseguibile. Per la prima parte, ho semplicemente aggiunto il percorso dell'eseguibile a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
, che funziona, il mio eseguibile viene chiamato all'avvio.Subprocess.Popen(): nascondi la shell cmd
Quest'ultimo contiene, tra gli altri, queste linee:
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
startupinfo.wShowWindow = subprocess.SW_HIDE
proc = subprocess.Popen(command, startupinfo=startupinfo)
Tuttavia, una shell di comando (cmd) Pops all'avvio del computer. Tutto funziona bene, ma è visibile invece che nascosto ... Quindi, in pratica, come posso nascondere questo comando shell?
Quando si utilizza ProcessExplorer
, ho la seguente gerarchia:
+ System
|_ Interrupts
|_ smss.exe
|_ some processes...
+ explorer.exe
|_ some processes...
|_ MYSCRIPT.EXE
Ecco la sequenza che cerco di ottenere:
- creo un file ISO contenente tutte le Python eseguibile voglio correre sulla VM. Uno di essi (
master.exe
) chiama gli altri. - creo una macchina virtuale, che monta automaticamente quest'ultimo
- La VM, che è stata preparata, ha un'attività pianificata che richiede
D:\master.exe
master.exe
(tra gli altri compiti che non sono la nostra preoccupazione qui) aggiunge il valoreD:\myscript.exe
-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
- La VM si riavvia
D:\myscript.exe
viene eseguito (e funziona correttamente e come richiesto), ma viene eseguito in un prompt dei comandi, che mi piacerebbe essere invisibile.
Come regola generale, per nascondere una finestra di processo, corro via VBScript (metodo .run). Ma sembra, python ti offre un modo nativo. :-) – anishsane
correlati: [Come nascondere la console quando utilizzo os.system() o subprocess.call()?] (Http://stackoverflow.com/q/7006238/4279) – jfs