Jak wyświetlić komunikat potwierdzający, gdy system Windows zostanie zamknięty?

1

Chcę niestandardowego komunikatu potwierdzającego, gdy użytkownik wyłącza system Windows, ale powinny być pewne punkty:

  1. Gdy użytkownik próbuje się zamknąć, powinien wyświetlić komunikat potwierdzający.
  2. Jeśli użytkownik kliknie OK, zostanie zamknięty.
  3. Jeśli klikną przycisk Anuluj, okno również powinno zostać zamknięte, a niektóre unikalne wartości powinny zostać wprowadzone w bazie danych (serwer SQL).
Atul
źródło
Proszę określić, która wersja systemu Windows? Przepraszam, że całkowicie straciłeś mnie w ostatnim punkcie, co to znaczy? Proszę wyjaśnić.
avirk
ok avirk ... dotyczy wszystkich okien takich jak XP, Windows Server 2003, Windows7, a ostatnim punktem jest, gdy użytkownik kliknie przycisk Anuluj, a następnie okno się zamknie i jakiś unikalny numer trafi do bazy danych
Atul
A jakie to liczby?
avirk
dowolny unikalny numer jak 123145
Atul
2
Takie zachowanie zależy od implementacji każdej aplikacji, wykonanie tego w ten sposób jest łatwe, jeśli masz kod źródłowy. Nie ma nic można zrobić, aby przechwycić zamknąć aplikacje (bez jakiejś głębokiej integracji explorer.exe i prawdopodobnie sama oknami (jeśli to w ogóle możliwe))
Nifle

Odpowiedzi:

6

Dlaczego miałbyś tego potrzebować?

System Windows ma już wbudowaną funkcję zwaną śledzeniem zdarzeń zamykania. Jest on domyślnie włączony w systemach operacyjnych serwera i można go również włączyć za pomocą zasad grupy (na przykład za pomocą gpedit.msc) w wersjach systemu Windows na komputery.

Zrzut ekranu lokalnego edytora zasad grupy pokazujący opcję „Wyświetlaj śledzenie zdarzeń zamknięcia systemu”

Daje to możliwość:

  1. Unikaj, aby użytkownik przez pomyłkę wyłączał maszynę, wyświetlając okno dialogowe takie jak: Zrzut ekranu okna dialogowego Zamknij system Windows w systemie Windows 2008
  2. Śledź zdarzenia zamknięcia za pomocą Podglądu zdarzeń z bardziej szczegółowym widokiem.

Na przykład:

  • Bez włączonego śledzenia zdarzeń masz:

Kernel-Power: 109 Menedżer zasilania jądra zainicjował przejście do zamykania systemu.
Ogólne jądro: 13 System operacyjny zamyka się w czasie systemowym 2011 - 09 - 10T00: 23: 20.247232500Z.

  • Dzięki Shutdown Event Tracker masz:

USER32: 1074 Proces Explorer.EXE zainicjował ponowne uruchomienie komputera <Nazwa komputera> w imieniu użytkownika <Nazwa domeny> \ <Nazwa użytkownika> z następującego powodu: Utrata łączności z siecią (nieplanowany)
Kod przyczyny: 0x4050014
Typ zamknięcia: uruchom ponownie

Stąd, jeśli jesteś programistą lub możesz go zatrudnić, możesz łatwo utworzyć narzędzie, które będzie skanować Zdarzenia systemu Windows i importować istotne informacje do bazy danych, w tym użytkownika, który rozpoczął zamykanie systemu, lub powód .

Arseni Mourzenko
źródło
ok mainma thnx za cenne sugestie i porady
Atul
ale ten komunikat o wyskakującym okienku potwierdzającym, jak to pokazać?
Atul
@Atul: przepraszam, moja odpowiedź w tej kwestii była niejasna. Zobacz ostatnią edycję.
Arseni Mourzenko,
ok mainma .... dzięki twojej sugestii jest to komunikat potwierdzający zamknięcie okna? i jak pójdzie jedna unikalna wartość w bazie danych?
Atul
1
„Czy wyświetla komunikat potwierdzający zamknięcie systemu Windows?” : tak. „Jak pójdzie jedna unikalna wartość w bazie danych?” : jak powiedziałem w ostatnim akapicie mojej odpowiedzi, od ciebie zależy zbudowanie narzędzia, które wyodrębni dane z dziennika zdarzeń Windows, przekształci je i załaduje do bazy danych.
Arseni Mourzenko