要編寫一個(gè)進(jìn)程勾選器(也就是監(jiān)視和選擇進(jìn)程)的Python程序,可以使用psutil庫來獲取系統(tǒng)當(dāng)前運(yùn)行的進(jìn)程信息,并使用tkinter庫來創(chuàng)建一個(gè)圖形化界面來展示進(jìn)程信息和進(jìn)行選擇操作。
以下是一個(gè)簡(jiǎn)單的示例代碼,實(shí)現(xiàn)了一個(gè)基礎(chǔ)的進(jìn)程勾選器功能:
import psutil
import tkinter as tk
def update_process_list():
process_list.delete(0, tk.END) # 清空進(jìn)程列表
for proc in psutil.process_iter():
try:
process = psutil.Process(proc.pid)
process_list.insert(tk.END, f"{proc.pid}: {process.name()}") # 插入進(jìn)程信息
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass
def on_select():
selected_index = process_list.curselection()
if selected_index:
selected_pid = int(process_list.get(selected_index).split(':')[0])
selected_process = psutil.Process(selected_pid)
print(f"Selected process: {selected_process.name()}")
# 創(chuàng)建主窗口
root = tk.Tk()
root.title("Process Selector")
# 創(chuàng)建進(jìn)程列表框
process_list = tk.Listbox(root, width=50)
process_list.pack()
# 創(chuàng)建更新按鈕
update_button = tk.Button(root, text="Update", command=update_process_list)
update_button.pack()
# 創(chuàng)建選擇按鈕
select_button = tk.Button(root, text="Select", command=on_select)
select_button.pack()
# 初始化進(jìn)程列表
update_process_list()
# 運(yùn)行主事件循環(huán)
root.mainloop()
以上代碼創(chuàng)建了一個(gè)簡(jiǎn)單的圖形化界面,展示了系統(tǒng)當(dāng)前運(yùn)行的進(jìn)程列表,用戶可以選擇一個(gè)進(jìn)程并點(diǎn)擊"Select"按鈕來獲取選擇的進(jìn)程信息。需要注意的是,該示例僅展示了基礎(chǔ)的功能,你可以根據(jù)需要進(jìn)一步完善和定制功能。