Перехват выключения/перезагрузки.

Обсуждение программ nnCron и nnCron LITE

Перехват выключения/перезагрузки.

Postby Halfer » Tue, 18 Aug 2009, 07:34

Известно, что если отловить момент остановки системы через условие WatchQueryShutdown, а затем прервать остановку через слово INTERCEPT-SHUTDOWN, а после продолжить выключение через слово CONTINUE-SHUTDOWN, то система вырубится. И не важно что хотел юзер, перезагрузить комп или выключить его. Система будет выключена в любом случае. Эта особенность уже известна нашим пользователям и они смирились. Но хотелось бы узнать, как можно при перезагрузке системы произвести именно перезагрузку, а не полную остановку операционки? Может есть какие-то методы?
Halfer
 
Posts: 395
Joined: Wed, 09 May 2007, 13:23

Re: Перехват выключения/перезагрузки.

Postby VoidVolker » Tue, 18 Aug 2009, 08:38

Вариант 1:
Code: Select all
MSG: "Ребут или перезагрузка?"
  IF  REBOOT  ELSE  SHUTDOWN  THEN


Вариант 2:
Code: Select all
3 S" Что делать?" DROP S" Ребут/Перезагрузка/отмена?" DROP 0 MessageBoxA
  CASE
    6 OF REBOOT ENDOF
    7 OF SHUTDOWN ENDOF
    DUP OF ENDOF
  ENDCASE


Вариант 3:
Создать ярлыки на задачи крона выход из системы/выключение/перезагрузку компа(либо повесить значок в трей с этими пунктами), а в меню "пуск" этот пункт заблокировать - окно с этими пунктами легко убивается/перемещается за пределы экрана.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2938
Joined: Tue, 25 Apr 2006, 17:56

Re: Перехват выключения/перезагрузки.

Postby Halfer » Tue, 18 Aug 2009, 09:15

Все варианты задействуют самого пользователя. Хотелось бы этого избежать. Нужно понять, чем отличается команда на отключение от команды на перезагрузку системы. Ведь как-то ОС понимает, когда нужно перезагрузиться, а когда нужно выключиться. Понимаю, что глубоко копнул, но интересно ведь понять этот процесс :-)
Halfer
 
Posts: 395
Joined: Wed, 09 May 2007, 13:23

Re: Перехват выключения/перезагрузки.

Postby BORODA(C) » Wed, 21 Oct 2009, 10:54

В WinXP я сделал так:
Code: Select all
#( Cleaner1
AsLoggedUser
LoadProfile
WatchQueryShutdown
WatchShutdown
Action:
   INTERCEPT-SHUTDOWN
   PAUSE: 5000
   ShowNormal   NormalPriority
   START-APPW: %ProgramFiles%\Wipe\Wipe
   REBOOT
)#

#( Cleaner2
AsLoggedUser
LoadProfile
WatchLogoff
Action:
   ShowNormal   NormalPriority
   START-APPW: %ProgramFiles%\Wipe\Wipe
)#


А вот смысл PAUSE: 5000 не понял, но в доке пауза указана.
User avatar
BORODA(C)
 
Posts: 22
Joined: Wed, 04 May 2005, 17:58

Re: Перехват выключения/перезагрузки.

Postby VoidVolker » Wed, 21 Oct 2009, 16:40

BORODA(C) wrote:А вот смысл PAUSE: 5000 не понял, но в доке пауза указана.

Пауза необязательна, в доке она является частью рабочего кода примера.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2938
Joined: Tue, 25 Apr 2006, 17:56

Re: Перехват выключения/перезагрузки.

Postby Halfer » Thu, 22 Oct 2009, 04:50

BORODA(C) wrote:В WinXP я сделал так:

а какой смысл у этой задачи, ведь после отработки произойдёт перезагрузка. а если нужно именно выключить систему?
мне больше нравится такой вариант:
Code: Select all
#( reboot

SingleInstance
AsLoggedUser

   \ отлавливаем момент отключения
   WatchQueryShutdown

Action:

   \ прерываем отключение и перехватываем управление
   INTERCEPT-SHUTDOWN

   TQUERY: "Выключить компьютер?" 10 Yes
      IF
         1
      ELSE
         0
      THEN

   \ продолжаем выключение
   0 =
      IF
         REBOOT
      ELSE
         SHUTDOWN
      THEN

   600000 PAUSE
)#
Halfer
 
Posts: 395
Joined: Wed, 09 May 2007, 13:23

Re: Перехват выключения/перезагрузки.

Postby AleXH » Wed, 19 Jun 2019, 21:25

Вот жеж, был не в курсе что код с прерыванием и последующим продолжением выключения будет приводить к выключению и при перезагрузке. - 3 дня воевал с мнимыми вирусами, драйверами, службами, пытаясь найти виновника выключения при перезагрузке, на 3-й день нашёл, пришёл возвестить об этом здесь и вижу, что, оказывается, об этом все знают, посыпаю голову пеплом :( :)
AleXH
 
Posts: 49
Joined: Sun, 31 Mar 2013, 10:23


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 1 guest