Hallo,
ich will in einem Programm ein Netzlaufwerk erstellen. Dazu habe ich folgenden Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| function NetzlaufwerkVerbinden( Laufwerk: string; Pfad: string; Username: string; Password: string; RestoreAtLogon: boolean ): DWORD; var NetResource: TNetResource; dwFlags: DWORD; begin with NetResource do begin dwType := RESOURCETYPE_DISK; lpLocalName := PChar(Laufwerk); lpRemoteName := PChar(Pfad); lpProvider := nil; end;
if (RestoreAtLogon) then dwFlags := CONNECT_UPDATE_PROFILE else dwFlags := 0;
Result := WNetAddConnection2(NetResource,PChar(Password), PChar(Username),dwFlags); end; |
Zum Aufrufen habe ich dann:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure TMain.s_startClick(Sender: TObject); begin if (NetzlaufwerkVerbinden('X:', '\\127.0.0.1\test', 'Test', '', false)=0) then begin ShowMessage('Der Server wurde erfolgreich gestartet') ; status.Caption:='online' ; status.font.color:=clLime; end
else begin ShowMessage('Beim Starten des Servers ist ein Fehler aufgetreten'); status.Caption:='offline'; status.font.Color:=clRed; end; end; |
Zum trennen folgendes:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TMain.s_deaktivierenClick(Sender: TObject); begin
if WNetCancelConnection2('x:',0, True)=NO_ERROR then Showmessage('Server deaktiviert') else RaiseLastOSError; end; |
Nun habe ich ein kleines Problem. Wenn ich das Programm starte und das erste mal auf Starten drücke, also ein Netzlaufwerk erstellen will, kommt die Fehlermeldung. Wenn ich dann ein paar mal auf Verbinden und Trennen nacheinander gedrückt habe, gehts irgendwann. Weis jemand warum das so ist und wie man das umgehen kann?? Vielen Dank!
Viele Grüße
Styler
Die Rechtschreibfehler habe ich extra gemacht und dienen zur allgemeinen Belustigung.