Existuje spôsob, ako zachytiť odhlásenie alebo vypnutie systému Windows v službe Windows zabudovanej v jazyku Java?
Chcem zachytiť udalosť systému Windows v službe Windows a po zachytení chcem poslať e-mail.
odpovede:
0 pre odpoveď č. 1Dostanete upozornenie v bežnom užívateľskom kóde prostredníctvom adresy WM_QUERYENDSESSION. Na prijatie tejto správy však musíte použiť JNI a vytvoriť okno, ku ktorému priradíte WndProc.
0 pre odpoveď č. 2
Nemyslím si, že tu máte čisté riešenie Java.
Vidím dva spôsoby.
Tento proces môžete spustiť ako službu systému Windows. Môžete teda predpokladať, že ak dôjde k jeho výpadku, stane sa to spolu s vypnutím tohto OS. Nie je to 100% správne, ale relatívne jednoduché.
Ďalším spôsobom je nájsť nejaký proces, ktorý sa spustí, keď OS klesá, a pokúsiť sa vykonať dotazovanie na procesy. Prípadne môžete pravdepodobne použiť WMI diania. Na pripojenie k WMI z Java môžete použiť jeden z: JaWin, J-integra, J-interop alebo si vytvorte vlastný skript WMI vo VBScript alebo JScript a spustite ho z Java pomocou CScript.