![]() |
DFÜ-Verbindung aufbauen, ohne DFÜ-Eintrag zu nutzen
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... |
Re: DFÜ-Verbindung aufbauen, ohne DFÜ-Eintrag zu nutzen
|
Re: DFÜ-Verbindung aufbauen, ohne DFÜ-Eintrag zu nutzen
Danke werd ich mal machen. Dank deinem Link weiss ich nun was mit Torry immer gemeint war... Wofür steht denn RAS?
|
Re: DFÜ-Verbindung aufbauen, ohne DFÜ-Eintrag zu nutzen
RAS = Remote Access Service
|
Re: DFÜ-Verbindung aufbauen, ohne DFÜ-Eintrag zu nutzen
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! |
Re: DFÜ-Verbindung aufbauen, ohne DFÜ-Eintrag zu nutzen
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 |
Re: DFÜ-Verbindung aufbauen, ohne DFÜ-Eintrag zu nutzen
Ja hat jemand :) ... der nämlich!
|
Re: DFÜ-Verbindung aufbauen, ohne DFÜ-Eintrag zu nutzen
Liste der Anhänge anzeigen (Anzahl: 1)
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. |
Re: DFÜ-Verbindung aufbauen, ohne DFÜ-Eintrag zu nutzen
vielen dank, funktioniert spitze :-))
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:49 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-2025 by Thomas Breitkreuz