Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi DFÜ Verbindung starten mit Password und Benutzer eingabe (https://www.delphipraxis.net/5993-dfue-verbindung-starten-mit-password-und-benutzer-eingabe.html)

Mr. Bean 25. Jun 2003 18:56


DFÜ Verbindung starten mit Password und Benutzer eingabe
 
Hallole
Ich habe folgendes Probelehm ich will ein Programm schreiben das die DFÜ Verbindung startet. Wenn bei der DFÜ Verbindung kein Passwort eingegeben ist soll eine abfrage zur
Passwort Eingabe erfolgen und anschließend die DFÜ Verbindung gestartet werden.
Ich habe schon rausgefunden wie man die DFÜ Verbindung Startet. Aber wenn kein Passwort eingegeben ist liefert die Funktion einen Fehler.
Delphi-Quellcode:
function DialDFUE(DFUEName : String; var ErrorCode : integer; var ConId :
  DWord) : boolean;

var ConNum : LPDWORD;
    ReturnCode : DWord;
begin
  result := false;
  ErrorCode := 0;
  New(ConNum);
  try
    ReturnCode := InternetDial(Application.Handle , PChar(DFUEName),
    INTERNET_AUTODIAL_FORCE_UNATTENDED, ConNum, 0);
    ErrorCode := ReturnCode;
    if ReturnCode = ERROR_SUCCESS then
    begin
      result := true;
      ConId := ConNum^;
    end;
  finally
    Dispose(ConNum);
  end;
end;
[Edit=Sakura]Delphi-Tags korrigiert. MfG.[/Edit]

Gast 1. Jul 2003 21:13

Grüß Gott.

Meinst du wie eine Anmeldung bei XP?

PhilGo

Mr. Bean 2. Jul 2003 14:35

Hallo PhilGo,

Ja so in der Art, aber für die DFÜ. Ich weiß nicht wie du dich in C++ auskennst aber hier ist mal ein Listing wie es in C++ Gelöst wurde.

Code:
bool RasDial(AnsiString slEntry)
{
  // Variablen
  RASDIALPARAMS pRasDialParams;
  BOOL blPw = true;
  HRASCONN hndConnection = NULL;
  DWORD dwError = 0;

  // RASDIALPARAMS-Struktur füllen:
  ::ZeroMemory(&pRasDialParams, sizeof(pRasDialParams));
  pRasDialParams.dwSize = sizeof(RASDIALPARAMS);
  strcpy(pRasDialParams.szEntryName, slEntry.c_str());
  if(RasGetEntryDialParams(NULL, &pRasDialParams, &blPw))
    return false;
  if(!blPw) // falls Kennwort nicht gespeichert, fragen:
  {
   // Passwort eingabe oder eintrag
    AnsiString slPw = "Hier das Passwort eingeben";
    if(slPw !=EmptyStr) strcpy(pRasDialParams.szPassword, slPw.c_str());
    else return false;
  }
  // Einwählen_
  dwError = ::RasDial(NULL, NULL, &pRasDialParams, 0,
    NULL, &hndConnection);
  if(dwError) return false;
  else return true;
}
Das Problem an der ganzen Sache ist das ich mich in C++ auch nicht sonderlich gut auskenne.
Deshalb kann ich auch nicht den C++ Code in Delphi übertragen.

Gruß
Mr Bean

Phoenix 2. Jul 2003 17:08

Mir sieht es sehr danach aus, als würde in der Methode
Code:
RasGetEntryDialParams(NULL, &pRasDialParams, &blPw)
Die Parameter in die Struktur pRasDialParams und das Passwort in die Struktur blPw geschrieben werden.

Versuch mal, diese RasGetEntryDialParams als API-Aufruf zu finden. Dann solltest Du auch nachgucken können, ob das PW hinterlegt ist oder nicht.

Chewie 2. Jul 2003 17:28

Nicht in die Struktur blPw - blPw ist eine Variable vom Typ Boolean.

Mr. Bean 3. Jul 2003 19:22

Hallo,

Vielen dank für eure Hilfe durch das suchen der Funktion RasGetEntryDialParams habe ich zwar keine API Funktion entdeckt. Aber dafür ein Beispiel Programm, was mir sehr geholfen hat.

Gruß

Mr. Bean

PS : Sollte jemand Interesse am Programm haben hier ist der Link
Creating your own dail-up application


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:06 Uhr.

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