Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menyemak sama ada aplikasi dibuka dalam Python?

Bagaimana untuk menyemak sama ada aplikasi dibuka dalam Python?

王林
王林ke hadapan
2023-08-26 18:49:051477semak imbas

Bagaimana untuk menyemak sama ada aplikasi dibuka dalam Python?

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.

Gunakan fungsi psutil.process_iter()

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.

Contoh

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")

Output

False

Contoh

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}%")

Output

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%

Gunakan modul subproses

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.

Contoh

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")

Output

True

Guna modul wmi

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

Contoh

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}")

Output

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam