proxy - In Delphi 7, how can I retrieve Internet Connection names list? -
earlier ask how can set internet proxy in windows connection.
but problem if want set connections, must list connection names list. search on net can't find answer this.
you're looking rasenumentries
function. delphi doesn't have ras api functions declared, easy if you've got jvcl. tjvras32
component has phonebook
tstrings property in available connections populated.
below d2007 test code (no error checking):
const ras_maxentryname = 256; rasbase = 600; error_buffer_too_small = rasbase + 3; error_invalid_size = rasbase + 32; type prasentryname = ^trasentryname; trasentryname = record dwsize: longint; szentryname: array [0..ras_maxentryname] of char; end; function rasenumentriesa(reserved: pchar; lpszphonebook: pchar; lprasentryname: prasentryname; var lpcb: dword; var lpcentries: dword): dword; stdcall; external 'rasapi32.dll'; procedure getrasentries(list: tstrings); var rasentrynames: array of trasentryname; err, size, entries: dword; i: integer; begin list.clear; setlength(rasentrynames, 1); size := sizeof(trasentryname); rasentrynames[0].dwsize := size; err := rasenumentriesa(nil, nil, @rasentrynames[0], size, entries); if (err = error_buffer_too_small) , (entries > 0) begin assert(size = sizeof(trasentryname) * entries); setlength(rasentrynames, entries); err := rasenumentriesa(nil, nil, @rasentrynames[0], size, entries); if err = 0 := 0 length(rasentrynames) list.add(rasentrynames[i].szentryname); end else list.add(rasentrynames[0].szentryname); end; procedure tform1.button1click(sender: tobject); begin getrasentries(listbox1.items); end;
Comments
Post a Comment