我正在尝试找到一种方法来禁用或完全删除 Chrome 的任务管理器。
我提出的解决方案是使用在后台运行的批处理文件来检测 Chrome 任务管理器是否打开,如果打开则关闭 Chrome。不幸的是,我不懂批处理编程,而且没有时间解决这个问题。
对此,我有以下几点想法:
此命令检测有多少个 Chrome 实例正在运行:
任务列表/ nh / fi“图像名称 eq chrome.exe”| 查找/ i“chrome.exe”> nul &&(wmic 进程其中名称=“chrome.exe”| 查找“chrome.exe”/ c
此命令将终止所有 Chrome 进程:
taskkill /im chrome.exe
这不起作用,因为 Chrome 在打开任务管理器时不会创建新进程,尽管它会创建一个新窗口。(流程Windows 任务管理器的任务标签。)
如果检测到有两个 Chrome 窗口打开,我会选择一个关闭 Chrome 的程序,此时即使是部分解决方案也是受欢迎的。
答案1
这应该能帮你到达那里。
要检测任务管理器是否打开-使用以下命令:
tasklist /fi "WINDOWTITLE eq Task Manager - Google Chrome" /v | find "chrome.exe"
在批处理文件中,您可能需要转义管道字符:
tasklist /fi "WINDOWTITLE eq Task Manager - Google Chrome" /v ^| find "chrome.exe"
然后检查%ERRORLEVEL%
是否找到它并将它们全部杀死:
if "%ERRORLEVEL%" == "1" TASKKILL /IM chrome.exe /F
我会让你批量循环(考虑sleep
也添加一个)。
答案2
最好只是关闭 Chrome 任务管理器窗口,而不是关闭整个浏览器,无论如何这似乎是你的目标。
如果你不想使用批处理文件,那么一个简单的方法是使用自动热键脚本:
;Script paramters
#SingleInstance, force
#Persistent
SetBatchLines, -1
Process, Priority,, High
;Set up window hook
Gui +LastFound
hWnd:=WinExist()
DllCall("RegisterShellHookWindow", UInt,hWnd)
MsgNum:=DllCall("RegisterWindowMessage", Str,"SHELLHOOK")
OnMessage(MsgNum, "ShellMessage")
HSHELL_WINDOWCREATED:=1
Return
;Hook function
ShellMessage(wParam,lParam)
{
if (wParam=HSHELL_WINDOWCREATED) ;Window created
{
WinGetTitle, Title, ahk_id %lParam% ;Get window title
if (Title="Task Manager - Google Chrome") ;Check if Chrome Task Manager
WinClose, ahk_id %lParam% ;Close it
}
}
(当然,如果您追求安全性并试图锁定浏览器,那么这不是正确的方法。不幸的是,我不确定 Chrome 本身是否支持安全锁定模式。)