Informacja od Windows o zbliżającym się restarcie

Informacja od Windows o zbliżającym się restarcie
robertz68
  • Rejestracja:ponad 18 lat
  • Ostatnio:około godziny
  • Lokalizacja:Zielona Góra
0

Słuchajcie, obsługując trochę serwerów co jakiś czas wchodząc na nie widzicie komunikat w stylu:

albo i nie widzicie, dostajecie tylko telefon że coś nie działa!

Oczywiście można to ignorować, blokować itp. ale w końcu wypadało by ten serwer zrestartować.
Problem polega na tym, że moi klienci najczęściej pracują w trybie ciągłym i nie mogę tak po prostu tego zrobić.

Pomyślałem jednak o prostej aplikacji która poinformowała by klienta że za ileś tam minut będzie restart serwera i powinien zapisać swoją pracę i poczekać aż serwer się podniesie. Oczywiście po restarcie serwera ponownie otrzymałaby stosowną informację ale to już jest proste.

Pytanie: jak odczytać z Windows że chce się restartować za ileś tam minut? Macie jakiś pomysł?

99xmarcin
Czyli restartoza i updateoza dopadły już nawet wersje serwerowe windowsa... Jak to są VMki to wystarczy przerzucić na inny serwer: https://www.sikich.com/insight/using-live-migration-to-move-virtual-machines-to-a-new-host/
robertz68
Ten mechanizm jest raczej do upgrade serwera lub zmiany wersji systemu ale rzeczywiście jest to ciekawe
woolfik
  • Rejestracja:ponad 17 lat
  • Ostatnio:14 minut
  • Postów:1598
4

Pewnie jest jakieś api do tego ale trzeba by poszukać. Alternatywą może być programik:
https://docs.microsoft.com/pl-pl/visualstudio/debugger/introducing-spy-increment?view=vs-2019
pobierasz handle tego okna i robisz sobie usługę, która przeszukuje wszystkie okna w poszukiwaniu tego konkretnego np classname / caption np poprzez EnumChildWindow i jak się pojawi to coś tam robisz swojego :)

Pogooglałem trochę i można spróbować zapiąć się na windows message:
WM_QUERYENDSESSION and WM_POWERBROADCAST

tu nawet projekt na github:
https://github.com/apriorit/OS-shutdown-winapi

edytowany 1x, ostatnio: flowCRANE
robertz68
oj, zapowiada się ciekawie, dzięki, zerknę na to
robertz68
  • Rejestracja:ponad 18 lat
  • Ostatnio:około godziny
  • Lokalizacja:Zielona Góra
0

z przechwytywaniem będzie ciężko, jest dużo rodzajów tych okien i wyłapanie ich będzie trwało miesiącami a i tak na końcu dowiem się że czegoś nie przewidziałem :(

PW
  • Rejestracja:ponad 9 lat
  • Ostatnio:5 miesięcy
  • Postów:130
2
edytowany 1x, ostatnio: flowCRANE
MA
Ten sposób zablokowania zamykania systemu przez przechwytywanie message'a WM_QueryEndSession i ustawianie mu result'a = 0 to już nie działa począwszy od zdaje się Visty. Lata temu to próbowałem i Windows sobie to olewał, ostatnio działało mi na '98-ce. 😁
Mariusz Bruniewski
Mariusz Bruniewski
  • Rejestracja:prawie 20 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Świecie
0

Zawsze możesz przechwycić wszystko w Windows. Jest jeden problem z jądrem środowiska Windows jeśli chodzi o przechwycenie jądra systemu, które samo wskazuje napraw lub uruchom w trybie normalnym. Dobrym przykładem są również przeglądarki internetowe.


Umysł pozytywny szuka sposobów, jak coś wykonać; umysł negatywny wyszukuje sposoby, by uzasadnić, że czegoś nie można zrobić.
~~ Napoleon Hill ~~
edytowany 1x, ostatnio: Mariusz Bruniewski

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.