Термин «замок» в данном контексте – это любой механизм (аппаратный или программный), который
позволяет «запереть» действие закрытия программы и выполнить его только после выполнения
определённого условия. «Своим рот» – разговорное обозначение «своими силами», «своим способом».
В статье мы разберём, как создать такие «замки», используя клавиатурные комбинации,
скрипты, USB‑ключи и даже голосовое управление.
Что подразумевается под «замком»?
Слово «замок» может означать:
- Аппаратный замок – физический USB‑донгл, RFID‑карта, Bluetooth‑токен и т.п.
- Программный замок – скрипт, который «запирает» действие до появления определённого сигнала
(нажатия клавиши, получения команды от голосового ассистента, события в Планировщике). - Методологический замок – набор правил и сочетаний клавиш, которые гарантируют закрытие
программы даже в случае её зависания.
Ниже мы покажем, как реализовать каждый из этих вариантов.
Классические способы закрытия программы
Если «замок» – это просто надёжный способ закрыть приложение, то в первую очередь стоит знать
стандартные комбинации клавиш и инструменты Windows.
Сочетания клавиш
- Alt + F4 – закрывает активное окно. Работает в любой версии Windows.
- Ctrl + W – закрывает текущую вкладку/окно в большинстве браузеров и редакторов.
- Ctrl + Shift + Esc – открывает Диспетчер задач, где можно принудительно завершить процесс.
- Ctrl + Alt + Delete – открывает экран безопасности, откуда тоже можно вызвать Диспетчер задач.
Диспетчер задач
Для принудительного завершения процесса:
- Нажмите Ctrl + Shift + Esc → откроется Диспетчер задач.
- Выберите нужный процесс, нажмите «Завершить задачу» или правой кнопкой → «Завершить процесс».
Командная строка и 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
создать голосовую команду «закрыть браузер».
Подготовка
- Откройте Панель управления → Специальные возможности → Распознавание речи и включите его.
- Создайте Грамматику (файл
.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.
Создание задачи
- Откройте Планировщик задач (Task Scheduler).
- Выберите Создать задачу.
- Во вкладке Триггеры добавьте Ежедневно в нужное время.
- Во вкладке Действия укажите Запуск программы и введите:
taskkill /IM chrome.exe /F
- Сохраните задачу.
Теперь ваш «замок» – расписание, которое автоматически закрывает программу.
Пример полного решения: «Голосовой замок + 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‑ключ или ваш голос.