Program yang sedang dilaksanakan dipanggil proses. Proses boleh menjadi aplikasi yang berjalan pada sistem pengendalian semasa atau aplikasi yang berkaitan dengan sistem pengendalian. Jika aplikasi terikat pada sistem pengendalian, ia mula-mula mencipta proses untuk melaksanakan sendiri.
Aplikasi lain bergantung pada perkhidmatan sistem pengendalian untuk pelaksanaan. Kebanyakan aplikasi adalah perkhidmatan sistem pengendalian dan aplikasi latar belakang yang mengekalkan sistem pengendalian, perisian dan perkakasan.
Dalam python kita mempunyai cara yang berbeza untuk menyemak sama ada aplikasi dibuka atau tidak. Mari belajar tentang mereka secara terperinci satu demi satu.
psutil ialah modul dalam python yang menyediakan pengguna dengan antara muka untuk mendapatkan maklumat tentang proses yang sedang berjalan dan penggunaan sistem. Ia boleh digunakan pada sistem pengendalian arus perdana dan platform API seperti Linux, windows, macOs, solaris dan AIX.
Fungsi process_iter() modul psutil membantu kami mendapatkan maklumat tentang proses yang sedang berjalan, seperti nama proses, ID proses, penggunaan CPU, penggunaan memori, dsb. Ia juga menyediakan maklumat tentang penggunaan sistem seperti penggunaan cakera, penggunaan rangkaian, dsb.
Dalam contoh ini, kami cuba mengetahui sama ada proses bernama "Chrome.exe" sedang berjalan dalam sistem kami.
import psutil def check_if_process_running(process_name): for process in psutil.process_iter(['name']): if process.info['name'] == process_name: return True return False check_if_process_running("Chrome.exe")
False
Ini adalah satu lagi contoh fungsi process_iter() modul psutil, yang menyediakan butiran proses.
import psutil processes = psutil.process_iter() for process in processes: print(f"Process name: {process.name()} | PID: {process.pid}") cpu_percent = psutil.cpu_percent() print(f"CPU usage: {cpu_percent}%") memory_usage = psutil.virtual_memory() print(f"Total memory: {memory_usage.total / 1024 / 1024:.2f} MB") print(f"Available memory: {memory_usage.available / 1024 / 1024:.2f} MB") print(f"Memory usage: {memory_usage.percent}%")
Berikut ialah output process_iter() yang memberikan maklumat penuh tentang aplikasi.
Process name: chrome.exe | PID: 15964 Process name: chrome.exe | PID: 16876 CPU usage: 10.6% Total memory: 12152.65 MB Available memory: 5849.83 MB Memory usage: 51.9%
Modul subproses ialah cara lain untuk menyemak sama ada aplikasi sedang berjalan atau berhenti. Menggunakan modul subproses, kami boleh melancarkan aplikasi baharu daripada program Python semasa. Kita boleh menggunakan kaedah check_output() untuk mendapatkan output atur cara dan arahan.
Dalam contoh di bawah, kami cuba mengesahkan bahawa aplikasi dibuka menggunakan fungsi check_output() –
import subprocess def is_process_running(process_name): cmd = 'tasklist /fi "imagename eq {}"'.format(process_name) output = subprocess.check_output(cmd, shell=True).decode() if process_name.lower() in output.lower(): return True else: return False is_process_running("chrome.exe")
True
Windows Management Instrumentation ialah satu set alatan dalam sistem pengendalian Windows yang membenarkan pentadbir mengurus komputer jauh dan tempatan.
Dalam Python, kami mempunyai modul wmi, yang membantu kami menyemak sama ada aplikasi sedang berjalan. Kod berikut digunakan untuk memasang wmi dalam persekitaran python.
pip install wmi
Dalam contoh ini, kami menghantar nama aplikasi sebagai parameter input kepada fungsi WMI() modul wmi untuk mendapatkan semula status aplikasi dengan ID proses.
import wmi f = wmi.WMI() for process in f.Win32_Process(): print(f"{process.ProcessId:>5} {process.Name}")
Berikut ialah output fungsi WMI() modul wmi.
0 System Idle Process 4 System 124 Registry 524 smss.exe 752 csrss.exe 868 csrss.exe 888 wininit.exe 940 services.exe 960 lsass.exe 320 winlogon.exe 980 svchost.exe 1048 fontdrvhost.exe 1056 fontdrvhost.exe 1144 WUDFHost.exe 1180 svchost.exe 1268 svchost.exe 1292 WUDFHost.exe 1396 svchost.exe 1404 svchost.exe 1412 svchost.exe 1528 svchost.exe 1640 dwm.exe 1660 svchost.exe
Atas ialah kandungan terperinci Bagaimana untuk menyemak sama ada aplikasi dibuka dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!