AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi DFÜ-Verbindung aufbauen, ohne DFÜ-Eintrag zu nutzen
Thema durchsuchen
Ansicht
Themen-Optionen

DFÜ-Verbindung aufbauen, ohne DFÜ-Eintrag zu nutzen

Ein Thema von Joe · begonnen am 23. Nov 2003 · letzter Beitrag vom 26. Apr 2005
Antwort Antwort
Joe

Registriert seit: 23. Nov 2003
Ort: Nürnberg
8 Beiträge
 
Delphi 4 Standard
 
#1

DFÜ-Verbindung aufbauen, ohne DFÜ-Eintrag zu nutzen

  Alt 23. Nov 2003, 12:53
Alle bisher gefundenen Beiträge konnten mir nicht helfen. Ich möchte eine DFÜ-Verbindung über Delphi aufbauen. Ich möchte dazu keinen DFÜ-Eintrag nutzen, (wenn einfach möglich). Alles bisher gefundene baut nur eine Standardverbindung auf, oder hat auf irgendwelche Seiten verwiesen, auf denen ich micht (wg. englischem Fachchinesisch) nicht zurechtfinde, da ich halt doch noch'n Anfänger bin.

Es würde mir auch schon reichen, wenn ich einen bestehenden DFÜ-Eintrag nutzen könnte, in dem das Passwort nicht verankert ist und ich über Delphi nur das eingeben muss. Zweck soll sein eine DFÜ-Verbindung nur über mein Delphi-Programm zu ermöglichen...
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#2

Re: DFÜ-Verbindung aufbauen, ohne DFÜ-Eintrag zu nutzen

  Alt 23. Nov 2003, 14:14
Hallo Joe,
schau mal unter RAS bei Torry nach. Da sollte was für Dich dabei sein.

bye
Claus
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Joe

Registriert seit: 23. Nov 2003
Ort: Nürnberg
8 Beiträge
 
Delphi 4 Standard
 
#3

Re: DFÜ-Verbindung aufbauen, ohne DFÜ-Eintrag zu nutzen

  Alt 23. Nov 2003, 14:16
Danke werd ich mal machen. Dank deinem Link weiss ich nun was mit Torry immer gemeint war... Wofür steht denn RAS?
  Mit Zitat antworten Zitat
sharkx

Registriert seit: 25. Feb 2003
Ort: St. Ingbert
211 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: DFÜ-Verbindung aufbauen, ohne DFÜ-Eintrag zu nutzen

  Alt 23. Nov 2003, 14:18
RAS = Remote Access Service
Programming today is a race between Software Engineers striving to build bigger and better idiot-proof Programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning!
  Mit Zitat antworten Zitat
Joe

Registriert seit: 23. Nov 2003
Ort: Nürnberg
8 Beiträge
 
Delphi 4 Standard
 
#5

Re: DFÜ-Verbindung aufbauen, ohne DFÜ-Eintrag zu nutzen

  Alt 24. Nov 2003, 00:34
Aha danke! Bin gespannt, wann ich hier das erste mal jmd. weiterhelfen kann.

Hab übrigens inzwischen was bei Torry gefunden. Alles sehr interessant und aufregend. Denke ich werde was mit anfangen können.

Danke euch!
  Mit Zitat antworten Zitat
andimx

Registriert seit: 14. Apr 2005
Ort: Hohenstein-Ernstthal
67 Beiträge
 
#6

Re: DFÜ-Verbindung aufbauen, ohne DFÜ-Eintrag zu nutzen

  Alt 25. Apr 2005, 16:12
Also ich hab das gleiche Problem. Entwickle ein Program für ein Hotel, welches seinen Kunden nur eine bestimmte Internet EInwahl anbieten will.

TurboPower brauch auch einen bestehenden DFÜ-Telefonbuch-Eintrag bevor er weiter machen kann.

Hat jemand Ahnung wie man einen Telefonbuch-Eintrag temporär anlegt?

Gruss,

Andi
  Mit Zitat antworten Zitat
Mephistopheles
(Gast)

n/a Beiträge
 
#7

Re: DFÜ-Verbindung aufbauen, ohne DFÜ-Eintrag zu nutzen

  Alt 25. Apr 2005, 16:25
Ja hat jemand ... der nämlich!
  Mit Zitat antworten Zitat
Mephistopheles
(Gast)

n/a Beiträge
 
#8

Re: DFÜ-Verbindung aufbauen, ohne DFÜ-Eintrag zu nutzen

  Alt 25. Apr 2005, 19:23
Ich habe da mal ganz schnell etwas vorbereitet. Im Anhang befindet sich das vollständige Projekt und die Includedateien.
Der Einfachheit halber ist es ein Konsolenprogramm, weil das den Code auf das nötigste beschränkt.

Das ist ab jetzt PUBLIC DOMAIN. Darf also beliebig weiterverwendet werden.

Einschränkungen: Dieser Quelltext funktioniert unverändert maximal unter NT4/2000 und Nachfolgern, jedoch nicht unter Win9x. Für letzteres wären Anpassungen notwendig.
Getestet wurde er mit Delphi 4 Pro unter Windows 2000.

Delphi-Quellcode:
program MiniDialer;
{$APPTYPE CONSOLE}
uses
  SysUtils,
  Windows;

{$INCLUDE Ras.pas}

function ListRASDevices(var NumDevices: DWORD): LPRASDEVINFOA; // Must be freed with GlobalFree()
var
  Buffer, temp: LPRASDEVINFOA;
  NumDev, SizeNeeded: DWORD;
  i: Integer;
begin
  result := nil;
  RasEnumDevices(nil, @SizeNeeded, @NumDev);
  Buffer := LPRASDEVINFOA(GlobalAlloc(GPTR, SizeNeeded));
  if Assigned(Buffer) then
  begin
    Buffer^.dwSize := sizeof(RASDEVINFOA);
    RasEnumDevices(Buffer, @SizeNeeded, @NumDev);
    temp := Buffer;
    // Iterate through devices!
    for i := 0 to NumDev - 1 do
    begin
      Writeln(Format('%d -> %s [%s]', [i + 1, temp^.szDeviceName, temp^.szDeviceType]));
      // Go to next entry in the list
      temp := LPRASDEVINFOA(DWORD(temp) + sizeof(RASDEVINFOA));
    end;
    // Return buffer. It MUST BE FREED using GlobalFree()!
    NumDevices := NumDev;
    result := Buffer;
  end;
end;

function CreatePbkEntry(
  Phonebook,
  EntryName,
  DeviceName,
  DeviceType,
  NumberToDial,
  Username,
  Password: string
  ): Boolean;
var
  dwError: DWORD;
  pbk: PChar;
  EntryParams: RASENTRYA;
  DialParams: RASDIALPARAMSA;
begin
  result := False;
  if (Length(EntryName) > 0) then
  begin
    if (Length(PhoneBook) > 0) then
      pbk := @PhoneBook[1]
    else
      pbk := nil;
    dwError := RasValidateEntryName(pbk, @EntryName[1]);
    if (dwError = ERROR_SUCCESS) then
    begin
      ZeroMemory(@EntryParams, sizeof(EntryParams));
      // Parameters of RAS entry
      EntryParams.dwSize := sizeof(EntryParams);
      EntryParams.dwfOptions := RASEO_ModemLights or RASEO_SwCompression;
      EntryParams.dwFramingProtocol := RASFP_Ppp;
      EntryParams.dwfNetProtocols := RASNP_Ip;
      lstrcpy(@EntryParams.szLocalPhoneNumber[0], @NumberToDial[1]);
      lstrcpy(@EntryParams.szDeviceName[0], @DeviceName[1]);
      lstrcpy(@EntryParams.szDeviceType[0], @DeviceType[1]);
      dwError := RasSetEntryProperties(
        pbk,
        @EntryName[1],
        @EntryParams,
        sizeof(EntryParams),
        nil,
        0);
      // Upon success set the password and username
      if (dwError = ERROR_SUCCESS) then
      begin
        ZeroMemory(@DialParams, sizeof(DialParams));
        // Dial parameters of an entry
        DialParams.dwSize := sizeof(DialParams);
        lstrcpy(@DialParams.szEntryName[0], @EntryName[1]);
        lstrcpy(@DialParams.szUserName[0], @Username[1]);
        lstrcpy(@DialParams.szPassword[0], @Password[1]);
        dwError := RasSetEntryDialParams(pbk, @DialParams, false);
        if (dwError <> ERROR_SUCCESS) then
          Writeln('RasSetEntryDialParams() Fehler: ', dwError); // FIXME: Andere Fehlerbehandlung
      end;
      if (dwError <> ERROR_SUCCESS) then
        Writeln('RasSetEntryProperties() Fehler: ', dwError); // FIXME: Andere Fehlerbehandlung
    end; // FIXME: Fehlerbehandlung
  end; // FIXME: Fehlerbehandlung
end;

var
  devices, temp: LPRASDEVINFOA;
  i, numdev: DWORD;
  Device, DeviceType: string;
begin
  // Initialisiere die Include-Datei, bzw. die enthaltenen APIs
  InitRAS();
  Writeln('Wähle ein Gerät, über welches die Verbindung erfolgen soll:');
  devices := ListRASDevices(numdev);
  Write('Gib die Zahl des Eintrags an: ');
  Readln(i);
  // Find the device chosen
  if (i > 0) and (i <= numdev) then
  begin
    i := i - 1;
    temp := LPRASDEVINFOA(DWORD(devices) + sizeof(RASDEVINFOA) * i);
    SetString(Device, temp^.szDeviceName, lstrlen(@temp^.szDeviceName[0]));
    SetString(DeviceType, temp^.szDeviceType, lstrlen(@temp^.szDeviceType[0]));
    Writeln(Format('Folgendes Gerät gewählt: %s [%s]', [Device, DeviceType]));
    GlobalFree(HGLOBAL(devices)); // Free buffer with RAS devices
  end
  else
  begin
    Writeln('Ungültiges Gerät ausgewählt!');
    GlobalFree(HGLOBAL(devices)); // Free buffer with RAS devices
    ExitProcess(0);
  end;
  CreatePbkEntry('',
    'Testeintrag',
    Device,
    DeviceType,
    '0193670',
    'msn@easysurfer-power.de',
    'msn'
    );

  Writeln('Press ENTER to quit'); Readln;
end.
Angehängte Dateien
Dateityp: zip minidial_110.zip (19,3 KB, 96x aufgerufen)
  Mit Zitat antworten Zitat
andimx

Registriert seit: 14. Apr 2005
Ort: Hohenstein-Ernstthal
67 Beiträge
 
#9

Re: DFÜ-Verbindung aufbauen, ohne DFÜ-Eintrag zu nutzen

  Alt 26. Apr 2005, 07:59
vielen dank, funktioniert spitze )
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 Uhr.
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