Рассказываем о навыках интернет-программирования под Delphi (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); Result:=Reg.ReadString(''); end else Result:=''; Reg.Free;end;2. Установите PROcedure SetDefaultShellHttp для интернет-браузера. (CmdLine: строка);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/ieexplorer.exe" -nohome');3. Получите и установите функцию программного обеспечения для отправки и получения электронной почты по умолчанию. Следующая функция получает адрес программного обеспечения для отправки и получения электронной почты по умолчанию, читая настройки реестра GetDefaultMail: string; varreg: TRegistry; начать Reg:=TRegistry.Create; Reg.RootKey:=HKEY_CLASSES_ROOT; если Reg.KeyExists('Mailto/shell/open/command'), то начать Reg.OpenKey('Mailto/shell/open/command',false); Result:=Reg.ReadString(''); end else Result:=''; Reg.Free;end;4. Установите процедуру почтового ящика по умолчанию SetDefaultMail. (CmdLine: строка);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-адрес: функция ПолучитьIPName(Имя: строка: строка;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; Function CheckUrl(url:string):boolean; //Проверка корректности URL-адреса function var hsession, hfile, hRequest: hInternet; dwcodelen:dWord; 20] из char; res: pchar; start if pos('http://',lowercase(url))=0 then url := 'http://'+url; Результат: = false; hSession := InternetOpen('InetURL:/1.0', INTERNET_OPEN_TYPE_PRECONFIG,nil, nil, 0); если назначено (hsession), то начинается hfile := InternetOpenUrl(hsession, pchar (URL), ноль, 0, INTERNET_FLAG_RELOAD, 0 dwIndex: =); 0; dwCodeLen:= 10; HttpQueryInfo(hfile, HTTP_QUERY_STATUS_CODE, @dwcode, dwcodeLen, dwIndex); res := pchar(@dwcode); результат: = (res ='200') или (res ='302'); /200,302 флаг отмены размещения, если назначен (hfile), то InternetCloseHandle (hfile); InternetCloseHandle (конец сеанса);
Как обрабатывать адреса электронной почты, вот функция обработки адреса электронной почты IsEMail(EMail: String): Boolean var s: String; Integer; start ETpos:= pos('@', EMail); ETpos > затем начать s:= copy(EMail,ETpos+1,Length(EMail)); if (pos('.', s) > 1) и (pos('.', s) <length(s)) then Результат:= true else Result:= false; end else Result:= false; процедура TForm1.Button1Click(Sender: TObject Begin); if isemail(Edit1.Text) then Begin ShowMessage('eMail-Address!'); 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(
'СИСТЕМА/CurrentControlSet' +
'/Службы/Tcpip/Параметры',
'Сервер имен',
СИП);
// Если вы используете Windows 95, используйте следующий код
SaveStringToRegistry_LOCAL_MACHINE(
'СИСТЕМА/CurrentControlSet' +
'/Сервисы/VxD/MSTCP',
'Сервер имен',
СИП);
end;где определено SaveStringToRegistry_LOCAL_MACHINE:
использует реестр;
процедура SaveStringToRegistry_LOCAL_MACHINE(
sKey, sItem, sVal: строка);
вар
рег: TRegIniFile;
начинать
reg := TRegIniFile.Create( '');
reg.RootKey:= HKEY_LOCAL_MACHINE;
reg.WriteString(sKey, sItem, sVal + #0);
рег.Бесплатно;
конец;