Hallo,
Die adb.exe ist kein Windows Service sondern ein zusätzlicher daemon für die Android ENtwicklung. Man kann den Service nur über das starten der adb.exe starten und auch über das Beenden des Prozeses oder durch den adb kill-server befehl beenden.
Ich beende also den Service ganz normal, wie ich es auch per Hand tun würde.
Ich hatte halt Service eher mit Widowsdienst in Verbindung gebracht.
Er steigt bei der selben stelle nach dem ausführen von "fastboot flash recovery recovery.img" aus.
Ich denke da ist wieder das Problem, das Delphi bei einem Fehler nicht direkt an der Stelle in der Funktion steht bleibt, sonder außerhalb der Funktion. Beim zweiten rüber schauen über Tfmain.RunCaptured, ist mir das aufgefallen
Code:
CloseHandle(procInfo.hThread);
CloseHandle(procInfo.hProcess);
Windows.CloseHandle(tmp);
{ Die Ausgaben hinzufügen }
if KillProcess(GetProcessID('adb.exe')) = true then
in Verbindung mit dem
Code:
except
Windows.CloseHandle(tmp);
Windows.DeleteFile(PChar(tmpName));
raise;
end;
finally
end;
end;
Es könnt dazu kommen das
Windows.CloseHandle(tmp)
zweimal aufgerufen wird. Was Windows beim zweiten Aufruf macht weiß ich jetzt nicht. Aber ich könnte mir denkt das es zu deinem Fehler führt. Mach doch mal einen Haltepunkt nach dem except und schau ob er da vorbei kommt. Wenn du damit auch nicht weiterkommst bleibt dir wohl nichts anderes übrig als mal mit F7 durchzudebuggen.
einbeliebigername.