Hallo Styler,
habe das selbe programmiert und bin mit dem Ergebnis auch recht zufrieden. Allerdings habe ich die Entwicklung aufgegeben, da die Nachfrage nicht da war. Falls du den Quelltext haben möchtest, kannst du mich ja anfragen.
Wie gesagt ist die Entwicklung schon länger her, deshalb kann ich dir nur 2 Ausschnitte aus dem Quelltext geben und du musst dir selber das passende raussuchen:
1. Geräte auflisten:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33:
| procedure TWizardForm.GetGeraete; var Buffer: Pointer; Devices: LPRasDevInfo; devSize, nDevs: Integer; DeviceInfo: PDeviceInfo; begin Schritt2.GeraeteCB.Items.Clear; devSize := 0; ndevs := 0; if RasEnumDevices(nil, devSize, nDevs) <> ERROR_BUFFER_TOO_SMALL then MainForm.ShowError('Die Verbindungsgeräte konnten nicht geladen werden!'); Buffer := AllocMem(devSize); try Devices := Buffer; Devices^.dwSize := SizeOf(TRasDevInfo); if RasEnumDevices(Buffer, devSize, nDevs) = 0 then begin while nDevs > 0 do begin New(DeviceInfo); DeviceInfo^.DeviceType := Devices^.szDeviceType; DeviceInfo^.DeviceName := Devices^.szDeviceName; Schritt2.GeraeteCB.Items.AddObject(Devices^.szDeviceName, TObject(DeviceInfo)); Inc(Devices); Dec(nDevs); end; end else MainForm.ShowError('Die Geräte konnten nicht geladen werden!'); finally FreeMem(buffer); end; end; |
2. Einstellungen setzen
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41:
| [....] if ShowModal = mrOK then begin with Schritt1 do begin if CheckBox1.Checked then EntryName := VerbindungCB.Items[VerbindungCB.ItemIndex] else EntryName := NameE.Text; end; with Schritt2 do begin FillChar(Entry, SizeOf(Entry), 0); with Entry do begin dwSize := SizeOf(Entry); StrPCopy(szLocalPhoneNumber, '0123456789'); with GeraeteCB do begin if ItemIndex > - 1 then begin with PDeviceInfo(Items.Objects[ItemIndex])^ do begin StrPCopy(szDeviceName, DeviceName); StrPCopy(szDeviceType, DeviceType); end; end; end; dwfNetProtocols := RASNP_Ip; dwFramingProtocol := RASFP_Ppp; dwfOptions := RASEO_IpHeaderCompression or RASEO_RemoteDefaultGateway or RASEO_SwCompression or RASEO_ModemLights; dwSubEntries := 0; dwDialMode := RASEDM_DialAll; dwIdleDisconnectSeconds := RASIDS_UseGlobalValue; end; end; with Schritt3 do begin MainForm.AmtszifferCB.Checked := AmtszifferCB.Checked; if MainForm.AmtszifferCB.Checked then MainForm.AmtszifferE.Text := AmtszifferE.Text; MainForm.WiederholenCB.Checked := WiederholenCB.Checked; MainForm.TrennenCB.Checked := TrennenCB.Checked; end; I := RasSetEntryProperties(nil, PChar(EntryName), @Entry, SizeOf(Entry), nil, 0); |
Ich hoffe, dass hilft dir!
Gruß Hape
Moderiert von
Peter Lustig: Code- durch Delphi-Tags ersetzt
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.