Autor Beitrag
Styler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 58

WinXP Home
Delphi 7 Studio Enterprise german
BeitragVerfasst: So 20.02.05 00:16 
Hallo,
ich will in einem Programm ein Netzlaufwerk erstellen. Dazu habe ich folgenden Code:
ausblenden 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:
ausblenden 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:
ausblenden 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.
Styler Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 58

WinXP Home
Delphi 7 Studio Enterprise german
BeitragVerfasst: 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:
ausblenden 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:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
if (NetzlaufwerkVerbinden('X:',
           '\\' GetComputerName '\test'//Wie krieg ich den ermittelten Namen hierrein??
           'Test',
           '',
           false)=0)

Vielen Dank!

_________________
Die Rechtschreibfehler habe ich extra gemacht und dienen zur allgemeinen Belustigung.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 58

WinXP Home
Delphi 7 Studio Enterprise german
BeitragVerfasst: So 20.02.05 14:47 
jo eigentlich schon^^
aber ich probiers halt gerne aus. learning by doing!!

_________________
Die Rechtschreibfehler habe ich extra gemacht und dienen zur allgemeinen Belustigung.