Başka bir yürütülebilir dosyayı arayacak olan başlangıçta bir yürütülebilir dosyayı çağırmaya çalışıyorum. İlk kısımda, sadece çalıştırılabilir dosyaya yolunu HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
'a ekledim.Subprocess.Popen(): cmd kabuğunu gizler
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
startupinfo.wShowWindow = subprocess.SW_HIDE
proc = subprocess.Popen(command, startupinfo=startupinfo)
Bununla birlikte, bir komut kabuğu (Cmd) bilgisayar başlatıldığında açar:
ikinci diğerleri arasında, bu çizgiler içermektedir. Her şey iyi çalışıyor, ancak gizli yerine görünür ... Bu yüzden temel olarak bu komut kabuğunu nasıl gizlerim?
ProcessExplorer
kullanarak, aşağıdaki hiyerarşi var: Burada
+ System
|_ Interrupts
|_ smss.exe
|_ some processes...
+ explorer.exe
|_ some processes...
|_ MYSCRIPT.EXE
elde etmek deneyin dizisidir:
- Ben içeren bir ISO dosyası oluşturmak tüm Ben çalıştırmak istediğiniz Python çalıştırılabilir VM'de. Bunlardan biri (
master.exe
) diğerlerini çağırır. - otomatik olarak ikinci
- hazırlanmıştır VM, montaj VM oluşturmak sahiptir (burada bizi hiç ilgilendirmez diğer görevler arasında)
D:\master.exe
master.exe
çağıran bir zamanlanmış görevD:\myscript.exe
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
değer katan- VM
D:\myscript.exe
çalıştırılır yeniden başlatılır (ve iyi çalışıyor ve katıldığı gibi), ancak ben görünmez olmak istiyorum bir komut isteminde, çalıştırmak gelmez.
için
den (derlemek için kullanılan) piridin dosyası, VBScript ile (.run yöntemi) çalıştırmak bir işlem penceresini gizlemek için kullanılır. Ama benziyor, python size doğal bir yol sunuyor. :-) – anishsane
related: [os.system() veya subprocess.call() kullandığımda konsolu nasıl gizlerim?] (Http://stackoverflow.com/q/7006238/4279) – jfs