UNC-Name ermitteln [Erledigt]
Moderator: Moderatoren
-
- Rekursionen-Architekt
- Beiträge: 193
- Registriert: Fr, 09. Jun 2006 7:52
- Wohnort: Nähe Sömmerda
UNC-Name ermitteln [Erledigt]
Hallo XBaseler,
nach langer Abstinenz vom Forum habe ich mal wieder ein Problem:
Meine Applikation benötigt ein festes Mapping zu einem Server.
Beim Start möchte ich feststellen, ob das Mapping korrekt ist, z.B. Laufwerk X: mit Server \\Testserver\pfad
Wenn X: mit einem anderen Server gemountet ist will ich das Programm mit einer Fehlermeldung beenden. Der entsprechende Code muß in die AppSys integriert werden.
Könnt Ihr mir helfen?
Im voraus herzlichen Dank, Gerd
nach langer Abstinenz vom Forum habe ich mal wieder ein Problem:
Meine Applikation benötigt ein festes Mapping zu einem Server.
Beim Start möchte ich feststellen, ob das Mapping korrekt ist, z.B. Laufwerk X: mit Server \\Testserver\pfad
Wenn X: mit einem anderen Server gemountet ist will ich das Programm mit einer Fehlermeldung beenden. Der entsprechende Code muß in die AppSys integriert werden.
Könnt Ihr mir helfen?
Im voraus herzlichen Dank, Gerd
Zuletzt geändert von Gerd König am Mo, 03. Sep 2012 10:05, insgesamt 1-mal geändert.
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2936
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: UNC-Name ermitteln
Hallo,
evtl. mit
net use X: >tmp.dat
dann tmd.dat öffnen und Remotename auslesen. Ob es auch eleganter geht ?
evtl. mit
net use X: >tmp.dat
dann tmd.dat öffnen und Remotename auslesen. Ob es auch eleganter geht ?
Viele Grüße
Wolfgang
Wolfgang
-
- Rekursionen-Architekt
- Beiträge: 193
- Registriert: Fr, 09. Jun 2006 7:52
- Wohnort: Nähe Sömmerda
Re: UNC-Name ermitteln
Hallo Wolfgang,
daran habe ich auch schon gedacht, aber lieber wäre mir eine Windows-API-Funktion
Gruß Gerd
daran habe ich auch schon gedacht, aber lieber wäre mir eine Windows-API-Funktion
Gruß Gerd
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: UNC-Name ermitteln
Hi,
Phil hatte einen RUN Ersatz, der die temporäre Datei unnötig machte (vielleicht bei Pablo suchen), ansonsten müsste dieser Befehl das sein was du suchst:
nicht ganz einfach, aber machbar, eventuell hat Pablo auch dazu ein Beispiel
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Phil hatte einen RUN Ersatz, der die temporäre Datei unnötig machte (vielleicht bei Pablo suchen), ansonsten müsste dieser Befehl das sein was du suchst:
Code: Alles auswählen
DWORD WNetGetUniversalName(
_In_ LPCTSTR lpLocalPath,
_In_ DWORD dwInfoLevel,
_Out_ LPVOID lpBuffer,
_Inout_ LPDWORD lpBufferSize
);
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: UNC-Name ermitteln
Thomas BraunGerd König hat geschrieben:Meine Applikation benötigt ein festes Mapping zu einem Server.
Beim Start möchte ich feststellen, ob das Mapping korrekt ist, z.B. Laufwerk X: mit Server \\Testserver\pfad
Wenn X: mit einem anderen Server gemountet ist will ich das Programm mit einer Fehlermeldung beenden. Der entsprechende Code muß in die AppSys integriert werden.
6. Mai 2004
public.xbase++.generic
[HOWTO]: get the UNC name of a drive
Code: Alles auswählen
DLLFUNCTION WNetGetUniversalNameA( @cPfad, nInfoLevel, @cInfo, @nInfoLen ) USING OSAPI FROM mpr.dll
FUNCTION GetUncName( cPath )
LOCAL cInfo := SPACE(1000)
LOCAL nInfoLen := 1000
WNetGetUniversalNameA( @cPath, 1 , @cInfo, @nInfoLen )
cInfo := TRIM(SUBSTR(cInfo,5))
IF EMPTY(cInfo) // No UNC path (e.g. C:\)
cInfo := cPath
ENDIF
RETURN cInfo
dies ist nun die "einfache" Version. es gibt dazu aber noch einen Kommentar dazu von
Günter Beyes
10. Mai 2004
public.xbase++.generic
Re: [HOWTO]: get the UNC name of a drive
als Attachment hat Günter "seine" Version hinzugefügt.Your assumption may be correct, but since the DllCall invoking
WNetGetUniversalNameA has returned, the memory block containing a copy
of cInfo's content may not be locked any longer, with all dire
implications.
gruss by OHR
Jimmy
Jimmy
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: UNC-Name ermitteln
Der Zugriff ist schon recht "rustikal" (einfach 1000 Byte Blanks statt der Strukturen)
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: UNC-Name ermitteln
Ich habe mal nachgesehen, die verwendete Struktur hat aktuell nur eine Variable:
Code: Alles auswählen
// PowerBasic Code
%UNIVERSAL_NAME_INFO_LEVEL = &H00000001 // die wird oben verwendet
%REMOTE_NAME_INFO_LEVEL = &H00000002
TYPE UNIVERSAL_NAME_INFOA
lpUniversalName AS ASCIIZ PTR
END TYPE
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: UNC-Name ermitteln
die wollte ich mir auch mal ansehen, aber ich komme aktuell nicht auf den NEWS Server von Alaska ...AUGE_OHR hat geschrieben:als Attachment hat Günter "seine" Version hinzugefügt.
Gruß
Hubert
Hubert
-
- Rekursionen-Architekt
- Beiträge: 193
- Registriert: Fr, 09. Jun 2006 7:52
- Wohnort: Nähe Sömmerda
Re: UNC-Name ermitteln
@ Hubert und Jimmy
Vielen Dank Ihr beiden.
Das war genau das, was ich gesucht habe
Herzlichst, Gerd =D>
Vielen Dank Ihr beiden.
Das war genau das, was ich gesucht habe
Herzlichst, Gerd =D>
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2936
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: UNC-Name ermitteln [Erledigt]
Solltet ihr vielleicht in der Wissensbasis nochmal veröffentlichen.
Viele Grüße
Wolfgang
Wolfgang
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: UNC-Name ermitteln [Erledigt]
aber wenn bitte die Version von Günter Beyes !!!Wolfgang Ciriack hat geschrieben:Solltet ihr vielleicht in der Wissensbasis nochmal veröffentlichen.
wie ich ja zitiert habe wird der "memory block" ( Speicher ) in der "kurz" Version nicht wieder frei gegeben.
bei API Aufrufen "wirkt" der Xbase++ CG nicht, man muss schon selbst "aufräumen".
da man diese API Function jedoch wohl nur 1x beim starten der Application benötigt werden die Auswirkungen weniger Einfluss nehmen als wenn man die Function 1000x benutzt. Am Ende des Tages sollte man aber dann den PC runterfahren ( nicht StandBy ) damit er am nächsten morgen dann mit "frischen" Speicher den Tag übersteht.
gruss by OHR
Jimmy
Jimmy
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: UNC-Name ermitteln [Erledigt]
soweit ich das weiß, wird nach dem Ende des Programmes der Speicher der aus dem Programm heraus angefordert wurde wieder gelöscht.AUGE_OHR hat geschrieben:Wolfgang Ciriack hat geschrieben:da man diese API Function jedoch wohl nur 1x beim starten der Application benötigt werden die Auswirkungen weniger Einfluss nehmen als wenn man die Function 1000x benutzt. Am Ende des Tages sollte man aber dann den PC runterfahren ( nicht StandBy ) damit er am nächsten morgen dann mit "frischen" Speicher den Tag übersteht.
Ich such mal nach der von Günter
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: UNC-Name ermitteln [Erledigt]
Hi,
tatsächlich "frißt" die einfache Funktion Speicher, wenig aber immerhin, die von Günther nicht.
Hier mal die Testprogramme ...
tatsächlich "frißt" die einfache Funktion Speicher, wenig aber immerhin, die von Günther nicht.
Hier mal die Testprogramme ...
- Dateianhänge
-
- test.zip
- (1.99 KiB) 297-mal heruntergeladen
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: UNC-Name ermitteln [Erledigt]
sag ich doch ...brandelh hat geschrieben:tatsächlich "frißt" die einfache Funktion Speicher, wenig aber immerhin, die von Günther nicht.
nun sind 1000bit zwar nicht viel aber wenn man mehrere davon hat defragmentiert es den "grösst möglichen zusammenhängenden Speicherblock". es kann also sein das er 16GB so "durchlöchert" das man noch nicht mal 500MB "laden" kann weil nicht "zusammenhängend".
gruss by OHR
Jimmy
Jimmy