Что нового

Как перехватить сообщение Windows о завершении работы ?

endpoints

Новичок
Сообщения
26
Репутация
0
ну ошибка срабатывает в момент запуска батника только из этого скрипта, только у меня так ? ато проверил в чистой виртуальной машине в windows 7 тоже самое ...
 

joiner

Модератор
Локальный модератор
Сообщения
3,464
Репутация
609
endpoints
сделать копирование именно скриптом. это будет не менее быстро, чем xcopy
 

endpoints

Новичок
Сообщения
26
Репутация
0
да дело не в быстроте а то что у меня не копируются файлы , даже после снятия аттребутов, а вот xcopy батника успешно копирует все файлы...
пример строк которые не копируют файлы :
FileSetAttrib("z:\*.*", "-RASHNOT", 1)
DirCopy ("z:\", "c:\new", 1) или FileCopy("z:\*.*", "c:\new", 9)
1 файл и 1 папка скопировались а остальное нет...

Подскажите,пожалуйста, только у меня данная ошибка( которая на скрине)?
( чтобы проверить это достаточно подсунуть пустой bat файла к примеру: run("C:\test.bat") )
 

joiner

Модератор
Локальный модератор
Сообщения
3,464
Репутация
609
endpoints [?]
Подскажите,пожалуйста, только у меня данная ошибка( которая на скрине)?( чтобы проверить это достаточно подсунуть пустой bat файла к примеру: run("C:\test.bat") )

сделал батник с командой
Код:
xcopy D:\1\image.gif D:\2
прописал в функции
Код:
Func _ActionsOnExit()
    _WinAPI_ShutdownBlockReasonQuery($hWnd)
RunWait('C:\test.bat')
    _WinAPI_ShutdownBlockReasonDestroy($hWnd)
EndFunc   ;==>_ActionsOnExit

файл был скопирован при завершении работы
это я о проблеме с ком.строкой.
 

endpoints

Новичок
Сообщения
26
Репутация
0
Подскажите,пожалуйста, какая у вас версия autoit и windows ?
 

joiner

Модератор
Локальный модератор
Сообщения
3,464
Репутация
609
3.3.12.0
Win 10


Добавлено:
Сообщение автоматически объединено:

Дело может быть еще в другом - скрипт не всегда может перехватить момент завершения. У меня подобный код висит в процессах и не дает завершить работу системы. Своеобразная защита от шаловливых ручек моих детей. Но иногда сторонний софт завершает работу системы и прога не может тормознуть этот момент.
 

endpoints

Новичок
Сообщения
26
Репутация
0
Сеньк! только не хватает отзыва пользователей windows 7, ато у меня в чистой виртуальной машине в windows 7 тоже самое... пытался ее обновить, не помогло
joiner сказал(а):
3.3.12.0
Win 10


Добавлено:
Сообщение автоматически объединено:

Дело может быть еще в другом - скрипт не всегда может перехватить момент завершения. У меня подобный код висит в процессах и не дает завершить работу системы. Своеобразная защита от шаловливых ручек моих детей. Но иногда сторонний софт завершает работу системы и прога не может тормознуть этот момент.




я софтом еще не пробовал выключать, только вручную из пуска...
 

joiner

Модератор
Локальный модератор
Сообщения
3,464
Репутация
609
Своей софтиной основанной на подобном коде я пользуюсь ещё с семерки
 

endpoints

Новичок
Сообщения
26
Репутация
0
Решил проблему с помощью Send("{ENTER}") который жмет кнопку отмена на темном экране, и перезагрузка отменяется, а дальше выполняется остальной код и через Switch MsgBox выполняется перезагрузка или отключение питания или отмена... Вот только остались две проблемы : в случае отмены перезагрузки
1) юзер код запускается всегда повторно ( после первого выполнение юзер кода, через несколько секунд он обратно запускается и только после этого останавливается)
2) скрипт останавливается ( не вижу как грамотно зациклить скрипт чтобы он продолжал работу )
 
Верх