Anulowane zamknięcia systemu

Pisze aplikacje która przypomina o nie wyjętym pendivie i nie pozwala wyłączyć systemu. Udało mi się zatrzymać zamykanie ale pojawia się ten ekran “Te aplikacje blokują zamykanie systemu”. Czy dało by się to okno jakoś obejść? 

A może wywołać w tym momencie polecenie “shutdown /a”?

Niby jak mam uruchomić cmd jak system się zamyka? Każda próba otworzenia nowego okna zakończy się błędem 0x0000142. A tak poza tym to shutdown /a służy do anulowania odmierzania czasu, a nie zamykania systemu. Tutaj raczej trzeba sięgnąć po API Windowsa.

Nie wydaje mi się.

/a Przerywa zamykanie systemu.

 

Wobec tego sposób w jaki próbujesz zatrzymać zamykanie systemu zdaje się być nieprawidłowy. Myślę że okno “Te aplikacje blokują zamykanie systemu” nie pojawiłoby się, gdyby komenda została wydana w odpowiednim momencie. Być może WinAPI udostępnia jakieś zdarzenie pod które można się podpiąć aby wychwycić próbę zamknięcia systemu.

Wystarczy obsłużyć odpowiedni komunikat. Tak było w przypadku Windows XP.

Może, zamiast otwierać nowe okno, użyjesz funkcji języka standard C o nazwie system, o tak:

system(“shutdown /a”);