الحديث عن مهارات برمجة الانترنت في ظل الدلفي (1)
المؤلف: lyboy99 البريد الإلكتروني: [email protected] تأتي دلفي مع الكثير من عناصر التحكم في برمجة تطبيقات الإنترنت، مما يسهل علينا تطوير تطبيقات الإنترنت، وفيما يلي سأقدم تدريجيًا بعض مهارات برمجة التطبيقات على الإنترنت الجوانب، ولكنه يمكن أن يضيف وظائف مهمة إلى تطبيقاتك، مما يسهل عليك تطوير التطبيقات عبر الإنترنت. بعد السرد الافتتاحي، دعونا نقدم أولاً: إعداد المتصفح الافتراضي للنظام وبرنامج إرسال واستقبال البريد الإلكتروني الافتراضي للنظام. 1. احصل على وظيفة عنوان متصفح الإنترنت الافتراضية: تحصل الوظيفة التالية على عنوان متصفح الإنترنت الافتراضي من خلال قراءة وظيفة إعدادات التسجيل GetDefaultShellHTTP: string;varreg: TRegistry;begin Reg:=TRegistry.Create; Reg .RootKey:=HKEY_CLASSES_ROOT; إذا كان Reg.KeyExists('http/shell/open/command') فابدأ Reg.OpenKey('http/shell/open/command',false); (CmdLine : string);varreg : TRegistry;begin Reg:=TRegistry.Create; Reg.RootKey:=HKEY_CLASSES_ROOT; // عنوان التسجيل: Reg.OpenKey('http/shell/open/command',true);// عنوان التسجيل: Reg.WriteString('',CmdLine); Reg.Free;end;setDefaultshellhttp('"C:/PROGRA~1/INTERN~1/iexplorer.exe" -nohome');3. الحصول على وظيفة برنامج إرسال واستقبال البريد الإلكتروني الافتراضي وتعيينها تحصل الوظيفة التالية على عنوان برنامج إرسال واستقبال البريد الإلكتروني الافتراضي من خلال قراءة وظيفة التسجيل GetDefaultMail. varreg: TRegistry; begin Reg:=TRegistry.Create; Reg.RootKey:=HKEY_CLASSES_ROOT; إذا بدأ Reg.KeyExists('Mailto/shell/open/command'). Reg.OpenKey('Mailto/shell/open/command',false); (CmdLine : string);varreg : TRegistry;begin Reg:=TRegistry.Create; Reg.RootKey:=HKEY_CLASSES_ROOT; Reg.OpenKey('Mailto/shell/open/command',true); Reg.WriteString('',CmdLine); Reg.Free;end;Use //SetDefaultMail('E:/Foxmail/FoxMail.exe -T); %1" -S "%2"');5. هل سبق لك أن أردت الحصول على وظيفة لتحويل اسم المجال إلى عنوان IP؟ الآن سأعطيك وظيفة لتحويل اسم المجال إلى عنوان IP: الوظيفة GetIPName(الاسم: string): string;var WSAData: TWSAData; HostEnt: PHostEnt;begin WSAStartup(2, WSAData); HostEnt := gethostbyname(PChar(Name)); with HostEnt^ do Result := Format('%d.%d.%) d.%d', [بايت(h_addr^[0]), بايت(h_addr^[1]), Byte(h_addr^[2]), Byte(h_addr^[3])]); WSACleanup;end; 6. عند كتابة برنامج إنترنت، غالبًا ما تواجه التحقق من عنوان URL وعنوان البريد الإلكتروني وما إلى ذلك الذي أدخله المستخدم. كيفية حل هذه المشكلة؟ تصادف أن لدي وظيفة مكتوبة هنا. التحقق مما إذا كان عنوان URL صالحًا يستخدم وظيفة wininet(url:string):boolean; // وظيفة التحقق مما إذا كان عنوان URL صالحًا var dwcode:array[1.. 20] of char; res : pchar start if pos('http://',lowercase(url))=0 ثم url := 'http://'+url; (url)، nil، 0، INTERNET_FLAG_RELOAD، 0)؛ 0 dwCodeLen := 10; HttpQueryInfo(hfile, HTTP_QUERY_STATUS_CODE, @dwcode, dwcodeLen, dwIndex); /200,302 علامة إلغاء النقل إذا تم تعيينها (hfile) بعد ذلك InternetCloseHandle(hfile);
كيفية التعامل مع عناوين البريد الإلكتروني، إليك وظيفة معالجة عنوان البريد الإلكتروني IsEMail(EMail: String): Boolean var s: String; Integer; begin ETpos('@', EMail); ETpos > 1 ثم ابدأ s:= Copy(EMail,ETpos+1,Length(EMail)); 1) و (pos('.', s) <length(s)) ثم النتيجة:= true else Result:= end else Result:= false; الإجراء TForm1.Button1Click(Sender: TObject); إذا كان isemail(Edit1.Text) فابدأ ShowMessage('eMail-Address!'); end; 7. قم بتغيير عنوان خادم DNS ديناميكيًا
يمكن للوظيفة التالية إضافة عنوان خادم DNS
إذا كنت تريد إضافة 202.100.100.65 202.10.10.10
SetDNSAddresses('202.100.100.65 202.10.10.10');
// ملاحظة: افصل كل عنوان بمسافة.
يتم تعريف SetTDNSAddresses على النحو التالي: الإجراء SetDNSAddresses( sIPs : string );
يبدأ
// إذا كان Windows NT، استخدم التعليمة البرمجية التالية
SaveStringToRegistry_LOCAL_MACHINE(
"النظام/مجموعة التحكم الحالي" +
'/الخدمات/Tcpip/المعلمات'،
"خادم الاسم"،
رشفات) ؛
// إذا كنت تستخدم نظام التشغيل Windows 95 استخدم الكود التالي
SaveStringToRegistry_LOCAL_MACHINE(
"النظام/مجموعة التحكم الحالي" +
'/الخدمات/VxD/MSTCP'،
"خادم الاسم"،
رشفات) ؛
النهاية؛ حيث يتم تعريف SaveStringToRegistry_LOCAL_MACHINE:
يستخدم التسجيل.
الإجراء SaveStringToRegistry_LOCAL_MACHINE(
sKey, sItem, sVal : string );
فار
ريج: TRegIniFile؛
يبدأ
reg := TRegIniFile.Create( '' );
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.WriteString( sKey, sItem, sVal + #0 );
reg.Free;
نهاية؛