Discussion:
UNC - Pfad eines lokalen Laufwerkes
(zu alt für eine Antwort)
michaxx
2005-08-17 15:25:13 UTC
Permalink
Hallo,

mit WNetGetUniversalName bekomme ich zwar den gespeicherten UNC-Pfad
eines anderen
Laufwerkes im Netz, aber nicht den eines lokalen Laufwerkes.

Wie kann man den UNC-Pfad seines eigenen Laufwerkes ermitteln
also z.B. von C:\ (sprich von dem PC vor dem man gerade sitzt ;))

Danke & Gruss
Michael
Olaf Doschke
2005-08-17 15:35:19 UTC
Permalink
Post by michaxx
Wie kann man den UNC-Pfad seines eigenen Laufwerkes ermitteln
also z.B. von C:\ (sprich von dem PC vor dem man gerade sitzt ;))
"\\"+getenv("computername")+"\c$"

Wenn Du einen Freigabeordner innerhalb C: hast, dann kannst Du dessen
Namen direkt an
"\\"+getenv("computername")+"\"
anhängen.

Um eine Liste von Freigabeordnern und deren Namen zu kriegen gibt's
auch irgendwelche API-Aufrufe, bin ich aber momentan überfragt.

Tschüß, Olaf.
Udo Bierlage
2005-08-17 21:25:02 UTC
Permalink
Hallo Michael,
Post by michaxx
Hallo,
mit WNetGetUniversalName bekomme ich zwar den gespeicherten UNC-Pfad
eines anderen
Laufwerkes im Netz, aber nicht den eines lokalen Laufwerkes.
Wie kann man den UNC-Pfad seines eigenen Laufwerkes ermitteln
also z.B. von C:\ (sprich von dem PC vor dem man gerade sitzt ;))
Was ist denn der UNC-Name, wenn es nicht um Netzwerke geht?
Vielleicht \\LOCALHOST\C\ ???
Ein Laufwerk oder ein Verzeichnis kann ja sogar unter verschiedenen Namen
mit verschiedenen Benutzerrechten freigegeben sein.
Welche Namen das sind, sagt Dir die Funktion anetresoursses()

Grüße aus Königswinter

Udo Bierlage
Olaf Doschke
2005-08-18 08:55:12 UTC
Permalink
Post by Udo Bierlage
Was ist denn der UNC-Name, wenn es nicht um Netzwerke geht?
Vielleicht \\LOCALHOST\C\ ???
Wobei das dann nur am Rechner selbst geht, wie Du ja selbst sagst...
Post by Udo Bierlage
Ein Laufwerk oder ein Verzeichnis kann ja sogar unter verschiedenen Namen mit verschiedenen Benutzerrechten freigegeben sein.
Welche Namen das sind, sagt Dir die Funktion anetresoursses()
Ah, schön, Foxpros Arrayfunktionen: ANetResources(),
dann kommt man ja doch ohne API aus.

Tschüß, Olaf.
michaxx
2005-08-18 11:56:05 UTC
Permalink
geht schon um einen Netzwerkeinsatz!

Ansonsten ;)

Super ! und Danke für die Infos, da bin ich ja mal zuversichtlich, dass
ich das dann hinbekomme !


Gruss
Micha
Olaf Doschke
2005-08-18 12:12:06 UTC
Permalink
Noch'n Tipp:

Wenn getenv("Computername") nichts ausgibt (z.B. auf nem ollen Win98 Rechner),
dann den ersten Part von SYS(0) probieren, oder "die" IP-Adresse rausfinden,
wobei ein Rechner da mehrere haben kann (lokales Netzwerk/Internet). Da
kommt man z.B. mit

! ipconfig /all >d:\ipconfig.txt
? FileToStr("d:\ipconfig.txt")

an nötige Infos ran...

Tschüß, Olaf.
Udo Bierlage
2005-08-18 17:18:30 UTC
Permalink
Hallo Olaf,
Post by Olaf Doschke
Wenn getenv("Computername") nichts ausgibt (z.B. auf nem ollen Win98 Rechner),
dann den ersten Part von SYS(0) probieren, oder "die" IP-Adresse rausfinden,
wobei ein Rechner da mehrere haben kann (lokales Netzwerk/Internet). Da
kommt man z.B. mit
! ipconfig /all >d:\ipconfig.txt
? FileToStr("d:\ipconfig.txt")
an nötige Infos ran...
Hilft aber leider nicht, weil der Netzwerkredirektor erst seit WinNT mit
UNC-Namen, die eine IP-Adresse enthalten, umgehen kann. Außerdem muss ja
nicht jedes Netzwerk auf TCP/IP aufsetzen, auch wenn das mittlerweile
Standard ist.
SYS(0) bzw. ID() sind da schon der bessere Weg.

Grüße aus Königswinter

Udo Bierlage
Olaf Doschke
2005-08-19 14:19:13 UTC
Permalink
Hilft aber leider nicht, weil der Netzwerkredirektor erst seit WinNT mit UNC-Namen, die eine IP-Adresse enthalten, umgehen kann.
Bin mir nicht sicher, aber Win98 SE müßte \\127.0.0.1 auch verstehen.
Außerdem muss ja nicht jedes Netzwerk auf TCP/IP aufsetzen...
Das ist natürlich richtig.

Tschüß, Olaf.

Loading...