Что нового

Список служб

musicstashall

Знающий
Сообщения
322
Репутация
7
Существует ли актуальный способ получить список всех служб? А так же управление службами, создание, удаление.
 

pvnn

Осваивающий
Сообщения
305
Репутация
32
Список служб:
https://autoit-script.ru/index.php?topic=6493.15

Код:
; Список всех служб через командную строку
 #include <Array.au3>
$Command='sc query'
$iPID = Run(@ComSpec &' /C '& $Command, @SystemDir,@SW_HIDE,$STDOUT_CHILD)
ProcessWaitClose($iPID) 			
$sOutputTXT = StdoutRead($iPID)		
$sOutputTXT=_DOS2WIN($sOutputTXT)	; Перевести в нормальную 1251 кодировку
Local $aArray = StringSplit($sOutputTXT,@CRLF) ; Считать данные в массив, с разделителем @CRLF
 _ArrayDisplay($aArray)
Exit

; Функция перевода текста cp866 в cp1251
Func _DOS2WIN($String)
    Local $sResult = "", $iCode
    Local $Var866Arr = StringSplit($String, "")
    For $i = 1 To $Var866Arr[0]
        $iCode = Asc($Var866Arr[$i])
        Select
            Case $iCode >= 128 And $iCode <= 175
                $Var866Arr[$i] = Chr ($iCode + 64)
            Case $iCode >= 224 And $iCode <= 239
                $Var866Arr[$i] = Chr ($iCode + 16)
            Case $iCode = 240  ; Ё
                $Var866Arr[$i] = Chr (168)
            Case $iCode = 241  ; ё
                $Var866Arr[$i] = Chr (184)
            Case $iCode = 252  ; №
                $Var866Arr[$i] = Chr (185)
        EndSelect
        $sResult &= $Var866Arr[$i]
    Next
    Return $sResult
EndFunc

Код:
#Include <Services.au3>

$arr = _Service_Enum($SERVICE_WIN32,$SERVICE_ACTIVE)
Local $List
For $i = 0 To UBound($arr)-1
	$List&="DisplayName: " & $arr[$i][1] & @CRLF
    ;ConsoleWrite("DisplayName: " & $arr[$i][1] & @CRLF) ; Вывод в консоль
Next

FileWrite(@ScriptDir&'\ServList.txt',$List)
ShellExecute(@ScriptDir&'\ServList.txt')

Управлять службами можно через UDF(Services.au3, SecurityEx.au3)
UDF Services.au3 здесь:
https://www.autoitscript.com/forum/topic/81880-windows-services-udf/#comment-587207

SecurityEx.au3 здесь:
https://www.autoitscript.com/forum/topic/75250-registry-udfs/#comment-545798

Код:
; Запуск службы  Смарт-Карты 
  #RequireAdmin
  #include <Services.au3>

_Service_SetStartType('SCardSvr',$SERVICE_AUTO_START) ; Тип запуска auto
_Service_Start('SCardSvr')                            ; Запуск службы  Смарт-Карты
 
Верх