Delphi의 인터넷 프로그래밍 기술에 대해 이야기하기 (1)
저자: lyboy99E-mail: [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. (CmdLine : 문자열);varreg : TRegistry;begin Reg:=TRegistry.Create; Reg.RootKey:=HKEY_CLASSES_ROOT; //레지스트리 주소: Reg.OpenKey('http/shell/open/command',true);//레지스트리 주소: Reg.WriteString('',CmdLine); 등록 Free;end;setDefaultshellhttp('"C:/PROGRA~1/INTERN~1/iexplorer.exe" -nohome');3. 기본 이메일 전송 및 수신 소프트웨어의 기능을 획득하고 설정합니다. 다음 함수는 레지스트리 설정을 읽어 기본 이메일 전송 및 수신 소프트웨어의 주소를 획득합니다. varreg: TRegistry; 시작 Reg:=TRegistry.Create; Reg.RootKey:=HKEY_CLASSES_ROOT; if Reg.KeyExists('Mailto/shell/open/command') 시작 Reg.OpenKey('Mailto/shell/open/command',false); Result:=Reg.ReadString(''); end else Result:=''; Reg.Free;end;4. (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 주소로 변환하는 기능을 제공하겠습니다. GetIP이름(이름: 문자열): 문자열;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이 유효한지 확인합니다. Function CheckUrl(url:string):boolean; //URL이 유효한지 확인합니다. function var hsession, hfile, hInternet: dwcode:array[1.. 20] of char; res : pchar; pos('http://',lowercase(url))=0이면 시작하고 url := 'http://'+url; 결과 := false; hSession := InternetOpen('InetURL:/1.0', INTERNET_OPEN_TYPE_PRECONFIG,nil, nil, 0); 할당된 경우(hsession) hfile 시작:= InternetOpenUrl(hsession, pchar (url), nil, 0, INTERNET_FLAG_RELOAD, 0); 0; dwCodeLen := 10; HttpQueryInfo(hfile, HTTP_QUERY_STATUS_CODE, @dwcode, dwcodeLen, dwIndex); res := pchar(@dwcode); /200,302 할당된 경우 재배치 취소 플래그(hfile) InternetCloseHandle(hfile); InternetCloseHandle(hsession) end;
이메일 주소를 처리하는 방법은 다음과 같습니다. function IsEMail(EMail: String): Boolean; var s: String: Integer; start ETpos:= pos('@', EMail); ETpos > 1이면 시작 s:= copy(EMail,ETpos+1,Length(EMail)) if (pos('.', s) > 1) and (pos('.', s) <length(s)) then Result:= true else Result:= false; end else Result:= false end; if isemail(Edit1.Text) then start ShowMessage('eMail-Address!') end;
다음 기능은 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/매개변수',
'네임서버',
sIP);
// Windows 95를 사용하는 경우 다음 코드를 사용하십시오.
SaveStringToRegistry_LOCAL_MACHINE(
'시스템/현재 제어 세트' +
'/서비스/VxD/MSTCP',
'네임서버',
sIP);
end; 여기서 SaveStringToRegistry_LOCAL_MACHINE이 정의됩니다.
레지스트리를 사용합니다.
프로시저 SaveStringToRegistry_LOCAL_MACHINE(
sKey, sItem, sVal : 문자열 );
var
등록: TRegIniFile;
시작하다
reg := TRegIniFile.Create( '' );
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.WriteString( sKey, sItem, sVal + #0 );
등록.무료;
끝;