AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Netzwerkordnerzugriff

Ein Thema von Moombas · begonnen am 28. Jun 2018 · letzter Beitrag vom 15. Okt 2019
Antwort Antwort
Seite 3 von 3     123
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
310 Beiträge
 
FreePascal / Lazarus
 
#21

AW: Netzwerkordnerzugriff

  Alt 1. Okt 2019, 08:14
Das wäre dann aber nur bei Lazarus so, bei Delphi lief das einwandfrei durch.
Wenn ich mir die Funktion jedoch anschaue, ist es wohl eher so, das es bei jedem Fehler, der nicht "ERROR_NOT_CONNECTED" entspricht ein leeres Ergebnis zurück gibt.
Delphi-Quellcode:
function ExpandUNCFileName (const filename:unicodestring) : unicodestring;
...
    if rc = NO_ERROR then
      Result := PRemoteNameInfoW(buf)^.lpUniversalName
    else if rc = ERROR_NOT_CONNECTED then
      Result := filename
    else
      Result := '';
...
Kann ich mir die Fehlermeldung, die bei "rc" rauskommt irgendwie ausgeben lassen ohne die "Systemfunktion" zu ändern?

..ohne diese Abfrage funktioniert es im Zweifelsfall auch, dennoch würde ich mich interessieren wie man das zum laufen bekommt, da ich hierbei ggf. wieder Unterschiede zwischen Delphi und Lazarus lernen könnte.
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.

Geändert von Moombas ( 1. Okt 2019 um 10:00 Uhr)
  Mit Zitat antworten Zitat
Incocnito

Registriert seit: 28. Nov 2016
30 Beiträge
 
#22

AW: Netzwerkordnerzugriff

  Alt 1. Okt 2019, 11:36
Hi,

vielleicht denke ich auch nur falsch, aber meiner Meinung nach kann
ExpandUNCFileName
nicht richtig arbeiten, solange die Verbindung zur IP selbst nicht
(mit WNetAddConnection2) bereits hergestellt ist.
Er kann den Rechner ja nicht fragen, weil er ja keine Rechte hat.

Ich hoffe, ihr wisst, worauf ich hinaus will!
"Henne-Ei-Problem"!

LG Incocnito
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
310 Beiträge
 
FreePascal / Lazarus
 
#23

AW: Netzwerkordnerzugriff

  Alt 1. Okt 2019, 15:01
Ich hab es erst mal auskommentiert, da es der letzte und einzige Part ist, den ich nun in Lazarus nicht zum laufen bekomme bzw. ohne den ich zurecht kommen würde.
Wenn jemand dafür dennoch eine Lösung weiß wäre ich dankbar.
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.357 Beiträge
 
Delphi 5 Professional
 
#24

AW: Netzwerkordnerzugriff

  Alt 1. Okt 2019, 15:28
Ist zwar nicht direkt eine Lösung, aber zumindest ein ganz pragmatischer Workaround gegen einen leere Rückgabe:
Delphi-Quellcode:
function _ExpandUNCFileName(const AFileName: UnicodeString): UnicodeString;
begin
    Result:= ExpandUNCFileName(AFileName);
    if Result = 'then
        Result:= AFileName;
end;
Weiß nicht, was die Lazarus/FreePascal-Entwickler dazu bewogen hat, die Funktion einen Leerstring zurückgeben zu lassen. Ist das so dokumentiert? Dann ist es soweit in Ordnung. Wenn nicht => Bugreport, damit es gefixt werden kann.

Grüße
Dalai
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
310 Beiträge
 
FreePascal / Lazarus
 
#25

AW: Netzwerkordnerzugriff

  Alt 2. Okt 2019, 10:04
Als "Dokumentation" bzw. Hilfe konnte ich nur das finden:
Zitat:
ExpandUNCFileName
Expand a relative filename to an absolute UNC filename.

Declaration
Source position: finah.inc line 31

function ExpandUNCFileName(

const FileName: UnicodeString

):UnicodeString;

function ExpandUNCFileName(

const FileName: RawByteString

):RawByteString;

Description
ExpandUNCFileName runs ExpandFileName on FileName and then attempts to replace the drive letter by the name of a shared disk.

Errors
None.
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
310 Beiträge
 
FreePascal / Lazarus
 
#26

AW: Netzwerkordnerzugriff

  Alt 8. Okt 2019, 10:33
Scheinbar ist das so gewollt:
Zitat:
The function does report an error:
Returning an empty string is returning an error. You can check on that.
I will add this to the documentation, however.
Auch wenn ich einen Leerstring nicht als error ansehen würde, da ich dann immer noch nicht weiß, was für ein Fehler aufgetreten ist aber naja die Doku soll angepasst werden.
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.328 Beiträge
 
Delphi 2006 Professional
 
#27

AW: Netzwerkordnerzugriff

  Alt 8. Okt 2019, 14:41
GetLastError?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
310 Beiträge
 
FreePascal / Lazarus
 
#28

AW: Netzwerkordnerzugriff

  Alt 11. Okt 2019, 14:29
Hab ich auch schon ausprobiert, bekomme ich leider nichts zurück ('').
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.357 Beiträge
 
Delphi 5 Professional
 
#29

AW: Netzwerkordnerzugriff

  Alt 11. Okt 2019, 15:08
Nichts kann bei GetLastError nicht sein, denn diese Funktion liefert einen Zahlenwert (DWORD). Trotzdem kann es passieren, dass GetLastError nicht hilft, denn wenn innerhalb von ExpandUNCFileName nach dem Aufruf der fehlerauslösenden API-Funktion noch andere API-Funktionen gerufen werden, wird der eigentliche Fehler u.U. verschleiert ...

Grüße
Dalai
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
310 Beiträge
 
FreePascal / Lazarus
 
#30

AW: Netzwerkordnerzugriff

  Alt 15. Okt 2019, 09:02
Das kann sein, das ich das GetLastError ggf. zu spät aufgerufen habe beim testen und dann überschrieben war. Will ich jetzt nicht ausschließen.

Da es aber auch ohne diesen Part bzw. mit dem Workaround von Dalai geht, ist es erst mal egal. Finde es nur etwas "seltsam" das das unterschiedlich behandelt wird...
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf