Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: serakkkk en 4 Julio 2015, 17:48 pm



Título: Duda lazarus
Publicado por: serakkkk en 4 Julio 2015, 17:48 pm
Hola muy buenas!

Estoy haciendo un programa simple en lazarus para windows con funciones también bastante simples por ir aprendiendo...y ahora mismo estoy haciendo una función en el que escribes un dominio y te haga un nslookup de este dominio...el codigo importante para la duda es:

writeln('Introduzca el nombre del dominio:');
readln(D);
if D<>'' then
ShellExecute(0, nil, 'cmd.exe', '/c nslookup '+D+'>nslookup.txt', nil, SW_HIDE);

El problema es que no me deja meter la variable  D dentro del ShellExecute (declarada String) con el siguiente error:

Got antiString expected Pchar

Seguramente sea error de novato...pero le he dado varias vueltas y no lo veo...

Gracias y un saludo.


Título: Re: Duda lazarus
Publicado por: crack81 en 5 Julio 2015, 21:13 pm
Prueba este ejemplo probado en lazarus 1.2

Código
  1.  Classes,shellapi,sysutils
  2.  { you can add units after this };
  3.  
  4. var
  5.  dominio:string;
  6. begin
  7.   writeln('Introduzca el dominio');
  8.   readln(dominio);
  9.  
  10.   if dominio<>'' then
  11.     ShellExecute(0, 'open','cmd.exe',pchar('/k nslookup '+dominio+'>C:\nslookup.txt'), nil, 0);
  12.  
  13.   writeln('Listo');
  14.   readln;
  15.  
  16. end.
  17.  


Título: Re: Duda lazarus
Publicado por: serakkkk en 7 Julio 2015, 09:14 am
Lo voy a probar en cuanto vuelva a casa y te digo algo pero tiene buena pinta jejeje! Muchas gracias!


Título: Re: Duda lazarus
Publicado por: serakkkk en 7 Julio 2015, 21:31 pm
Efectivamente así era! Aunque es una chorrada me ha dado una buena alegria verlo funcionar jejeje! Muchas gracias!