Entwickler-Ecke
Internet / Netzwerk - Problem mit Netzlaufwerk erstellen
Styler - So 20.02.05 00:16
Titel: Problem mit Netzlaufwerk erstellen
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
Styler - So 20.02.05 13:54
ok problem hat sich gelöst, die Funktion braucht den Computernamen, nicht 127.0.0.1, warum auch immer. Mit PCNamen gehts. Aber noch kurz ne andere Anfängerfrage, bitte nicht lachen...
Ich habe folgenden Code um den Rechnernamen herauszufinden:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| function GetComputerName: String; var Len: DWORD; begin Len:=MAX_COMPUTERNAME_LENGTH+1; SetLength(Result,Len); if Windows.GetComputerName(PChar(Result), Len) then SetLength(Result,Len) else RaiseLastOSError; end; |
Wie binde ich jetzt den Namen an folgender Stelle ein:
Delphi-Quelltext
1: 2: 3: 4: 5:
| if (NetzlaufwerkVerbinden('X:', '\\' GetComputerName '\test', 'Test', '', false)=0) |
Vielen Dank!
Delete - So 20.02.05 14:10
Strings verbindet man mit dem "+" Operator. Meinst du nicht auch, dass es eventuell sinnvoll wäre erst mal die Grundlagen der Sparche zu lernen bevor man Windows Anwendungen versucht zu erstellen?
Styler - So 20.02.05 14:47
jo eigentlich schon^^
aber ich probiers halt gerne aus. learning by doing!!
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!