Цитата:
Сообщение от Krysanov
Апну вопрос. Очень часто такое происходит.. Причем и после обычного выключения (но не уверен на 100 процентов, тк пользуюсь сейчас смешанным режимом.. На работе, в гараже использую ПОИ, комп выключается совсем, завершая работу.. Если двигаюсь на авто, то использую гибридный режим..)
Никто не сталкивался?
|
Ты используешь полное выключение , тк есть проблемы ?
Мне хватает гибридного , сейчас настроил на идеальную работу этот
процесс . Перезапуск Икара (и др) все-таки оставил и все-таки отдельной прогой . Если правильно отстроить цепочку (открыть-закрыть) и использовать только
WinClose(" программа.exe") на входе (без
ProcessClose)
проблем не должно быть .
Для старта при обычной загрузке использую планировщик .
Примерный вид моего скрипта :
Код:
#NoTrayIcon
#RequireAdmin
#pragma compile(Icon, "C:\Program Files (x86)\AutoIt3\Icons\au3script_v9.ico")
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseUpx=y
#AutoIt3Wrapper_Run_AU3Check=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <WindowsConstants.au3>
; Это команда на сон
Global $PBT_APMSUSPEND = 0x0004
Global $PBT_APMRESUMESUSPEND = 0x0007
$hGUI = GUICreate("Restart", 100, 100, 1, 1)
GUIRegisterMsg($WM_POWERBROADCAST, "Standby")
While 1
$winList = WinList("[CLASS:TOverlayForm; W:77; H:73]")
If ($winList[0][0] = 1) Then
$hwnd = $winList[1][1]
WinSetTrans($hWnd, "", 50)
EndIf
Sleep(10000)
WEnd
Func Standby($hWnd, $Msg, $wParam, $lParam)
Select
; Вход в спящий режим
Case $wParam = $PBT_APMSUSPEND
Suspend()
; Выход из спящего режима
Case $wParam = $PBT_APMRESUMESUSPEND
ResumeSuspend()
Case Else
EndSelect
EndFunc
; Вход в спящий режим
Func Suspend()
WinClose("iCar DS")
WinClose("Vkey_ARDUINO")
WinClose("CityGuide")
WinClose("foobar2000")
EndFunc
; Выход из спящего режима
Func ResumeSuspend()
; Закрываем BlueSoleilCS
Run('taskkill /f /im BlueSoleilCS.exe',"", @SW_HIDE)
If (ProcessWaitClose("iCarDS.exe", 3) == 0) Then
WinClose("iCar DS")
EndIf
If (ProcessWaitClose("Vkey_ARDUINO.exe", 3) == 0) Then
ProcessClose("Vkey_ARDUINO.exe")
EndIf
If (ProcessWaitClose("foobar2000.exe", 3) == 0) Then
WinClose("foobar2000")
EndIf
Sleep(500)
ShellExecute("C:\Users\carPC\Documents\iCarDS\skins\Chameleon\Scripts\Vkey_СARDUINO.exe")
Sleep(1000)
; Запускаем iCarDS
ShellExecute("C:\Program Files (x86)\TipTop software\iCar DS\iCarDS.exe")
EndFunc
На выходе из сна - обычная проверка , если вдруг чего не успело закрыться + запуск...
Ещё возможное решение Твоего вопроса :
http://pccar.ru/showpost.php?p=345011&postcount=24