Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wyłączenie windowsa - informacja dla programu

Ostatnio zmodyfikowano 2013-07-01 12:39
Autor Wiadomość
Admixior
Temat założony przez niniejszego użytkownika
Wyłączenie windowsa - informacja dla programu
» 2013-07-01 01:09:00
Witam,
Zna ktoś metody w jakich można zostać poinformowanym o zamykaniu windows'a i zablokować na chwilę czynność.
Mam na myśli coś takiego: jak ktoś nie zapisze pracy to często windows się nie zamknie*(1) tylko będzie czekał aż zapiszemy lub anulujemy zapisywanie pracy.
Jak takie coś zrobić by moja appka tak miała? Jak takie coś zrobić gdy nie ma okna(o ile jest różnica)? Czy trzeba mieć jakieś uprawnienia?
Każda odp. na temat mile widziana.

*(1) na win7 jest oczywiście przycisk wymuś zamknięcie.
P-86686
abdi
» 2013-07-01 01:18:17
http://msdn.microsoft.com/en-us/library/windows/desktop /aa376630(v=vs.85).aspx

Nazwa funkcji chyba mówi sama za siebie :P
Wymagany przywilej SE_SHUTDOWN_NAME, ale piszą że jest domyślnie aktywny.
Możesz spróbować bez.:)

P-86687
DejaVu
» 2013-07-01 02:43:07
@abdi: Nie sądzę, aby o to chodziło autorowi tematu :)

@Admixior: Wszystkie aplikacje dostają komunikat WM_CLOSE.
http://msdn.microsoft.com/en-us/library/windows/desktop /ms632617(v=vs.85).aspx

Z chwilą otrzymania komunikatu WM_CLOSE wywołujesz pytanie czy zapisać plik przed zamknięciem programu czy też nie i sprawę masz załatwioną.
P-86691
xevuel
» 2013-07-01 08:33:03
windows się nie zamknie*(1) tylko będzie czekał aż zapiszemy lub anulujemy zapisywanie pracy.
Z tym, że jeśli nie wyrobimy się w timeoucie, to zamknie się i tak.

Wymagany przywilej SE_SHUTDOWN_NAME, ale piszą że jest domyślnie aktywny.
Co prawda jest on zazwyczaj obecny w tokenie procesu, ale ze stanem SE_PRIVILEGE_DISABLED (poprawcie, jeśli się mylę), więc nic to nie daje.

@Admixior: Wszystkie aplikacje dostają komunikat WM_CLOSE.
Czy aby na pewno WM_CLOSE? Są to raczej WM_QUERYENDSESSION oraz WM_ENDSESSION.
P-86692
Bajt
» 2013-07-01 09:03:56
Hmm... Cóż, często używaną przeze mnie funkcją dla zamykania Windows'a, jest komenda, którą można uzyskać w poczciwym CMD.

shutdown -s //-s, to zamknięcie, -r to restart, -t to czas po jakim ma się zamknąć Windows itd.
Kiedy komenda się uruchomi, Windows wyświetla stosowny komunikat. Aby przerwać zamykanie, należy wklepać komendę:

shutdown -a
P-86695
pekfos
» 2013-07-01 12:39:34
P-86717
« 1 »
  Strona 1 z 1