Akses Internet dial-up melalui MODEM masih menjadi cara yang dipilih sebagian besar netizen untuk mengakses Internet. Jika kita dapat mengaktifkan koneksi dial-up di aplikasi kita (seperti fungsi dial-up otomatis di program browser IE), niscaya akan lebih nyaman bagi pengguna perangkat lunak kita (tidak perlu berpindah aplikasi dan menjalankan jaringan dial-up) dan meningkatkan keramahan perangkat lunak kami.
Di bawah WIN9X, jika jaringan dial-up diinstal, akan ada dua perpustakaan manajemen jaringan dial-up, RasApi32.DLL dan RasApi16.DLL, di bawah direktori sistem Sistem sistem WINDOWS memodifikasi koneksi dial-up, dan akses Internet Dial-up menggunakan koneksi dial-up yang ditunjuk.
1. Buat koneksi dial-up baru
Ketika koneksi dial-up telah dibuat di sistem WIN9X, koneksi dial-up yang ada dapat digunakan. Jika tidak ada koneksi dial-up, Anda perlu membuat koneksi dial-up baru. Fungsi terkait disediakan di RasAPI, nama fungsinya adalah RasCreatePhonebookEntryA, dan prototipe fungsinya adalah:
function RasCreatePhonebookEntryA( hwnd : Thandle;lpszPhonebook: pchar ) : DWord;
stdcall; { terletak di bagian antarmuka}
function RasCreatePhonebookEntryA; eksternal 'Rasapi32.dll';{ terletak di bagian implementasi}
parameter:
hwnd (THandle): Pegangan jendela induk dari jendela koneksi dial-up baru, yang dapat berupa Pegangan TForm atau tabel NIL Windows Desktop (DeskTop)
lpszPhonebook (pchar): Nama buku telepon, tidak berpengaruh pada Win9X, dapat diatur ke string kosong
Nilai pengembalian fungsi:
0 menunjukkan eksekusi berhasil; jika tidak, ini adalah kesalahan.
Di bawah ini adalah contoh pembuatan koneksi dial-up baru.
{Buat koneksi dial-up baru}
Prosedur TForm1.Button1Click(Pengirim: TObject);
var
dwHasil: DWORD;
mulai
//Buat koneksi dial-up baru di jendela saat ini
dwHasil := RasCreatePhonebookEntryA( pegangan, '' );
jika dwResult = 0 maka
memo1.lines.add('Koneksi dial-up baru berhasil!')
kalau tidak
memo1.lines.add('Koneksi dial-up baru gagal!')
akhir;
2. Ubah properti koneksi dial-up yang ditentukan
Jika pengguna perlu mengubah atribut koneksi dial-up seperti nomor telepon, kode negara dan area, metode koneksi, jenis server, dll., ia dapat menggunakan fungsi RasAPI untuk mencapai hal ini prototipe fungsinya adalah:
fungsi RasEditPhonebookEntryA( hwnd : Thandle; lpszPhonebook: pchar;
lpszEntryName: pchar ) : DWORD;stdcall; { terletak di bagian antarmuka}
function RasEditPhonebookEntryA; eksternal 'Rasapi32.dll';{ terletak di bagian implementasi}
parameter:
hwnd (THandle): Pegangan jendela induk dari jendela koneksi dial-up baru, yang dapat berupa Pegangan TForm, dinyatakan sebagai NIL
Windows Desktop(Desktop)
lpszPhonebook (pchar): Nama buku telepon, tidak berpengaruh pada Win9X, dapat diatur ke string kosong
lpszEntryName: (pchar): Nama koneksi dial-up yang akan diubah, seperti '163', '169', dll.
Nilai pengembalian fungsi:
0 menunjukkan eksekusi berhasil; jika tidak, ini adalah kesalahan.
Berikut ini adalah contoh memodifikasi properti koneksi dial-up tertentu.
{Memodifikasi properti koneksi dial-up yang ditentukan}
prosedur TForm1.Button2Click(Pengirim: TObject);
var
dwHasil: DWORD;
strNamaDial : string;
mulai
strDialName := '163';//Setel nama koneksi dial-up menjadi 163
//Tentukan dan ubah properti koneksi dial-up di jendela saat ini
dwResult := RasEditPhonebookEntryA( handle, '', PChar( strDialName ) );
jika dwResult = 0 maka
memo1.lines.add('Ubah koneksi dial-up' + strDialName + 'Sukses!')
kalau tidak
memo1.lines.add('Ubah koneksi dial-up' + strDialName + 'Gagal!')
akhir;
3. Dapatkan nama koneksi dial-up yang tersedia di sistem saat ini
Agar pengguna dapat memilih untuk melakukan panggilan menggunakan koneksi dial-up, kita perlu mendapatkan nama koneksi dial-up yang telah dibuat di sistem. Setelah membuat koneksi dial-up, WIN9X menulis nama dan atribut koneksi dial-up di registri. Kita bisa mendapatkan nama koneksi dial-up yang tersedia di sistem saat ini dan nama koneksi default yang ditetapkan di Internet Explorer dari registri .
Di bawah HKEY_USERS.DefaultRemoteaccessAddresses di registri, nama koneksi dial-up yang telah dibuat di jaringan dial-up dan pengaturan atributnya dicantumkan. Nama setiap item adalah nama koneksi dial-up yang tersedia; setiap item adalah nama koneksi dial-up yang tersedia. Kita hanya perlu membaca nama setiap proyek untuk mendapatkan nama koneksi dial-up yang tersedia di sistem saat ini.
Jika nama koneksi default diatur di Internet Explorer (Lihat => Opsi Internet => Koneksi => Koneksi => Pengaturan => Gunakan koneksi jaringan dial-up berikut), maka di bawah HKEY_USERS.DefaultRemoteAccess di registri, ada string ketik Nilai kunci, nama nilai kuncinya adalah InternetProfile, dan nilainya adalah nama koneksi default yang ditetapkan di Internet Explorer.
Berikut ini adalah contoh perolehan nama koneksi dial-up yang tersedia pada sistem saat ini.
{Perhatikan bahwa unit Registri ditambahkan ke Kegunaan untuk mengoperasikan registri}
{Dapatkan nama koneksi dial-up yang tersedia di sistem saat ini}
prosedur TForm1.Button3Click(Pengirim: TObject);
var
registryTemp : TRegistry;
stringsTemp : TStringlist;
intIndex : bilangan bulat;
mulai
registryTemp := TRegistry.Create;
stringsTemp := TStringlist.Buat;
dengan registryTemp lakukan
mulai
RootKey := HKEY_USERS;//Kunci root disetel ke HKEY_USERS
//Jika ada subkunci.DefaultRemoteAccessAddresses
jika OpenKey('.DefaultRemoteAccessAddresses',false) maka
GetValueNames( stringsTemp );//Bacakan nama setiap item, yaitu nama koneksi dial-up
Tutup Kunci;
akhir;
//Koneksi dial-up tersedia di sistem saat ini
memo1.lines.add( '******************Ada'+ IntToStr( stringsTemp.count ) di sistem saat ini
+'Koneksi dial-up yang tersedia adalah sebagai berikut******************');
untuk intIndex := 0 hingga stringsTemp.count - 1 lakukan
memo1.lines.add( stringsTemp.strings[ intIndex ] );
//Daftar nama koneksi default yang diatur di Internet Explorer
jika registryTemp.OpenKey('.DefaultRemoteAccess',false) lalu
memo1.lines.add( 'Nama koneksi default yang ditetapkan di Internet Explorer adalah' +
registryTemp.ReadString('InternetProfile') );
//lepaskan memori
registryTemp.free;
stringsTemp.free;
akhir;
4. Melakukan panggilan menggunakan koneksi dial-up yang ditentukan
Tujuan dari ketiga tugas di atas adalah untuk akses Internet dial-up. Sekarang mari kita lihat cara menggunakan koneksi dial-up yang ditunjuk untuk akses Internet dial-up. Cara terbaik adalah dengan memanggil layanan jaringan dial-up WIN9X, yaitu dengan menjalankan program siap pakai di bawah WIN9X.
Dalam program Delphi, Anda dapat menggunakan kode berikut untuk mengimplementasikan akses Internet dial-up:
winexec('rundll32.exe rnaui.dll,RnaDial 163',SW_SHOWNORMAL);
Parameter terakhir "163" dalam string adalah nama koneksi dial-up.
Berikut ini adalah contoh akses Internet dial-up menggunakan koneksi dial-up yang ditentukan.
{Akses Internet dial-up menggunakan koneksi dial-up yang ditentukan}
prosedur TForm1.Button4Click(Pengirim: TObject);
var
strNamaDial : string;
mulai
strDialName := '163';//Setel nama koneksi dial-up menjadi 163
memo1.lines.add( '****************Gunakan koneksi dial-up' + strDialName
+'Mewujudkan akses Internet dial-up******************');
winexec( PChar('rundll32.exe rnaui.dll,RnaDial ' + strDialName),SW_SHOWNORMAL);
akhir;
Program di atas telah di-debug dan diteruskan di bawah PWIN98+Delphi3.0.