Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menghalang Windows Konsol daripada Muncul Apabila Menggunakan os.system() dan subprocess.call()?
Menyembunyikan Windows Console dalam os.system() dan subprocess.call()
Apabila menggunakan os.system() atau subprocess.call () untuk melaksanakan arahan, anda mungkin menghadapi tetingkap konsol yang menjengkelkan muncul. Ini boleh mengganggu aliran kerja anda dan menjadikan skrip anda kelihatan tidak profesional. Nasib baik, terdapat cara untuk menyekat tingkah laku yang tidak diingini ini.
Untuk menyembunyikan tetingkap konsol, anda boleh menggunakan struktur STARTUPINFO yang tersedia dalam modul subproses. Begini caranya:
si = subprocess.STARTUPINFO() si.dwFlags |= subprocess.STARTF_USESHOWWINDOW #si.wShowWindow = subprocess.SW_HIDE # default subprocess.call('taskkill /F /IM exename.exe', startupinfo=si)
Sebagai alternatif, anda boleh menetapkan bendera penciptaan khusus untuk menghalang tetingkap konsol daripada dicipta di tempat pertama:
CREATE_NO_WINDOW = 0x08000000 subprocess.call('taskkill /F /IM exename.exe', creationflags=CREATE_NO_WINDOW)
Pendekatan ini masih akan menghasilkan proses konsol dengan pemegang untuk I/O, tetapi ia tidak akan kelihatan dan tidak akan mengganggu antara muka pengguna.
Untuk penyelesaian yang lebih teliti, anda boleh menguatkuasakan proses anak untuk tidak mempunyai konsol sama sekali:
DETACHED_PROCESS = 0x00000008 subprocess.call('taskkill /F /IM exename.exe', creationflags=DETACHED_PROCESS)
Dalam kes ini, pemegang standard kanak-kanak ialah 0, tetapi anda boleh mengubah halanya ke fail atau paip seperti subproses.DEVNULL.
Atas ialah kandungan terperinci Bagaimana untuk Menghalang Windows Konsol daripada Muncul Apabila Menggunakan os.system() dan subprocess.call()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!