使用批处理文件删除或禁用 Chrome 的任务管理器

使用批处理文件删除或禁用 Chrome 的任务管理器

我正在尝试找到一种方法来禁用或完全删除 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 本身是否支持安全锁定模式。)

相关内容