Autor Beitrag
Mias
Hält's aus hier
Beiträge: 1



BeitragVerfasst: So 07.03.21 19:53 
Hello World :)

Ich nutze CreateFileW und nachfolgend GetFinalPathNameByHandleW um das Ziel eines SymLinks herauszubekommen. Also ich greife auf Ordner zu und nicht auf Dateien. Das klappt soweit auch alles. Ich übergebe "\\?\" und bei einem Netzwerkpfad natürlich "\\UNC\" voran. Bei einem Netzwerkpfad geht dies aber nur, wenn man sozusagen schon eingeloggt ist. Das ist klar. Wenn man noch nicht eingeloggt ist, gibt es natürlich ein Fehler.

CreateFileW liefert mir jedenfalls hier "INVALID_HANDLE_VALUE".
Nachfolgend mit GetLastError bekomme ich den Code "123". Also auf gut Deutsch "Die Syntax für Dateiname, Verzeichnisname oder Datenträgerbezeichnung ist falsch.". Damit kann ich dann natürlich nicht arbeiten. Bekommt ihr in diesem Fall auch diesen Code?

Gerne hätte ich aber einen anderen Code, der mehr aussagt und ich darauf richtig reagieren kann, sprich in diesem Fall, ich dem Benutzer dann eine Login-Möglichkeit geben kann. Um einen richtigen Fehlercode zu bekommen, muss man manchmal zuvor andere Funktionen nutzen. Deshalb meine Frage, ob das mit "123" hier eine normale Geschichte ist und wenn ja, welche Funktion ich zum prüfen einer Netzwerk-Verbindung dann zuvor nehmen kann?

Mein CreateFileW rufe ich so auf:
ausblenden Delphi-Quelltext
1:
LH := CreateFileW(PWideChar(Path),0,FILE_SHARE_READ,Nil,OPEN_EXISTING,FILE_FLAG_BACKUP_SEMANTICS,0);					

LH ist ein THandle

Moderiert von user profile iconTh69: B- durch Delphi-Tags ersetzt
Moderiert von user profile iconTh69: Delphi-Tags hinzugefügt