Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Internetverbindungen anzeigen und wählen (https://www.delphipraxis.net/86216-internetverbindungen-anzeigen-und-waehlen.html)

Mazel 11. Feb 2007 09:31


Internetverbindungen anzeigen und wählen
 
Hallo DP'ler,

wie kann ich meine Intenetverbindungen in einer Combobox einfach auflisten und dann eine dieser Verbindungen wählen? Da ich nicht nur eine habe würde ich mir einen kleinen Manager basteln der mir zu bestimmen Zeiten einer der Verbindungen als obersten Eintrag in der Combobox anzeigt und diesen auch nach einem Klick auf ein OK-Button wählt.

Gruß
Mazel

Mazel 11. Feb 2007 20:55

Re: Internetverbindungen anzeigen und wählen
 
Nach langem suchen habe ich nun etwas gefunden um die Verbindungen anzuzeigen. Auf dsdt.info gibts auch ein Code zum Verbinden aber leider geht das nur mit Modem. Wie kann ich nun die Verbindung auch mit ISDN ermöglichen?
Delphi-Quellcode:
uses
 ras; //eigen ras erstellt für diese Funktion

procedure TForm1.FormCreate(Sender: TObject);
var
  RasEntryName: array[1..20] of TRasEntryName;
  i, x, BufSize, Entries: DWord;
  Connection:THRasConn;

begin
  RasEntryName[1].dwSize := SizeOf(RasEntryName[1]);
  BufSize := SizeOf(RasEntryName);
  x := RasEnumEntries(nil, nil,
   @RasEntryName, BufSize, Entries);
   for i := 1 to Entries do
    begin
     if ( i < 21) and (RasEntryName[i].szEntryName[0] <> #0) then
     ListBox1.Items.Add(StrPas(RasEntryName[i].szEntryName));
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 ErrorCode: Integer;
begin
 Con := 0;
 ErrorCode := ERROR_SUCCESS;
 if DialDFUE(ListBox1.Items[0], ErrorCode, Con) then ShowMessage('Verbindung'); //zum Test 1. Eintrag
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 InternetHangUp(Con, 0);
end;
Delphi-Quellcode:
unit Ras;

interface

uses
 Windows;

const
 MaxEntryName                  = 256;
 raslib                        = 'rasapi32.dll';

type
 PHRasConn = ^THRasConn;
 THRasConn = THandle;

 PRasEntryName = ^TRasEntryName;
 TRasEntryName = record
    dwSize: DWORD;
    szEntryName: packed array[0..MaxEntryName] of AnsiChar;
    dwFlags: DWORD;
    szPhonebookPath: packed array[0..MAX_PATH] of AnsiChar;
  end;

function RasEnumEntries(reserved: PChar; lpszPhonebook: PChar; lprasentryname: PRasEntryName; var lpcb: DWORD; var lpcEntries: DWORD): DWORD; stdcall;

implementation

function RasEnumEntries; external raslib name 'RasEnumEntriesA';

end.
Weist jemand wie ich eine Verbinding auch über ISDN einwählen kann?

DGL-luke 11. Feb 2007 21:11

Re: Internetverbindungen anzeigen und wählen
 
Soltle mit ISDN und DSL genauso gehen, falls du dich über ein ISDN-Modem einwählst. Die meisten Zugangsprogramme installieren einen entsprechenden treiber.

Magier 11. Feb 2007 21:30

Re: Internetverbindungen anzeigen und wählen
 
anzeigen kann man mit Komponente JvRas32 von Jedi auf dem Registerblatt Internet so:

Delphi-Quellcode:
combobox1.Items := jvras321.PhoneBook;
und verbinden geht dann mit folgender Funktion:

Delphi-Quellcode:
//Hier ist eine Funktion zum verbinden der Internetverbindung

uses WinInet;

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;
aufgerufen z.b. mit folgendem aufruf:
Delphi-Quellcode:
    if DialDFUE(form3.Edit4.Text, i, con) = false then
    begin
      MessageDlg('Die DFÜ Verbindung konnte nicht aufgebaut werden.', mterror,
        [mbok], 0);
      exit;
    end;
con ist eine Variable vom Typ Cardenal

http://www.dsdt.info/tipps/?id=160

Mir ist gerade aufgefallen dass du die wohl selber gefunden hast.. also bei mir funzt die auch mit dsl.. glaube zumindest dass es dsl war.. ist schon lange her dass ich das prog das letzte mal benutzt habe, da ist jetzt per router surfe.

MFG
Magier

Mazel 12. Feb 2007 14:35

Re: Internetverbindungen anzeigen und wählen
 
Ich danke euch für die Antworten, aus irgend einem Grund funktioniert es jetzt. Ich habe heute, nachdem ich aus der Schule kam, sofort einen Test durchgeführt in dem ich einfach neukompiliert habe und plötzlich ging es. Kann das einer erklären? Ich denke auch den Rechner mal neugestartet zu haben, kann ich jetzt aber nicht mehr mit Sicherheit sagen. Soll es daran gelegen haben?

Nagut, auf jeden Fall funktioniert es jetzt, was, denke ich, die Hauptsache ist. :)

Nochmal danke an all.

[EDIT]
Ich habe eben festgestellt, dass es doch nicht an dem Neustart liegt, denn eben wollte ich es wieder versuchen aber es ging nicht, es kam die meldung das er eine Verbindung hat aber nichts ist passiert. Daruafhin habe ich manuell eine verbindung hergestellt und diese wieder getrennt, danach gings auch wieder mit meinem Prog. Es scheint also was mit den ConID zu tun zu haben.
[/EDIT]

Gruß
Mazel

Mazel 14. Feb 2007 15:08

Re: Internetverbindungen anzeigen und wählen
 
Hat jemand eine Idee, warum manchmal eine Verbindung hergestellt wird und warum manchmal nicht obwohl die Funktion True, für Verbindung hergestellt, zurückgibt?

Gruß
Mazel

Mazel 21. Feb 2007 18:03

Re: Internetverbindungen anzeigen und wählen
 
Das Thema hat sich erledigt. Ich habe mich durch die ras Unit durchgearbeitet und die wichtigen Funktionen für mich extrahiert.

Nun funktioniert alles bestens. :thumb:

Grüßle
Mazel


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:14 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