Как заморозить другой процесс на Python?
в cheat engine есть функция, при использовании которой процесс замораживается, то есть он просто зависает и ничего не будет происходить пока ты не разморозишь его. Так вот как это написать на языке python. Буду благодарен если кто-то скинет готовый код
Ответы (1 шт):
Автор решения: tiovi
→ Ссылка
Код для MacOS:
import tkinter as tk
import subprocess
def freeze_process(process_name):
try:
pid = subprocess.check_output(['pgrep', '-x', process_name]).strip().decode('utf-8')
subprocess.run(['kill', '-STOP', pid])
except subprocess.CalledProcessError:
pass
def unfreeze_process(process_name):
try:
pid = subprocess.check_output(['pgrep', '-x', process_name]).strip().decode('utf-8')
subprocess.run(['kill', '-CONT', pid])
except subprocess.CalledProcessError:
pass
def freeze_button_click():
process_name = entry.get()
freeze_process(process_name)
def unfreeze_button_click():
process_name = entry.get()
unfreeze_process(process_name)
window = tk.Tk()
window.title("Process Management")
label = tk.Label(window, text="Enter process name:")
label.pack()
entry = tk.Entry(window)
entry.pack()
freeze_button = tk.Button(window, text="Freeze", command=freeze_button_click)
freeze_button.pack()
unfreeze_button = tk.Button(window, text="Unfreeze", command=unfreeze_button_click)
unfreeze_button.pack()
window.mainloop()
Код для Windows:
import tkinter as tk
import psutil
def freeze_process(process_name):
for proc in psutil.process_iter():
if proc.name() == process_name:
proc.suspend()
def unfreeze_process(process_name):
for proc in psutil.process_iter():
if proc.name() == process_name:
proc.resume()
def freeze_button_click():
process_name = entry.get()
freeze_process(process_name)
def unfreeze_button_click():
process_name = entry.get()
unfreeze_process(process_name)
window = tk.Tk()
window.title("Process Management")
label = tk.Label(window, text="Enter process name:")
label.pack()
entry = tk.Entry(window)
entry.pack()
freeze_button = tk.Button(window, text="Freeze", command=freeze_button_click)
freeze_button.pack()
unfreeze_button = tk.Button(window, text="Unfreeze", command=unfreeze_button_click)
unfreeze_button.pack()
window.mainloop()
Я использовал Tkinter
чтобы можно было удобнее управлять разморозкой и заморозкой процесса. Но скрипты заморозки и разморозки можно реализовать по отдельности без использования GUI.