首页 > 文章列表 > 基于Python编写一个有趣的进程勾选器(Process Selector)

基于Python编写一个有趣的进程勾选器(Process Selector)

Python
273 2023-05-15

简介

一个基于Python的程序,使用tkinter模块创建一个GUI界面,在Checklistbox中列出系统中正在运行的进程的名称和PID,并允许用户选择进程并将其保存到文本文件中。

源代码

import psutil

import tkinter as tk

 

def save_selected_processes():

    # 获取选中的进程名称和PID

    selected_processes = []

    for index in checklistbox.curselection():

        process_info = checklistbox.get(index)

        selected_processes.append(process_info)

 

    # 将选中的进程名称和PID写入到文本文件中

    with open("process.txt", "w") as f:

        for process_info in selected_processes:

            f.write(process_info + "\n")

 

def update_checklistbox():

    # 获取系统中所有进程的信息

    process_list = psutil.process_iter()

 

    # 清空Checklistbox

    checklistbox.delete(0, tk.END)

 

    # 循环获取每个进程的名称和PID,并添加到Checklistbox中

    for process in process_list:

        try:

            process_name = process.name()

            process_pid = process.pid

            checklistbox.insert(tk.END, f"{process_name} - {process_pid}")

        except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):

            # 如果进程不存在、无权访问或为僵尸进程,跳过此进程并继续循环

            continue

 

    # 更新Checklistbox中的内容

    checklistbox.update()

 

# 创建GUI界面

root = tk.Tk()

root.title("进程列表")

 

# 创建Checklistbox组件

checklistbox = tk.Listbox(root, selectmode=tk.MULTIPLE)

checklistbox.pack(fill=tk.BOTH, expand=True)

 

# 添加一个按钮来保存选中的进程列表

save_button = tk.Button(root, text="保存选中的进程", command=save_selected_processes)

save_button.pack()

 

# 初始化Checklistbox

update_checklistbox()

 

# 进入事件循环

root.mainloop()

此程序使用psutil模块获取系统中正在运行的进程列表,并将进程的名称和PID添加到一个tkinter的Checklistbox组件中。程序还包括一个按钮,用于保存用户选择的进程名称和PID到文本文件中。用户可以使用Ctrl键选择多个进程,并单击保存按钮以将所选进程保存到文件中。保存的文件名为process.txt。 

效果如下