Недавно меня спросили, как / если это возможно, что можно сделать это. Я не уверен, возможно ли это вообще, и я некоторое время искал это.
В основном давайте Windows
например, есть системная команда для выключения компьютера. Скажем shutdown -s -t 30 -c "Shutdown"
Есть ли способ написать программу, которая будет слушать shutdown
команда, а затем запустить shutdown -a
в ответ на прерывание этой команды?
Короче говоря, можете ли вы заставить его прослушивать определенные системные команды на компьютере и выполнять системные команды в ответ?
Это действительно возможно. Однако ваш пример, вероятно, не самый лучший для описания общей проблемы. В Windows есть события сеанса, которые приложения могут прослушивать, и отключение является одним из них. И в конце концов, shutdown.exe
это не единственное приложение, которое может попросить Windows завершить работу.
В целом, однако, приложения, «прослушивающие» исполняемые команды, должны тесно интегрироваться с операционной системой. Вы можете себе представить, что антивирусное программное обеспечение делает именно это и многое другое, чтобы предотвратить выполнение
«Плохие» программы. Я не знаком с технологией Windows, но думаю, что перехватить системный вызов Windows, который выполняет двоичные файлы, — это способ сделать это. Наверняка это потребует «административных» разрешений и может даже потребовать написания модуля ядра.
Вы можете пойти по этому пути:
system("shutdown -a);
Ну, наверное, есть много более сложных способов сделать это. И я согласен с ответом @ VladLazarenko; такие программы, как антивирусы, продолжают слушать системные команды. Но я предполагаю, что для этого потребуются глубокие знания API. Это просто простой способ сделать это. Если вы не новичок, то вы должны посетить эту ссылку, http://www.codeproject.com/Articles/2082/API-hooking-revealed (из комментария @ RedX). Удачи! 🙂