Ostatnio zapytano mnie, jak/jeśli to możliwe, że można to zrobić. Nie jestem pewien, czy to nawet możliwe, i od pewnego czasu szukam go.Jak sprawić, by program C++ nasłuchiwał poleceń systemowych?
Zasadniczo pobierzmy Windows
na przykład polecenie systemowe do wyłączenia komputera. Powiedzmy: shutdown -s -t 30 -c "Shutdown"
Czy istnieje sposób napisania programu, który będzie nasłuchiwać polecenia shutdown
, a następnie uruchomić shutdown -a
w odpowiedzi na przerwanie tego polecenia?
Krótko mówiąc, czy można go wysłuchać pewnych poleceń systemowych na komputerze i wykonać polecenia systemowe w odpowiedzi?
System Windows zawiera wszystkie rodzaje wiadomości, które przesyła. Jednym z nich jest "WM_QUERYENDSESSION". Kiedy już to zrobisz, możesz aktywnie wywołać 'shutdown -a'. Sprawdź tę stronę, aby uzyskać więcej szczegółów na temat zaszywania API http://www.codeproject.com/Articles/2082/API-hooking-realed. – RedX
Pamiętaj, że nie ma żadnego polecenia "shutdown" ** na poziomie Windows. Istnieje program Windows 'Shutdown.EXE', który wie, do którego podstawowego interfejsu API systemu Windows należy się odwoływać. Ale nie jest to jedyny program, który o tym wie. Na przykład. Explorer.EXE (odpowiedzialny za menu startowe) również to zna. Zatem wykrycie "shutdown.EXE" nie wpłynęłoby na zamknięcie programu Explorer.EXE. – MSalters