; Список всех служб через командную строку
#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