Hallo
Ich versuche gerade mit unteren Code aus einem Registryzweig Pfade auszulesen und diese in eine Textdatei zu speichern.
Er speichert mir aber immer nur jeweils eine Zeile in immer die gleiche Textdatei! Es soll aber zum Schluß so aussehen:
1. Treiberpfad: %SystemRoot%\NLDRV\010
2. Treiberpfad: %SystemRoot%\NLDRV\009
3. Treiberpfad: %SystemRoot%\NLDRV\008
4. ...
!! Aber Achtung so noch nicht ausführen, weil es sonst eine Endlosschleife wird !!
Spoiler anzeigen
Global $Output, $DevPath, $Textdat = (@TempDir & '\Treiberpfade_' & @UserName & '.txt')
;$DevPath = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion", "DevicePath")
$String='%SystemRoot%\NLDRV\010;%SystemRoot%\NLDRV\009;%SystemRoot%\NLDRV\008;%SystemRoot%\NLDRV\007;%SystemRoot%\NLDRV\006;%SystemRoot%\NLDRV\005;%SystemRoot%\NLDRV\004;%SystemRoot%\NLDRV\003;%SystemRoot%\NLDRV\002;%SystemRoot%\NLDRV\001;%SystemRoot%\inf'
$arSplit = StringSplit($String, ';');$DevPath
If $arSplit[0] = 1 Then
MsgBox(48, 'Fehler', 'Fehler! Soo geht`s net!')
Else
For $i = 1 To UBound($arSplit) -1
For $Element In $arSplit
$Output = $i & '. Treiberpfad: ' & $arSplit[$i]
_Save()
Next
Next
EndIf
Func _Save()
If _FileWriteLog($Textdat, $Output) = 1 Then
If MsgBox(262212, "Meldung", "Die Treiberpfad.txt ist erstellt worden." & @CRLF & _
"Treiberpfad.txt jetzt in Notepad ansehen?", 15) = 6 Then
ShellExecute($Textdat)
EndIf
EndIf
EndFunc ;==>_Save
Func _FileWriteLog($sLogPath, $sLogMsg, $iFlag = -1)
Local $iOpenMode = 2 ; 1 = An Textende dazuschreiben! , 2 = Überschreiben
Local $sMsg = $sLogMsg
If $iFlag <> -1 Then
$sMsg &= @CRLF & FileRead($sLogPath)
$iOpenMode = 2
EndIf
Local $hOpenFile = FileOpen($sLogPath, $iOpenMode)
If $hOpenFile = -1 Then Return SetError(1, 0, 0)
Local $iWriteFile = FileWriteLine($hOpenFile, $sMsg)
Local $iRet = FileClose($hOpenFile)
If $iWriteFile = -1 Then Return SetError(2, $iRet, 0)
Return $iRet
EndFunc ;==>_FileWriteLog