Hatte mich eben gewundert, warum mein Programm, das sonst soweit einwandfrei funktioniert, auf einmal komplett hängt und sich selbst über den Taskmanager und Delphi "Ausführen abbrechen (Strg + F2)" nicht mehr beenden lässt. Sogar "Prozess beenden" brachte im Taskmanager nichts mehr.
Ursache des Ganzen: Ich habe mit FileExists einen
UNC-Dateipfad prüfen wollen, der aus der Einstellungs-Datei vom Kunden kommt. Dieser verweist auf einen PC/Server, den es bei mir im Netzwerk natürlich nicht gibt. Da Windows aber einen ziemlich hohen TimeOut für diese Überprüfung hat (schon so ~ 2 Minuten) wirkt das Programm wie abgestürzt.
Wer es selbst mal probieren möchte:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
t: string;
begin
t := 'c:\1.txt';
ShowMessage(BoolToStr(FileExists(t), True)); // Kein Problem
t := '\\foobarsample\foo\bar\file1.txt';
ShowMessage(BoolToStr(FileExists(t), True)); // mind. 2 Minuten warten, dann kommt die Meldung und das Programm reagiert wieder
end;