hi leute...es geht um folgendes...ich habe mir background program geschrieben, welches die ganze zeit im hintergrund läuft. dabei werden an einer stelle verschiedene prozesse abgefragt, ob diese gerade laufen. bei manchen sollen dann gewisse daten gesichert werden, sobald die nicht mehr laufen. wenn ich nun ein program (z.B. Baldurs Gate 2) starte befindet sich mein backgroundprogram wie angegeben im "schlafmodus" und sobald ich nun Baldurs Gate 2 beende sichert mein program gewisse daten und kopiert sie auf eine andere festplatte. das funktioniert auch super. doch sobald ich dann Baldurs Gate 2 erneut starte (nachdem der kopiervorgang beendet ist) und im spiel speicher will kommt die meldung, dass das spiel nicht gespeichert werden konnte. doch sobald ich nun mein backgroundprgram beende und es erneut versuche klappt es. wahrscheinlich gibt autoit die daten nicht wieder frei kann mir ein bei dem problem helfen? das problem entsteht allerdings nur wenn die funktion "_GUIBackUps($s_source, $s_destination)" aufgerufen wird.
hier man codeausschnitte die vielleicht wichtig sein könnten:
Spoiler anzeigen
die überprüfung ob die prozesse gerade laufen oder nicht
[autoit]For $i = 1 To $a_backups_process_schleife[0][0]
If ProcessExists($a_backups_process_schleife[$i][1]) Then
_ProcessWaitClose($a_backups_process_schleife[$i][1])
Sleep(1000)
If Ceiling(DirGetSize($a_backups_source_schleife[$i][1]) / 1024 / 1024) > 5 Then
_GUIBackUps($a_backups_source_schleife[$i][1], $a_backups_destination_schleife[$i][1])
Else
DirCopy($a_backups_source_schleife[$i][1], $a_backups_destination_schleife[$i][1], 1)
EndIf
MsgBox(64, "Info", "Daten von '" & $a_backups_process_schleife[$i][1] & "' wurden erfolgreich gesichert!", 3)
EndIf
Next
die funktion "GUIBackUps($s_source, $s_destination)" die wahrscheinlich für mein problem verantwortlich ist
die funktion "_FileFindAll($s_source, $a_data)" dient nur zur rekursiven dateinfindung
die funktion "_GetDataName($a_data[$i])" gibt, wie man sich bestimmt denken kann, lediglich den dateinamen zurück
Func _GUIBackUps($s_source, $s_destination)
Local $a_data[1] = [0]
_FileFindAll($s_source, $a_data)
[/autoit] [autoit][/autoit] [autoit]Local $h_GUI = GUICreate("Background - Backups", 300, 50, -1, -1, BitOR($WS_BORDER, $WS_POPUP))
Local $h_label = GUICtrlCreateLabel("", 5, 5, 290, 20)
Local $h_progress = GUICtrlCreateProgress(5, 25, 290, 20)
GUISetState(@SW_SHOW, $h_GUI)
For $i = 1 To $a_data[0]
GUICtrlSetData($h_label, _GetDataName($a_data[$i]))
GUICtrlSetData($h_progress, ($i / $a_data[0]) * 100)
FileCopy($a_data[$i], $s_destination & "\" & StringTrimLeft($a_data[$i], StringLen($s_source)), 1 +
Next
GUIDelete($h_GUI)
EndFunc