لا يزال الوصول إلى الإنترنت عبر الطلب الهاتفي من خلال MODEM هو الطريقة التي يختارها معظم مستخدمي الإنترنت للوصول إلى الإنترنت. إذا تمكنا من تمكين اتصالات الطلب الهاتفي في تطبيقاتنا (مثل وظيفة الطلب الهاتفي التلقائي في برنامج متصفح IE)، فسيكون ذلك بلا شك أكثر ملاءمة لمستخدمي برامجنا (لا حاجة لتبديل التطبيقات وتشغيل شبكات الطلب الهاتفي) وتحسين سهولة برامجنا وبالتالي تحسين القدرة التنافسية للبرامج.
ضمن WIN9X، إذا تم تثبيت شبكة الطلب الهاتفي، فستكون هناك مكتبتان لإدارة شبكة الطلب الهاتفي، RasApi32.DLL وRasApi16.DLL، ضمن دليل النظام System الخاص بنظام WINDOWS، يمكننا استخدام الوظائف الموجودة فيهما لإنشاء و تعديل اتصالات الطلب الهاتفي، والوصول إلى الإنترنت عبر الطلب الهاتفي باستخدام اتصال الطلب الهاتفي المخصص.
1. قم بإنشاء اتصال طلب هاتفي جديد
عند إنشاء اتصال الطلب الهاتفي في نظام WIN9X، يمكن استخدام اتصال الطلب الهاتفي الموجود. إذا لم يكن هناك اتصال الطلب الهاتفي، فستحتاج إلى إنشاء اتصال طلب هاتفي جديد. يتم توفير الوظيفة المقابلة في RasAPI، واسم الوظيفة الخاص بها هو RasCreatePhonebookEntryA، والنموذج الأولي للوظيفة هو:
وظيفة RasCreatePhonebookEntryA( hwnd : Thandle;lpszPhonebook: pchar ) : DWord;
stdcall {موجود في قسم الواجهة}
وظيفة RasCreatePhonebookEntryA الخارجية 'Rasapi32.dll'؛ {موجود في قسم التنفيذ}
المعلمة:
hwnd (THandle): مقبض النافذة الأصلية لنافذة اتصال الطلب الهاتفي الجديدة، والذي يمكن أن يكون مقبض TForm أو جدول NIL Windows Desktop (DeskTop)
lpszPhonebook (pchar): اسم دليل الهاتف، ليس له أي تأثير ضمن نظام التشغيل Win9X، ويمكن ضبطه على سلسلة فارغة
قيمة إرجاع الوظيفة:
0 يشير إلى التنفيذ الناجح، وإلا فإنه خطأ.
فيما يلي مثال لإنشاء اتصال الطلب الهاتفي الجديد.
{إنشاء اتصال هاتفي جديد}
الإجراء TForm1.Button1Click(Sender: TObject);
فار
dwResult: DWORD;
يبدأ
// أنشئ اتصال طلب هاتفي جديدًا في النافذة الحالية
dwResult := RasCreatePhonebookEntryA( Handle, '' );
إذا dwResult = 0 ثم
memo1.lines.add('تم بنجاح الاتصال الهاتفي الجديد!')
آخر
memo1.lines.add('فشل اتصال الطلب الهاتفي الجديد!')
نهاية؛
2. تعديل خصائص اتصال الطلب الهاتفي المحدد
إذا كان المستخدم بحاجة إلى تعديل سمات اتصال الطلب الهاتفي مثل رقم الهاتف ورمز البلد والمنطقة وطريقة الاتصال ونوع الخادم وما إلى ذلك، فيمكنه استخدام وظيفة RasAPI لتحقيق ذلك. اسم الوظيفة هو RasEditPhonebookEntryA النموذج الأولي للوظيفة هو:
وظيفة RasEditPhonebookEntryA( hwnd : Thandle; lpszPhonebook: pchar;
lpszEntryName: pchar ): DWORD;stdcall; {موجود في جزء الواجهة}
وظيفة RasEditPhonebookEntryA الخارجية 'Rasapi32.dll'؛ {موجود في قسم التنفيذ}
المعلمة:
hwnd (THandle): مقبض النافذة الأصلية لنافذة اتصال الطلب الهاتفي الجديدة، والذي يمكن أن يكون مقبض TForm، ويتم التعبير عنه بـ NIL
سطح مكتب ويندوز (سطح المكتب)
lpszPhonebook (pchar): اسم دليل الهاتف، ليس له أي تأثير ضمن نظام التشغيل Win9X، ويمكن ضبطه على سلسلة فارغة
lpszEntryName: (pchar): اسم اتصال الطلب الهاتفي المراد تعديله، مثل '163'، '169'، إلخ.
قيمة إرجاع الوظيفة:
0 يشير إلى التنفيذ الناجح، وإلا فإنه خطأ.
ما يلي هو مثال على تعديل خصائص اتصال الطلب الهاتفي المحدد.
{تعديل خصائص اتصال الطلب الهاتفي المحدد}
الإجراء TForm1.Button2Click(Sender: TObject);
فار
dwResult: DWORD;
strDialName: سلسلة؛
يبدأ
strDialName := '163';// اضبط اسم اتصال الطلب الهاتفي على 163
// تحديد وتعديل خصائص اتصال الطلب الهاتفي في النافذة الحالية
dwResult := RasEditPhonebookEntryA( Handle, '', PChar( strDialName ) );
إذا dwResult = 0 ثم
memo1.lines.add('تعديل اتصال الطلب الهاتفي' + strDialName + 'نجاح!')
آخر
memo1.lines.add('تعديل اتصال الطلب الهاتفي' + strDialName + 'فشل!')
نهاية؛
3. الحصول على أسماء اتصال الطلب الهاتفي المتوفرة في النظام الحالي
لكي يتمكن المستخدم من اختيار الاتصال باستخدام اتصال الطلب الهاتفي، نحتاج إلى الحصول على اسم اتصال الطلب الهاتفي الذي تم إنشاؤه في النظام. بعد إنشاء اتصال الطلب الهاتفي، يقوم WIN9X بكتابة اسم وسمات اتصال الطلب الهاتفي في السجل. يمكننا الحصول على أسماء اتصال الطلب الهاتفي المتوفرة في النظام الحالي واسم الاتصال الافتراضي المعين في Internet Explorer من السجل .
ضمن HKEY_USERS.DefaultRemoteaccessAddresses في التسجيل، يتم سرد أسماء اتصالات الطلب الهاتفي التي تم إنشاؤها في شبكة الطلب الهاتفي وإعدادات السمات الخاصة بها. اسم كل عنصر هو اسم اتصال الطلب الهاتفي المتوفر؛ من كل عنصر هو اسم إعدادات خاصية اتصال الطلب الهاتفي المتوفرة. نحتاج فقط إلى قراءة اسم كل مشروع للحصول على أسماء اتصال الطلب الهاتفي المتوفرة في النظام الحالي.
إذا تم تعيين اسم الاتصال الافتراضي في Internet Explorer (عرض => خيارات الإنترنت => الاتصال => الإعدادات => استخدم اتصال شبكة الطلب الهاتفي التالي)، فضمن HKEY_USERS.DefaultRemoteAccess في التسجيل، توجد سلسلة اكتب قيمة المفتاح، واسم قيمة المفتاح هو InternetProfile، وقيمتها هي اسم الاتصال الافتراضي المعين في Internet Explorer.
ما يلي هو مثال للحصول على أسماء اتصالات الطلب الهاتفي المتوفرة على النظام الحالي.
{لاحظ أنه تمت إضافة وحدة التسجيل إلى الاستخدامات لتشغيل السجل}
{الحصول على أسماء اتصالات الطلب الهاتفي المتوفرة في النظام الحالي}
الإجراء TForm1.Button3Click(Sender: TObject);
فار
درجة حرارة التسجيل: TRegistry؛
stringsTemp : TStringlist;
intIndex : عدد صحيح؛
يبدأ
registryTemp := TRegistry.Create;
stringsTemp := TStringlist.Create;
مع درجة الحرارة التسجيل تفعل
يبدأ
RootKey := HKEY_USERS;// تم ضبط مفتاح الجذر على HKEY_USERS
//إذا كانت هناك مفاتيح فرعية.DefaultRemoteAccessAddresses
إذا كان OpenKey('.DefaultRemoteAccessAddresses',false) إذن
GetValueNames( stringsTemp );// اقرأ اسم كل عنصر، أي اسم اتصال الطلب الهاتفي
CloseKey;
نهاية؛
// اتصالات الطلب الهاتفي المتوفرة في النظام الحالي
memo1.lines.add( '****************** يوجد'+ IntToStr( stringsTemp.count ) في النظام الحالي
+'اتصالات الطلب الهاتفي المتوفرة هي كما يلي******************');
بالنسبة لـ intIndex:= 0 إلى stringsTemp.count - 1 do
memo1.lines.add( stringsTemp.strings[ intIndex ] );
// قم بإدراج أسماء الاتصال الافتراضية المعينة في Internet Explorer
إذا RegisterTemp.OpenKey('.DefaultRemoteAccess',false) إذن
memo1.lines.add( "اسم الاتصال الافتراضي المعين في Internet Explorer هو" +
RegisterTemp.ReadString('InternetProfile') );
// الافراج عن الذاكرة
RegisterTemp.free;
stringsTemp.free;
نهاية؛
4. اطلب باستخدام اتصال الطلب الهاتفي المحدد
الغرض من المهام الثلاث المذكورة أعلاه هو الوصول إلى الإنترنت عبر الطلب الهاتفي. والآن دعونا نلقي نظرة على كيفية استخدام اتصال الطلب الهاتفي المخصص للوصول إلى الإنترنت عبر الطلب الهاتفي. أفضل طريقة هي الاتصال بخدمة شبكة الطلب الهاتفي الخاصة بـ WIN9X، وهي تشغيل البرنامج الجاهز ضمن WIN9X.
في برنامج دلفي، يمكنك استخدام التعليمات البرمجية التالية لتنفيذ الوصول إلى الإنترنت عبر الطلب الهاتفي:
winexec('rundll32.exe rnaui.dll,RnaDial 163',SW_SHOWNORMAL);
المعلمة الأخيرة "163" في السلسلة هي اسم اتصال الطلب الهاتفي.
ما يلي هو مثال للوصول إلى إنترنت الطلب الهاتفي باستخدام اتصال الطلب الهاتفي المحدد.
{الوصول إلى إنترنت الطلب الهاتفي باستخدام اتصال الطلب الهاتفي المحدد}
الإجراء TForm1.Button4Click(Sender: TObject);
فار
strDialName: سلسلة؛
يبدأ
strDialName := '163';// اضبط اسم اتصال الطلب الهاتفي على 163
memo1.lines.add( '****************استخدام اتصال الطلب الهاتفي' + strDialName
+'تحقيق الوصول إلى الإنترنت عبر الطلب الهاتفي******************');
winexec( PChar('rundll32.exe rnaui.dll,RnaDial ' + strDialName),SW_SHOWNORMAL);
نهاية؛
تم تصحيح أخطاء البرنامج أعلاه وتمريره ضمن PWIN98+Delphi3.0.