Цитата:
Сообщение от Krysanov
и как это можно использовать? Не понял? Вот скрипт обнаруживает наличие процесса, например, iCarDS.exe и что дальше? Надо его закрывать .. Если процесс отсутствует, то скрипт выполняет следующую функцию 
|
Смысл слежения за процессом iCarDS.exe вот в чем:
- Если в течение заданного определенного времени, например, 3 сек, после выполнения команды WinClose("iCar DS") процесс iCarDS.exe все еще висит в памяти, то он принудительно завершается. Т.е. если iCarDS заглючил и подвис при закрытии, он будет принудительно убит, и только потом Windows уснет.
- Если же iCarDS закрылся быстрее 3 сек, то скрипт сразу же начинает выполняться дальше, а не ждет истечения 3 сек. В результате - более быстрое наступление сна.

Функция Suspend будет такая:
Код:
; Вход в спящий режим
Func Suspend()
; Закрываем iCarDS
WinClose("iCar DS")
; Закрываем программу по коннекту интернета
;WinClose("SP Dialer")
; Закрываем GpsGate
WinClose("Franson GpsGate")
; Закрываем BlueStacks
ShellExecute("C:\Program Files (x86)\BlueStacks\HD-Quit.exe")
If (ProcessWaitClose("iCarDS.exe", 3) == 0) Then
ProcessClose("iCarDS.exe")
EndIf
EndFunc
Цифра 3 в команде ProcessWaitClose - это и есть количество секунд ожидания завершения iCarDS до принудительного убития. В принципе, можно и 10 сек поставить, все равно такая пауза будет только тогда, когда iCarDS зависнет.
В варианте просто с паузой скрипт по любому будет ждать 3 сек, даже, если iCarDS закрылся за 1 сек. А если iCarDS заглючил, то при выходе из сна глюки продолжатся.