$i = 0
Do
If ProcessExists("test.au3") Then
Sleep(10000)
Else
Run( @ScriptDir & "\test.au3")
$i = $i + 1
EndIf
Until $i = 10 ;
#include <WinAPIProc.au3>
Global $hToken, $aAdjust, $aProcList, $sScipt, $sStr
$sScipt = @ScriptDir & '\Script.au3' ; Проверяемый скрипт
$sStr = 'Скрипт: "' & $sScipt & '"' & @LF & 'Выполняет программа:' & @LF
$hToken = _WinAPI_OpenProcessToken(BitOR($TOKEN_ADJUST_PRIVILEGES, $TOKEN_QUERY))
_WinAPI_AdjustTokenPrivileges($hToken, $SE_DEBUG_NAME, $SE_PRIVILEGE_ENABLED, $aAdjust)
$aProcList = ProcessList()
$sScipt = StringReplace($sScipt, '"', '')
For $i = 1 To $aProcList[0][0]
$sCommLine = StringReplace(_WinAPI_GetProcessCommandLine($aProcList[$i][1]), '"', '')
If Not StringCompare($sCommLine, $sScipt) Then _
$sStr &= ' - "' & _WinAPI_GetProcessFileName($aProcList[$i][1]) & '" (PID: ' & $aProcList[$i][1] & ')' & @LF
Next
_WinAPI_AdjustTokenPrivileges($hToken, $aAdjust, 0, $aAdjust)
If $hToken Then _WinAPI_CloseHandle($hToken)
MsgBox(262144, Default, $sStr)
$Command=@ScriptDir&'\test.exe'
Local $i=0
Do
If Not ProcessExists("test.exe") Then
RunWait(@COMSPEC & ' /c '&'"'&$Command&'"', "",@SW_HIDE) ; ShellExecute($Command)
$i+=1
ConsoleWrite(@CRLF&'Запущен: '&$i)
EndIf
Sleep(300)
Until $i=10
tar сказал(а):как построить чтобы 10 раз запускать скрипт если не запущен.
#pragma compile(AutoItExecuteAllowed, True)
#include <WinAPIProc.au3>
Global $sMyScipt = @ScriptDir & '\test.au3' ; Проверяемый НЕскомпилированный скрипт
$sMyScipt = StringReplace($sMyScipt, '"', '')
For $i = 1 To 10
$aProcList = ProcessList()
If Not @error Then
For $j = 1 To $aProcList[0][0]
If Not StringCompare(StringReplace(_WinAPI_GetProcessCommandLine($aProcList[$j][1]), '"', ''), $sMyScipt) Then
ProcessWaitClose($aProcList[$j][1])
ExitLoop
EndIf
Next
EndIf
RunWait('"' & @AutoItExe & '" /AutoIt3ExecuteScript "' & $sMyScipt & '"', '', @SW_HIDE)
Next
#pragma compile(AutoItExecuteAllowed, True)
важно помнить, что если код имеет подключаемые библиотеки, то он работать не будет. лучше компилировать код в a3x , тогда он может быть запущен основным, скомпилированным, кодомпозволит вам выполнять ваши нескомпилированные скрипты при помощи данного скомпилированного скрипта на ОС где не установлен Autoit.