Hallo zusammen,
ich hab ein Skirpt um via devcon bestimmte Hardware zu reseten.
Dabei verwende ich die Parameter: "diabale & enable" oder "restart" (Problem besteht bei beiden Möglichkeiten)
Spoiler anzeigen
Func _Devcon($aID, $mode)
If Not FileExists($devcon) Then
If $writelog Then _FileWriteLog($ci_log, 'Devcon.exe nicht gefunden - Programm beendet', 1)
_Exit()
EndIf
Local $ID, $run, $msg
Switch $mode
Case 1
For $i = 1 To $aID[0][0]
$ID = "@" & $aID[$i][1]
$run = Run($devcon & ' restart ' & $ID, @SystemDir, @SW_HIDE, $STDOUT_CHILD) ; refresh
While 1
$msg &= StdoutRead($run)
If @error Then ExitLoop
WEnd
If $writelog Then _FileWriteLog($ci_log, 'Devcon return Message: ' & $msg, 1)
Sleep(1000) ;1 Sekunde warten
$msg = ''
Next
Case 0
For $i = 1 To $aID[0][0]
$ID = "@" & $aID[$i][1]
$run = Run($devcon & ' disable ' & $ID, @SystemDir, @SW_HIDE, $STDOUT_CHILD) ; deaktivieren
While 1
$msg &= StdoutRead($run)
If @error Then ExitLoop
WEnd
If $writelog Then _FileWriteLog($ci_log, 'Devcon return Message: ' & $msg, 1)
Sleep(4000) ;4 Sekunden warten
[/autoit] [autoit][/autoit] [autoit]$run = Run($devcon & ' enable ' & $ID, @SystemDir, @SW_HIDE, $STDOUT_CHILD) ; aktivieren
$msg = ""
While 1
$msg &= StdoutRead($run)
If @error Then ExitLoop
WEnd
If $writelog Then _FileWriteLog($ci_log, 'Devcon return Message: ' & $msg, 1)
Sleep(1000) ;1 Sekunde warten
$msg = ''
Next
EndSwitch
EndFunc ;==>_Devcon
[/autoit]Manchmal kommt es jedoch vor, dass Devcon einen reboot vom System anfordert.
Die Rückgabenachricht sieht dann so aus:
PCI\VEN_18C3&DEV_0720&SUBSYS_DD0018C3&REV_01\4&3694E160&0&00A9: Disabled on reboot
The 1 device(s) are ready to be disabled. To disable the devices, restart the
devices or reboot the system
Ein wirkliches Muster kann ich nicht erkennen. Das Problem tritt auch relativ selten auf.
Welche Gründe kann es dafür geben?
Gruß nuts