Название говорит обо всем. Я хотел бы настроить комбинацию клавиш в Windows 7, которая эквивалентна отправке "сигнала 9" программе в UNIX без возможности перехвата команды. Некоторые программы отказываются закрываться по Alt+F4, другие выскакивают подсказку, чтобы сохранить изменения файла или отменить.

Характеристики:

  • Комбинация клавиш, которая работает на 100% на любом несистемном критическом процессе.
  • Активная программа должна быть немедленно закрыта при получении комбинации клавиш. Его пространство памяти и системные ресурсы освобождаются настолько быстро, насколько позволяет операционная система, включая все дескрипторы файлов и каналов. Если программа находилась в процессе записи файла, она все равно обрезается и файл может быть поврежден.
  • Программа никак не может маневрировать вокруг команды отключения. Немедленное отключение означает немедленное отключение, оправдания не допускаются.

Я бы настоятельно предпочел решение, которое не требует сторонних инструментов, однако они приемлемы, если нет способа сделать это иначе.

1 ответ1

3

Если программа работает неправильно, она может вообще не принимать нажатия клавиш, поэтому невозможно гарантировать, что обычные комбинации клавиш Windows для завершения (Alt+F4 или Ctrl+C) будут работать. Поэтому, если эти нажатия клавиш не работают, вы должны использовать другой инструмент для завершения приложения.

Если вы хотите немедленно прекратить процесс, используйте Windows Taskkill или SysInternals (теперь часть Microsoft) PsKill. Во- первых создать CMD строку (терминал, для пользователей Unix) заранее с именем приложения или идентификатор процесса, например ,

taskkill /F /IM notepad.exe

Это принудительно завершит работу Блокнота, когда вы нажмете Enter в конце строки (т.е. одно нажатие клавиши).

Если вы заранее не знаете, какой процесс будет запущен, тогда используйте Windows Task Manager (системный монитор, для пользователей Unix) или Sysinternals * Process Explorer, который можно запустить с помощью Ctrl+Shift++Esc, определите процесс, щелкните по нему правой кнопкой мыши и убейте его. Хотя это не одно нажатие клавиши, это метод, который я предпочитаю.

В любом случае, Windows использует многозадачность с вытеснением, поэтому (по крайней мере, теоретически), уничтожение любого процесса должно освободить все ресурсы.

NB. Некоторые процессы не могут быть прерваны, даже если пользователь работает от имени администратора, например защищенный антивирусный процесс. Сначала защитный механизм должен быть отключен. Другие, такие как Windows Services и Explorer, могут перезапускаться после завершения.

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