PDA

Ver la Versión Completa : Cambiar propiedades de TPC IP desde código


Rolando Glez
06-10-2011, 17:40:45
Hola amigos hay un fichero con extension cpl en WINDOW XP que es el encargado de cambiar las propiedades de redes entre ellas esta el protocolo TPC IP bueno se podrá cambiar estos valores es decir # ip,puerta de enlace, etc por codigo delphi de forma fija es decir sin interactuar con una interface como lo hace el programa cpl de Windows ,

chaloc
09-10-2011, 01:41:48
mmm pues mediante la api lo desconozco, yo sabia hacerlo con ms-dos pero cuando me vi obligado a realizarlo con delphi para una aplicación aca en el trabajo realicé cree un archivo bat que realiza el cambio lo ejecuto y luego lo elimino. Se que es un método poco ortodoxo pero funciona, espero que los genios del club puedan darte otra solución, esto es lo que hice:

meti este código en un boton

var F: TextFile; //archivo bat que crearemos
ruta: string; //ruta del archivo creado
ruta := ExtractFilePath(application.ExeName); //obtenemos la ruta de nuestro ejecutable
ruta:= ruta + '/cambiarip.bat';
//Creamos el archivo con la ruta obtenida
AssignFile(F, ruta);
Rewrite(F);
//Ponemos las lineas necesarias a nuestro bat
writeln(F, '@echo off');
writeln(F, 'cls');
writeln(F, 'Echo La operacion ha comenzado');
writeln(F, 'Echo no cierre esta ventana');
//"Conexion de area local" es el nombre de tu conexion IpRed.text contiene la ip, ponemos la máscara de subred y la puerta de enlace (puertaRed.text)
writeln(F, 'netsh interface ip set address "Conexion de area local" static '+ IpRed.text + ' 255.255.255.0 '+ puertaRed.text + ' 1');
//cambiamos el dns preferido y alternativo
writeln(F, 'netsh interface ip set dns "Conexion de area local" static ' + DnsPreRed.text);
writeln(F, 'netsh interface ip add dns "Conexion de area local" addr=' + DnsAltRed.text);
writeln(F, 'Echo Ips cambiadas, gracias'); //cerramos archivo CloseFile(F);
//lo ejecutamos
WinExec(PChar('cambiarip.bat'),SW_SHOWNORMAL);


Espero que te sirva

Rolando Glez
12-10-2011, 16:36:07
Muchas gracias Chaloc he resuelto con su sugerencia, no será ortodoxa pero funsiona correctamente