How to check if an application is open in Python?


A program under execution is known as process. A process can be applications running on the current operating system or, applications related to the Operating system. If an application is related to operating system, firstly it will create a process to execute itself.

The other applications rely on operating system services for execution. Most of the applications are OS services and the background applications that maintain the operating system, software and Hardware.

We have different ways in python to check whether if an application is open or not. Let’s see them one by one in detail.

Using the psutil.process_iter() function

psutil is a module in python which provides the users an interface to retrieve the information of the running processes and system utilization. This can be used in major operating systems such as Linux, windows, macOs, solaris and AIX etc., and to the API platforms.

The process_iter() function of the psutil module helps us to retrieve the information regarding the running processes like process name, process ID, CPU usage, memory usage and more. This also provides information about the system utilization like disk usage, network usage etc.

Example

In this example, we are trying to find out whether the process named “Chrome.exe” is currently running in our system.

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

Example

This is another example of the process_iter() function of the psutil module which gives the details of the process.

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

Following is the output of the process_iter() which gives the total information about the application.

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%

Using subprocess module

The subprocess module is another way to check whether the application is running or halted. Using the subprocess module, we can start a new application from the current Python program. We can get the output of a program, command using the check_output() method.

Example

In the following example we are trying to verify if an application is open using the check_output() function –

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

Using wmi module

The Windows Management Instrumentation, is a set of tools in the windows operating system which allows the administrator to manage remote and local computers.

In python we have the wmi module, which helps us to check whether an application is running or not. The following code is used to install wmi in python environment.

pip install wmi

Example

In this example, we will pass the application name as the input argument to WMI() function of the wmi module, to retrieve the status of an application with process id.

import wmi
f = wmi.WMI()
for process in f.Win32_Process():
    print(f"{process.ProcessId:>5} {process.Name}")

Output

The below is the output of the WMI() function of the wmi module.

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

Updated on: 09-Aug-2023

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements