Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem mit Funktion WNetAddConnection2 (https://www.delphipraxis.net/81700-problem-mit-funktion-wnetaddconnection2.html)

Mackhack 2. Dez 2006 04:08


Problem mit Funktion WNetAddConnection2
 
Hallo DPler,

ich habe folgenden Code:

Delphi-Quellcode:
function TfoMain.RegLoginAndConnectRegistry(lpMachineName: String; hKey: HKEY;
           var phkResult: HKEY; User, Password: String): LongInt;
var
  lpNetResource: TNetResource;
begin
  with lpNetResource do
  begin
    dwType := RESOURCETYPE_ANY;
    lpLocalName := nil;
    lpProvider := nil;
    lpRemoteName:= PChar(lpMachineName + '\IPC$');
  end;
  Result := WNetAddConnection2(lpNetResource, PChar(Password), PChar(User), 0);
  if ( Result = NO_ERROR ) then
  begin
    Result := RegConnectRegistry(PChar(lpMachineName), hKey, phkResult);
  end
  else
  begin
    ShowMessage(SysErrorMessage(GetLastError));
  end;
end;
Wenn ich ihn ausfuehre hat Result 67 und somit OK! Ich bekomme aber die ShowMessage angezeigt und sobald ich sie mit OK wegklicke bekomme ihc mein richtiges Ergebnis.

Weis jemand warum?

Meniskusschaden 2. Dez 2006 09:53

Re: Problem mit Funktion WNetAddConnection2
 
Ich bin der Meinung, daß WNetAddConnection2 0 für "OK" und 67 für "The network name cannot be found" zurück liefert.

ringli 2. Dez 2006 11:38

Re: Problem mit Funktion WNetAddConnection2
 
Funktioniert der Code denn mit einer administrativen Freigabe (z.B. C$)? Ich bin nämlich der Meinung das man sich auf die IPC$-Freigabe überhaupt nicht verbinden kann.

Mackhack 2. Dez 2006 19:56

Re: Problem mit Funktion WNetAddConnection2
 
Wie schon gesagt,

ich bekomme die ShowMessage, klicke sie weg und bin verbunden mit dem anderen PC!

DGL-luke 2. Dez 2006 20:45

Re: Problem mit Funktion WNetAddConnection2
 
stell mal die Optimierung aus ;-) die hat mir beim der WinAPI schon öfters Streiche gespielt....

EInfach {$O-} über die Funktion und {$O+} drunter.

Was steht denn in der MessageBox?

kannst es ja mal mit 0 probieren bzw. in die Messagebox zusätzlich den rückgabewert noch reintun.

Mackhack 2. Dez 2006 20:50

Re: Problem mit Funktion WNetAddConnection2
 
Hi Luke,

danke. Werd ich sofort probieren. Der Rueckgabewert ist 67 und als Fehler kommt dann ERROR_NO_NETWORK. Dann aber wie gesagt mit OK die ShowMessage weg und ich bin verbunden. Aber das kann ich ja so nicht wirklich lassen denn es ist ja dann nicht wirklich ein Error!

Christian Seehase 2. Dez 2006 23:53

Re: Problem mit Funktion WNetAddConnection2
 
Moin Mackhack,

ich hoffe doch mal, dass lpMachineName auch die führenden \\ beinhaltet.

Mackhack 2. Dez 2006 23:54

Re: Problem mit Funktion WNetAddConnection2
 
Inzwischen ja, seit ca. 1h!

Aber immer noch das gleiche Problem!

Mackhack 5. Dez 2006 15:12

Re: Problem mit Funktion WNetAddConnection2
 
Hi,

wie koennte ich denn pruefen ob RegConnectRegistry Nil ist? Denn laut MSDN wird die locale Registry ausgelesen/verbunden wenn es Nil ist. Da aber ja Result vom Typ LongInt ist weis ich nicht so recht wie machen. Mit Assigned(Result) will es nicht so wirklich!

Danke!

DGL-luke 5. Dez 2006 15:38

Re: Problem mit Funktion WNetAddConnection2
 
Öhm... entweder es ist ein Pointer (was ich mir nicht vorstellen kann; dann würde "null" im MSDN stehen) oder es ist ein Handle, in beiden Fällen kannst auf "=0" prüfen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:41 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz