レジストリでタスクマネージャーの実行をブロックするように

This commit is contained in:
suti7yk5032 2024-06-08 09:33:54 +09:00
parent 4d391c7a9a
commit 0b03527e33

View file

@ -4,9 +4,7 @@ import json
import customtkinter import customtkinter
from winotify import Notification, audio from winotify import Notification, audio
import keyboard import keyboard
import wmi
import subprocess import subprocess
import asyncio
class App(customtkinter.CTk): class App(customtkinter.CTk):
def __init__(self): def __init__(self):
@ -20,11 +18,12 @@ class App(customtkinter.CTk):
self.restore_button = customtkinter.CTkButton(self.frame, text='認証ウィンドウを再表示', command=self.handler_close, width=240) self.restore_button = customtkinter.CTkButton(self.frame, text='認証ウィンドウを再表示', command=self.handler_close, width=240)
self.restore_button.grid(row=0, column=0) self.restore_button.grid(row=0, column=0)
asyncio.run(self.task_watcher_run()) self.block_taskmgr
self.block_key() self.block_key()
lock = Lock() lock = Lock()
def exit(self): def exit(self):
self.unlock_taskmgr()
self.toast() self.toast()
self.destroy() self.destroy()
@ -33,6 +32,12 @@ class App(customtkinter.CTk):
for i in block_keys: for i in block_keys:
keyboard.block_key(i) keyboard.block_key(i)
def block_taskmgr(self):
subprocess.run(['reg', 'add', 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System', '/v', 'DisableTaskMgr', '/t', 'REG_DWORD', '/d', '1'])
def unlock_taskmgr(self):
subprocess.run(['reg', 'delete', 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System', '/v', 'DisableTaskMgr', '/f'])
def toast(self): def toast(self):
resource_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "resource") resource_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "resource")
success = Notification( success = Notification(
@ -44,24 +49,6 @@ class App(customtkinter.CTk):
success.set_audio(audio.Default, loop=False) success.set_audio(audio.Default, loop=False)
success.show() success.show()
async def task_watcher_run(self):
taskmgr_killer = asyncio.create_task(self.task_watcher())
async def task_watcher(self):
c=wmi.WMI()
cre_process_watcher=c.Win32_Process.watch_for("creation")
del_process_watcher=c.Win32_Process.watch_for("deletion")
self.i = 1
while self.i == 1:
new_cre_process=cre_process_watcher()
new_del_process=del_process_watcher()
print(new_cre_process.Caption+" has been created")
if new_cre_process.Caption == "Taskmgr.exe":
taskmgr_kill = subprocess.run(['taskkill', '/im', 'Taskmgr.exe'])
print(new_del_process.Caption+" has been deleted ")
def handler_close(self): def handler_close(self):
pass pass
@ -121,9 +108,6 @@ class Lock(customtkinter.CTkToplevel):
self.destroy() self.destroy()
config_dir_path = "./config/" config_dir_path = "./config/"
db_config_path = config_dir_path + "db.json" db_config_path = config_dir_path + "db.json"
if not os.path.isfile(db_config_path): if not os.path.isfile(db_config_path):
@ -147,3 +131,4 @@ if __name__ == '__main__':
app = App() app = App()
app.protocol("WM_DELETE_WINDOW", app.handler_close) app.protocol("WM_DELETE_WINDOW", app.handler_close)
app.mainloop() app.mainloop()