Как создавать замки для закрытия программ: от горячих клавиш до USB‑ключей

Термин «замок» в данном контексте – это любой механизм (аппаратный или программный), который
позволяет «запереть» действие закрытия программы и выполнить его только после выполнения
определённого условия. «Своим рот» – разговорное обозначение «своими силами», «своим способом».
В статье мы разберём, как создать такие «замки», используя клавиатурные комбинации,
скрипты, USB‑ключи и даже голосовое управление.


Что подразумевается под «замком»?

Слово «замок» может означать:

  • Аппаратный замок – физический USB‑донгл, RFID‑карта, Bluetooth‑токен и т.п.
  • Программный замок – скрипт, который «запирает» действие до появления определённого сигнала
    (нажатия клавиши, получения команды от голосового ассистента, события в Планировщике).
  • Методологический замок – набор правил и сочетаний клавиш, которые гарантируют закрытие
    программы даже в случае её зависания.

Ниже мы покажем, как реализовать каждый из этих вариантов.


Классические способы закрытия программы

Если «замок» – это просто надёжный способ закрыть приложение, то в первую очередь стоит знать
стандартные комбинации клавиш и инструменты Windows.

Сочетания клавиш

  • Alt + F4 – закрывает активное окно. Работает в любой версии Windows.
  • Ctrl + W – закрывает текущую вкладку/окно в большинстве браузеров и редакторов.
  • Ctrl + Shift + Esc – открывает Диспетчер задач, где можно принудительно завершить процесс.
  • Ctrl + Alt + Delete – открывает экран безопасности, откуда тоже можно вызвать Диспетчер задач.

Диспетчер задач

Для принудительного завершения процесса:

  1. Нажмите Ctrl + Shift + Esc → откроется Диспетчер задач.
  2. Выберите нужный процесс, нажмите «Завершить задачу» или правой кнопкой → «Завершить процесс».

Командная строка и PowerShell

taskkill /IM notepad.exe /F 
Stop-Process -Name "chrome" -Force 

Эти команды часто используют в скриптах, которые могут стать частью «замка».


Программный замок: скрипты и горячие клавиши

Самый гибкий способ – написать скрипт, который будет реагировать на выбранный «ключ‑замок» и
выполнять закрытие программы. Ниже – примеры на AutoHotkey и Python.

AutoHotkey (AHK)

AutoHotkey позволяет привязывать любые комбинации клавиш к действиям Windows.

; Пример: нажмите Ctrl+Alt+Z → закрыть все окна Chrome
#NoEnv
#Persistent
^!z:: ; Ctrl+Alt+Z
 WinClose, ahk_exe chrome.exe
 return

Сохраните код в файл close_chrome.ahk и запустите его. Теперь ваш «замок» – комбинация
Ctrl+Alt+Z.

Python + pywin32

Если вы предпочитаете Python, используйте модуль pywin32 для управления окнами.

import win32gui
import win32con

def close_window(title_part):
 def enum_handler(hwnd, _):
 if win32gui.IsWindowVisible(hwnd):
 if title_part.lower in win32gui.GetWindowText(hwnd).lower:
 win32gui.PostMessage(hwnd, win32con.WM_CLOSE, 0, 0)
 win32gui.EnumWindows(enum_handler, None)

close_window("Notepad")

Скрипт можно привязать к горячей клавише через AutoHotkey или к событию «вставлен USB‑ключ» (см. ниже).


Аппаратный замок: USB‑ключ (dongle)

USB‑ключи часто используют в корпоративных решениях для защиты программного обеспечения.
Мы покажем, как превратить любой USB‑накопитель в «замок», который будет автоматически
закрывать выбранную программу, когда ключ будет извлечён.

Требуемые инструменты

  • AutoHotkey – для отслеживания событий USB.
  • Уникальный идентификатор (Serial Number) вашего USB‑устройства.

Как найти Serial Number

wmic diskdrive get Caption,SerialNumber,DeviceID

Запомните номер, например 12345678.

Скрипт AHK

; Замок: если USB‑ключ с серийным номером 12345678 НЕ подключён → закрыть Notepad
#Persistent
SetTimer, CheckUSB, 2000 ; проверять каждые 2 секунды
return

CheckUSB:
 DriveGet, List, List
 Found := false
 Loop, Parse, List, `n
 {
 Drive := A_LoopField . ":"
 DriveGet, Serial, Serial, %Drive%
 if (Serial = "12345678")

 {
 Found := true
 break
 }
 }
 if (!Found)
 {
 ; USB‑ключ исчез – закрываем Notepad
 WinClose, ahk_exe notepad.exe
 }
return

Сохраните как usb_lock.ahk и запустите. Теперь ваш «замок» – физический USB‑ключ.


Голосовой «замок»: закрытие программы голосом

Если под «своим рот» подразумевается «голос», то современный Windows уже имеет встроенный
модуль распознавания речи. Мы покажем, как с помощью PowerShell и Windows Speech Recognition
создать голосовую команду «закрыть браузер».

Подготовка

  1. Откройте Панель управления → Специальные возможности → Распознавание речи и включите его.
  2. Создайте Грамматику (файл .xml) с фразой закрыть браузер.

Пример скрипта PowerShell

Add-Type -AssemblyName System.Speech
$recognizer = New-Object System.Speech.Recognition.SpeechRecognitionEngine
$grammar = New-Object System.Speech.Recognition.Grammar([System.IO.Path]::Combine($PSScriptRoot, "close_browser.xml"))
$recognizer.LoadGrammar($grammar)

$recognizer.SpeechRecognized.Add({
 param($sender,$e)
 if ($e.Result.Text -eq "закрыть браузер") {
 Write-Host "Голосовая команда получена – закрываю Chrome..."
 Stop-Process -Name "chrome" -Force
 }
})

$recognizer.SetInputToDefaultAudioDevice
$recognizer.RecognizeAsync([System.Speech.Recognition.RecognizeMode]::Multiple)
Write-Host "Слушаю команду «закрыть браузер»..."
while ($true) { Start-Sleep -Seconds 1 }

Запустив скрипт, вы сможете сказать «закрыть браузер», и программа будет завершена. Это
полностью соответствует идее «закрыть программу своим рот».


Автоматизация через Планировщик задач

Если вам нужен «замок», который срабатывает в определённое время (например, в 23:00),
используйте встроенный Планировщик задач Windows.

Создание задачи

  1. Откройте Планировщик задач (Task Scheduler).
  2. Выберите Создать задачу.
  3. Во вкладке Триггеры добавьте Ежедневно в нужное время.
  4. Во вкладке Действия укажите Запуск программы и введите:
    taskkill /IM chrome.exe /F
  5. Сохраните задачу.

Теперь ваш «замок» – расписание, которое автоматически закрывает программу.


Пример полного решения: «Голосовой замок + USB‑ключ»

Сочетание нескольких методов повышает надёжность. Ниже – сценарий, который закрывает
Notepad только если одновременно выполнены два условия:

  • USB‑ключ подключён (аппаратный замок).
  • Пользователь произнёс команду «закрыть блокнот» (голосовой замок).

Скрипт AutoHotkey (отслеживание USB)

#Persistent
SetTimer, CheckUSB, 1000
USBConnected := false
return

CheckUSB:
 DriveGet, List, List
 USBConnected := false
 Loop, Parse, List, `n
 {
 Drive := A_LoopField . ":"
 DriveGet, Serial, Serial, %Drive%
 if (Serial = "12345678")
 {
 USBConnected := true
 break
 }
 }
return

Скрипт PowerShell (голос)

Add-Type -AssemblyName System.Speech
$rec = New-Object System.Speech.Recognition.SpeechRecognitionEngine
$grammar = New-Object System.Speech.Recognition.Grammar([System.IO.Path]::Combine($PSScriptRoot, "close_notepad.xml"))
$rec.LoadGrammar($grammar)

$rec.SpeechRecognized.Add({
 param($s,$e)
 if ($e.Result.Text -eq "закрыть блокнот") {
 if (Get-Variable -Name USBConnected -Scope Script -ErrorAction SilentlyContinue) {
 if (USBConnected) {
 Write-Host "Условие выполнено – закрываю Notepad"
 Stop-Process -Name "notepad" -Force
 } else {
 Write-Host "USB‑ключ не найден – действие отменено"
 }
 }
 }
})

$rec.SetInputToDefaultAudioDevice
$rec.RecognizeAsync([System.Speech.Recognition.RecognizeMode]::Multiple)
while ($true) { Start-Sleep -Seconds 1 }

Запустите оба скрипта (AHK и PowerShell). Теперь программа закроется только при
совпадении двух «замков» – физического и голосового.


Советы по безопасности

  • Тестируйте скрипты в безопасной среде. Принудительное завершение процессов может привести к потере несохранённых данных.
  • Не используйте замки для критически важных сервисов. Для серверных приложений лучше применять Windows Service Recovery.
  • Ограничьте доступ к скриптам. Храните их в папке с правами только у администратора.
  • Регулярно проверяйте обновления драйверов USB‑ключей. Устаревший драйвер может вызвать ложные срабатывания.

Часто задаваемые вопросы (FAQ)

Можно ли закрыть программу без её названия?

Да. Используйте WinClose в AutoHotkey с указанием класса окна (ahk_class) или
по части заголовка (WinTitle).

Что делать, если Alt + F4 не работает?

Попробуйте:

  • Ctrl + Shift + Esc → Диспетчер задач → «Завершить задачу».
  • Команду taskkill /F /IM имя.exe в командной строке.
  • Перезагрузить компьютер, если процесс «завис» в ядре.

Как сделать «замок», который будет работать только в определённом приложении?

В AutoHotkey используйте директиву #IfWinActive:

#IfWinActive ahk_exe chrome.exe
^!z::WinClose, ahk_exe chrome.exe
#IfWinActive

Можно ли использовать смартфон как замок?

Да. С помощью приложений типа Unified Remote или Tasker можно отправлять
команды на ПК через Wi‑Fi, которые будут обрабатываться скриптом и закрывать нужные программы.


«Замок» – это гибкий инструмент, позволяющий закрывать программы не только привычными
клавиатурными сочетаниями, но и через физические токены, голосовые команды,
расписание или комбинацию нескольких факторов. Выбор метода зависит от ваших
потребностей:

  • Для быстрой реакции – Alt + F4 или Ctrl + W.
  • Для автоматизации без участия пользователя – скрипты AutoHotkey, Python и Планировщик задач.
  • Для повышенной надёжности – аппаратный USB‑замок в паре с голосовым управлением.

С помощью представленных примеров вы сможете собрать собственный «замок», который
закроет любую программу «своим рот», будь то клавиатура, USB‑ключ или ваш голос.