2

Я пытаюсь найти способ либо отключить, либо полностью удалить диспетчер задач Chrome.

Мое предлагаемое решение включает использование пакетного файла, работающего в фоновом режиме, чтобы определить, открыт ли диспетчер задач Chrome, и закрыть Chrome, если он открыт. К сожалению, я не знаю пакетного программирования и у меня мало времени для решения этой проблемы.

Вот пара идей, которые у меня были для этого:

  • Эта команда определяет количество запущенных экземпляров Chrome:

    список задач /nh /fi "imagename eq chrome.exe" | find /i "chrome.exe"> nul && (wmic process, где name = "chrome.exe" | find "chrome.exe" /c

  • Эта команда убивает все процессы Chrome:

    taskkill /im chrome.exe

Это не работает, потому что Chrome не создает новый процесс при открытии диспетчера задач, хотя он создает новое окно. (На вкладке « Процессы » в диспетчере задач Windows изменений нет, но есть на вкладке « Задачи ».)

Я согласен на программу, которая закрывает Chrome, если обнаруживает, что два его окна открыты, и даже частичные решения приветствуются на этом этапе.

2 ответа2

0

Это должно помочь вам в этом.

Для обнаружения, если Диспетчер задач открыт - используйте что-то вроде этого:

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 тоже).

0

Было бы лучше просто закрыть окно Chrome Task Manager, а не убивать весь браузер, что в любом случае является вашей целью.

Если вы не привязаны к пакетному файлу, простой способ сделать это - использовать скрипт AutoHotkey :

;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 изначально поддерживает безопасный режим блокировки.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .