Что нового

Процессы Как оставить работающим родительский процесс?

BlagoYar

Русь Великая, Очнись! Поднимись с колен Родная!
Сообщения
92
Репутация
-1
Есть такой вот скрипт
Код:
If WinExists(@ScriptName) Then Exit
AutoItWinSetTitle(@ScriptName)

Global $aProcNames[] = ["WoL 11111 [Reboot to Win7].exe","WoL 22222 [Reboot to E2B_PTN].exe","WoL 33333 [Reboot to Kubuntu]","WoL 44444 [Reboot to Easy2Boot].exe","WoL 50000 [Reboot to UEFI Shell].exe","WoL 55555 [Reboot to rEFInd].exe","WoL 60000 [Reboot to BIOS].exe","WoL 7 [Reboot].exe","WoL 9999 [Reboot to Arch].exe","WoL [Shutdown].exe"]

$iPingGlobal = Ping('google.com')

If $iPingGlobal > 0 Then
    For $Name In $aProcNames
            Run($Name)
            Sleep(2000)
    Next
Else
    Exit
EndIf

Func _Service_Start($sService, $Computer = ".")
  ConsoleWrite($sService & @CRLF)
  Local $objWMI = ObjGet("winmgmts:\\" & $Computer & "\root\cimv2")
  If Not(IsObj($objWMI)) Then Return SetError(-2)
  Local $strQuery = "Select * from Win32_Service Where State = 'Stopped' And " & _
      "Name Like '"& $sService & "'"
  Local $colItems = $objWMI.ExecQuery($strQuery)
  If Not(IsObj($colItems)) Then Return SetError(-2)

  For $objItem in $colItems
    Return $objItem.StartService($objItem.Name)
  Next
  Return SetError(-1)
EndFunc   ;==> _Service_Start()

Называется "Run All.exe", после запуска которого запускаются программы из массива, после чего "Run All.exe" естественно завершается.
Как его оставить, чтобы он минимально "кушал" ресурсов?
 

All2khoff

Продвинутый
Сообщения
376
Репутация
68
Так как код скрипта приведен не полностью и совершенно не ясно что там будет происходить дальше, то беру за основу что заключить в цикл надо запуск приложений.
Код:
If WinExists(@ScriptName) Then Exit
AutoItWinSetTitle(@ScriptName)

Global $aProcNames[] = ["WoL 11111 [Reboot to Win7].exe","WoL 22222 [Reboot to E2B_PTN].exe","WoL 33333 [Reboot to Kubuntu]","WoL 44444 [Reboot to Easy2Boot].exe","WoL 50000 [Reboot to UEFI Shell].exe","WoL 55555 [Reboot to rEFInd].exe","WoL 60000 [Reboot to BIOS].exe","WoL 7 [Reboot].exe","WoL 9999 [Reboot to Arch].exe","WoL [Shutdown].exe"]

While True                            ;запускаем бесконечный цикл
$iPingGlobal = Ping('google.com')

    If $iPingGlobal > 0 Then
        For $Name In $aProcNames
            Run($Name)
            Sleep(2000)
        Next
            Sleep(30000)            ;после запуска всех программ из массива ждем 30 секунд перед следующим циклом проверок
    Else
        Sleep (10000)                ;вместо выхода из скрипта делаем паузу 10 секунд.
    EndIf
WEnd
 
Верх