Hablando de habilidades de programación de Internet en Delphi (1)
Autor: lyboy99 Correo electrónico: [email protected] Delphi viene con muchos controles de programación de aplicaciones de Internet, lo que nos facilita el desarrollo de aplicaciones de Internet. A continuación, presentaré gradualmente algunas habilidades de programación de aplicaciones en Internet. aspectos, pero puede agregar funciones importantes a sus aplicaciones, lo que le facilitará el desarrollo de aplicaciones en Internet. Después de la narración inicial, primero introduzcamos: configurar el navegador predeterminado del sistema y el software de envío y recepción de correo electrónico predeterminado del sistema. 1. Obtenga la función de dirección predeterminada del navegador de Internet: La siguiente función obtiene la dirección del navegador de Internet predeterminado leyendo la función de configuración del registro GetDefaultShellHTTP: string;varreg: TRegistry;begin Reg:=TRegistry.Create Reg .RootKey:=HKEY_CLASSES_ROOT; si Reg.KeyExists('http/shell/open/command') entonces comience Reg.OpenKey('http/shell/open/command',false); Result:=Reg.ReadString(''); end else Result:=''; Configure el procedimiento del navegador de Internet SetDefaultShellHttp. (CmdLine: cadena);varreg: TRegistry;begin Reg:=TRegistry.Create; Reg.RootKey:=HKEY_CLASSES_ROOT; //La dirección del registro: Reg.OpenKey('http/shell/open/command',true);//La dirección del registro: Reg.WriteString('',CmdLine); Reg. Gratis;end;setDefaultshellhttp('"C:/PROGRA~1/INTERN~1/iexplorer.exe" -nohome');3. Obtener y configurar la función del software de envío y recepción de correo electrónico predeterminado La siguiente función obtiene la dirección del software de envío y recepción de correo electrónico predeterminado leyendo la función de registro GetDefaultMail: string; varreg: TRegistry; comenzar Reg:=TRegistry.Create; Reg.RootKey:=HKEY_CLASSES_ROOT; si Reg.KeyExists('Mailto/shell/open/command') entonces comenzar Reg.OpenKey('Mailto/shell/open/command',false); Result:=Reg.ReadString(''); end else Result:=''; (CmdLine: cadena);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. ¿Alguna vez has querido tener una función para convertir un nombre de dominio en una dirección IP? Ahora te daré una función para convertir un nombre de dominio en una dirección IP: función ObtenerNombreIP(Nombre: cadena): cadena;var WSAData: TWSAData; HostEnt: PHostEnt; comenzar WSAStartup(2, WSAData); HostEnt := gethostbyname(PChar(Nombre)); d.%d', [Byte(h_addr^[0]), Byte(h_addr^[1]), Byte(h_addr^[2]), Byte(h_addr^[3])]); WSACleanup;end; 6. Al escribir software de Internet, a menudo se encuentra verificando la URL, la dirección de correo electrónico, etc. ingresada por el usuario. ¿Cómo solucionar este problema? Resulta que tengo una función escrita aquí. Verificar si una URL es válida usa wininet; Función CheckUrl(url:string):boolean; //Verificar si una URL es válida función var hsession, hfile, hRequest: hInternet,dwcodelen:dWord; 20] de char; res: pchar; comenzar si pos('http://',minúsculas(url))=0 entonces url := 'http://'+url; Resultado := false; hSession := InternetOpen('InetURL:/1.0', INTERNET_OPEN_TYPE_PRECONFIG,nil, nil, 0); si está asignado (hsession), comience hfile := InternetOpenUrl(hsession, pchar). (url), nulo, 0, INTERNET_FLAG_RELOAD, 0); 0; dwCodeLen := 10; HttpQueryInfo(hfile, HTTP_QUERY_STATUS_CODE, @dwcode, dwcodeLen, dwIndex); res := pchar(@dwcode); /200,302 indicador de reubicación si está asignado (hfile) entonces InternetCloseHandle(hfile); InternetCloseHandle(fin de sesión);
Cómo manejar las direcciones de correo electrónico, aquí hay una función de procesamiento de direcciones de correo electrónico IsEMail(EMail: String): Boolean var s: String; ETpos > 1 luego comience s:= copy(EMail,ETpos+1,Length(EMail)); 1) y (pos('.', s) <longitud(s)) entonces Resultado:= verdadero resultado:= falso; fin más Resultado:= procedimiento TForm1.Button1Click(Remitente: TObject); si es correo electrónico (Edit1.Text), comience ShowMessage ('eMail-Address!'); 7. Cambie dinámicamente la dirección del servidor DNS;
La siguiente función puede agregar la dirección del servidor DNS
Si desea agregar 202.100.100.65 202.10.10.10
Establecer direcciones DNS ('202.100.100.65 202.10.10.10');
//Nota: Separe cada dirección con un espacio.
SetTDNSAddresses se define de la siguiente manera: procedimiento SetDNSAddresses( sIPs : cadena );
comenzar
// Si es Windows NT, usa el siguiente código
SaveStringToRegistry_LOCAL_MACHINE(
'SISTEMA/Conjunto de control actual' +
'/Servicios/Tcpip/Parámetros',
'Servidor de nombres',
sIP);
// Si estás usando Windows 95 usa el siguiente código
SaveStringToRegistry_LOCAL_MACHINE(
'SISTEMA/Conjunto de control actual' +
'/Servicios/VxD/MSTCP',
'Servidor de nombres',
sIP);
end;donde se define SaveStringToRegistry_LOCAL_MACHINE:
utiliza Registro;
procedimiento SaveStringToRegistry_LOCAL_MACHINE(
sKey, sItem, sVal: cadena);
var
registro: TRegIniFile;
comenzar
registro := TRegIniFile.Create( '' );
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.WriteString(sKey, sItem, sVal + #0);
reg.Gratis;
fin;