Entwickler-Ecke
Windows API - netzwerklaufwerk verbinden
webmaker - So 20.04.03 13:56
Titel: netzwerklaufwerk verbinden
Hi wie kann ich per API ein Netzwerklaufwerk verbinden und wieder entfernen. Als Parameter soll der Pfad und so angegeben werden. Danke schon mal!!!
webmaker - So 20.04.03 15:39
hi danke!!
Habe mir das gerade im MSDN angekuckt. Doch komme ich damit irgendwie nicht zurecht.
Ich beschriebe mene Problem mal genauer: Also ich ein Netzwerklaufwerk verbinden, dass nach einem Neustart wieder weg ist. Es soll auf eienn Linux Samba Server zugreifen. Man soll den LAufwerksbuchstaben, Passwort + Benutzername eingeben könen und natürlich den Pfad.
Mit NetShareAdd schint das ja nicht so ganz zu klappen. Kannst du oder wer anders mir das mal genauer erklären?
Achso man soll das Laufwerk dann halt im Explorer oder so sehen können und drauf zu greifen können
Danke schon mal
Delete - So 20.04.03 16:49
Hi webmaker.
Doch, du bist normalerweise richtig.
NetShareAdd müsste die Funktion sein, die hinter dem Dialog "Netzlaufwerk verbinden" steckt. Poste doch mal bitte, was du bisher versucht hast.
Dann lässt sich ein evtl. Fehler schneller finden als mit
Zitat: |
Doch komme ich damit irgendwie nicht zurecht. |
:)
webmaker - So 20.04.03 17:09
ich habe noch nicht richtig was geschafft.
HAbe eigentlich noch nicht mal die Defintion richtig verstanden:
Zitat: |
NET_API_STATUS NetShareAdd(
LPWSTR servername,
DWORD level,
LPBYTE buf,
LPDWORD parm_err
);
|
Also sowie ich das richtig verstanden habe, soll der Buffer dann der Laufwerksbuchstabe sein oder wie?
Servername ist klar. Bei den Levels kann man wahrschienlich nicht so was falsch machen.
Doch nun mene Frage: Wo kann ich Benutzername, Passwort und sowas hinterlegen?
Achso welche Unit muss ich erinbinden? Die im MSDN stehen, scheint es nicht zu geben. Heißen wohl anders?
Delete - So 20.04.03 17:34
@webmaker: Sorry, mein Fehler! Du willst eine Verbindung aufbauen, aber keine Freigabe erstellen. In dem Fall müssten die WNetAddConnection?-Funktionen richtig sein. Mit NetShareAdd erstellst du Freigaben. Ich schau mal, ob ich ein Beispiel finde, aber versprechen kann ich erst mal nix.
Sorry, nochmals.
webmaker - So 20.04.03 17:50
das ganze soll dann zb im Explorer ein Laufwerk werden. Das soll dann auf meinen Linux-Server und dort in ein bestimmten Ordner. Das ganzeläuft mit Samba. Also ich wenn ich manuell ein Laufwerk verbinde, dann verlangt er unter XP auch ein USernamen und einen PW.
Danke schonmal für eure Bemühungen!!!!!
Delete - So 20.04.03 17:58
Ungetestet, müsste aber klappen:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| var ner : TNetResource; res : dword; begin ner.dwType := RESOURCETYPE_DISK; ner.lpLocalName := 'Z:'; ner.lpRemoteName := '\\Rechner\Freigabename'; ner.lpProvider := nil;
res := WNetAddConnection2(ner, 'SuperGeheimesPwd', 'OttoNormalUser', 0);
if(res = NO_ERROR) then ShowMessage('Super, klappt ja!') else ShowMessage(Format('Fehler %d',[res])); end; |
Um mir Arbeit zu sparen, habe ich die Unit "JwaWinNetWk" von den
JEDIs [
http://www.delphi-jedi.org] benutzt. Musst mal schauen ob du die brauchst. Sie ist Teil der Win32-API-Translation. Kann man auf der JEDI-Page bekommen.
Und am besten noch mal im PSDK/MSDN wg. der Parameter gucken.
btw: Wenn du den Dialog aufrufen willst, dann schau dir mal
WNetConnectionDialog und
WNetDisconnectDialog an. :wink:
Gruß.
webmaker - So 20.04.03 18:11
Super!!! Danke klappt.
Ich brauchte aber die Unit nicht.
Nur noch eine Frage und zwar was hat es mit Übersetzung genau auf sich? Gibt es da eine genauere Dokumentation?
Delete - So 20.04.03 19:34
Übersetzung bezieht sich in dem Fall auf die Übersetzung der Header von C nach Delphi.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!