Что нового

Автоматический запуск скрипта после нажатия ЗАВЕРШЕНИЯ РАБОТЫ

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Как автозагрузиться первым?

Sky-WaLkeR
Ну, к примеру, так:
Создаём файл сценария "shutdown.vbs"
Код:
Option Explicit
Dim objWshShell

Set objWshShell = WScript.CreateObject("WScript.Shell")
objWshShell.Run "c:\shutdown\prog.exe", 1, True
Set objWshShell = Nothing
WScript.Quit 0

И поместим его в "C:\WINDOWS\System32\GroupPolicy\User\Scripts\Shutdown"

Далее:
"Пуск/Выполнить" в появившемся окне пишем "gpedit.msc", "Ок"
В окне "Групповая политика" выбираем "Конфигурация Windows/Сценарии/Завершение работы" добавляем наш сценарий, "Применить/Ок"

Саму программу "prog.exe" помещаем в "C:\shutdown"
Код:
Dim $aBMP[3] = ["Autoit.bmp", "Galaxy.bmp", "Windows.bmp"] ; Меняем на свои картинки. Путь C:\WINDOWS\
Dim $sVal = RegRead("HKEY_CURRENT_USER\Control Panel\Desktop", "Wallpaper")

_ChangeWallpaper($aBMP, $sVal) ; Гоняем картинки по кругу при каждом выходе из системы
Exit

Func _ChangeWallpaper($aBMP, $sVal)
	For $i = 0 To UBound($aBMP) -1
		If StringInStr($sVal, $aBMP[$i]) Then
			$i+=1
			If $i = UBound($aBMP) Then $i = 0
				RegWrite("HKEY_CURRENT_USER\Control Panel\Desktop", "Wallpaper", "REG_SZ", "C:\WINDOWS\" & $aBMP[$i])
			ExitLoop
		EndIf
	Next
	Return 1
EndFunc


Выходим из Windows и радуемся результату после нового входа в систему.
 

sss

Продвинутый
Сообщения
332
Репутация
96
Как автозагрузиться первым?

Garrett
Спасибо, то что нужно! Давно искал как сделать действия при выключении машины!
 

aleratorio

Осваивающий
Сообщения
85
Репутация
43
Как автозагрузиться первым?

Garrett сказал(а):
"Пуск/Выполнить" в появившемся окне пишем "gpedit.msc", "Ок"
В окне "Групповая политика" выбираем "Конфигурация Windows/Сценарии/Завершение работы" добавляем наш сценарий, "Применить/Ок"

А как можно это сделать незаметно для пользователя? Например на уровне правки значений реестра, или каких нибудь конфигурационных файлов?
 

VladUs

Скриптер
Сообщения
621
Репутация
181
Как автозагрузиться первым?

Вот еще способ, без gpedit.msc

Код:
$GUI = GUICreate("Test")
GUISetState(@SW_HIDE )
GUIRegisterMsg(0x0011, "_myfunc") ; Регистрируем функцию на сообщение Windows о завершении работы
While 1
	sleep (100)
WEnd	
Func _myfunc ()
	 RegWrite("HKEY_CURRENT_USER\Control Panel\Desktop", "Wallpaper", "REG_SZ", "C:\WINDOWS\Web\Wallpaper\Безмятежность.bmp")
EndFunc


При выключении или выходе из системы Windows отправляет всем приложениям сообщение WM_QUERYENDSESSION (0x0011) о завершении текущей сесии.
Скрипт получая это сообщение (событие) прописывает в ветке реестра нужное изображение.
 

aleratorio

Осваивающий
Сообщения
85
Репутация
43
Как автозагрузиться первым?

Так смысл в том, что бы скрипт запускался при завершении работы, а не висел в памяти.
 

Arei

Скриптер
Сообщения
938
Репутация
115
Как автозагрузиться первым?

А что скрипт нельзя спрятать?
 

aleratorio

Осваивающий
Сообщения
85
Репутация
43
Как автозагрузиться первым?

Arei сказал(а):
А что скрипт нельзя спрятать?

Нет меня интересует, как сделать, именно что бы система запускала скрипт при завершении работы.
Через gpedit.msc же работает, просто как прописать его туда автоматом, без появления каких либо диалоговых окон?
 

VladUs

Скриптер
Сообщения
621
Репутация
181
Как автозагрузиться первым?

Так смысл в том, что бы скрипт запускался при завершении работы, а не висел в памяти
Честно говоря я думал, что весь смысл это поменять рисунок рабочего стола... до загрузки в систему :-\
 

aleratorio

Осваивающий
Сообщения
85
Репутация
43
Как автозагрузиться первым?

VladUs сказал(а):
Честно говоря я думал, что весь смысл это поменять рисунок рабочего стола... до загрузки в систему :-\

Нет, это был не мой вопрос. Мой вопрос был:
Garrett сказал(а):
Garrett сказал(а):
Пишем скрипт, который будет запускаться при выходе из Windows...
aleratorio [?]
Да. Вариантов много. :smile:
Именно как запустить скрипт при выходе из Windows?

Пытался получить ответ в этой теме: http://autoit-script.ru/index.php?topic=3096.0 , но дискуссия переместилась сюда....
 

JFR

Новичок
Сообщения
6
Репутация
0
Попробуй снять в системе выключение компьютера с кнопки "PowerOff" , найти её при нажатии, и сделать так чтобы при нажатии этой кнопки запускался скрипт который делает нужные действия, а потом LogOff и PowerOff...
 
Верх