Ir al contenido


Foto

Ejecutar otra aplicación desde mi aplicación...


  • Por favor identifícate para responder
11 respuestas en este tema

#1 razadi

razadi

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 681 mensajes
  • LocationMéxico D.F.

Escrito 25 septiembre 2009 - 08:23

:^)  Saludos, creo que redundé en el titulo pero la idea es esa, jejeje  :p

Pues si comuneros, por aquí les traigo otro código espero les sea de provecho, saludos.

Lo primero es Agregar en el uses la unit ShellApi después creamos un procedure y este sería su código



delphi
  1. procedure EjecutaApp(sAplicacion, sArgumentos: string; iVisible: integer);
  2. var
  3.   seInfo: TShellExecuteInfo;
  4.   pseInfo: PShellExecuteInfo;
  5.   wTermina: DWord;
  6. begin
  7.   pseInfo := @seInfo;
  8.   With seInfo do begin
  9.     cbSize := SizeOf(seInfo);
  10.     fMask := SEE_MASK_NOCLOSEPROCESS;
  11.     wnd := Handle;
  12.     lpVerb := nil;
  13.     lpFile := PChar(sAplicacion);
  14.     lpParameters := Pchar(sArgumentos+#0);
  15.     lpDirectory := nil;
  16.     nShow := iVisible;
  17.     hInstApp:=0;
  18.   end;
  19.   {Ejecutamos la aplicación solicitada}
  20.   ShellExecuteEx(pseInfo);
  21.   {RZD::Enero 25, 2006-> Aquí esperamos a que termine la aplicación que abrimos}
  22.   repeat
  23.     wTermina := WaitForSingleObject(seInfo.hProcess,500);
  24.     Application.ProcessMessages;
  25.   until (wTermina <> WAIT_TIMEOUT);
  26. end;



Para llamarlo sólo basta escribir esta línea:


delphi
  1.   EjecutaApp('c:\windows\notepad.exe','c:\archivo.txt',Sw_ShowNormal);



como siempre espero que les sea de utilidad y como lo dije, espero poder darme tiempo para subir todos los codes que tengo, saludos.
(b) (pi) (b)    (y)

  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 25 septiembre 2009 - 08:45

Muchas Gracias por la aportación amigo, pues ya tenemos otra alternativa para ejecutar programas externos desde Delphi ;) (y).

Saludos.
  • 0

#3 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 25 septiembre 2009 - 09:42

Excelente¡¡¡¡¡¡¡, gracias por el aporte :D
  • 0

#4 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 25 septiembre 2009 - 09:51

Que bien, gracias por el aporte amigo razadi.

Salud OS

[off-topic]Por cierto, por ahí se habla de que las cocas aun no están frías :D :D :D[/off-topic]
  • 0

#5 razadi

razadi

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 681 mensajes
  • LocationMéxico D.F.

Escrito 25 septiembre 2009 - 11:12

Que bien, gracias por el aporte amigo razadi.

Salud OS

[off-topic]Por cierto, por ahí se habla de que las cocas aun no están frías :D :D :D[/off-topic]


Jeje, ahí se siguen enfriando, para cuando nos podamos ver ya estarán listas, saludos
  • 0

#6 HSEGURAC

HSEGURAC

    Newbie

  • Miembros
  • Pip
  • 4 mensajes

Escrito 13 abril 2010 - 06:51

hola, gracias por todos estos aportes,, quisiera preguntar una cosa,, como puedo enviar parametros desde una aplicaciona la otra,, es decir como un usuario ingresa con una clave y nombre autorizados,, como le envio esos mismos parametros a la otra aplicacion para saber si el usuario puede ejecutarla o no de acuerdo a sus perfiles de acceso

mil gracias


  • 0

#7 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 13 abril 2010 - 06:57

hola, gracias por todos estos aportes,, quisiera preguntar una cosa,, como puedo enviar parametros desde una aplicaciona la otra,, es decir como un usuario ingresa con una clave y nombre autorizados,, como le envio esos mismos parametros a la otra aplicacion para saber si el usuario puede ejecutarla o no de acuerdo a sus perfiles de acceso

mil gracias



Hola, bienvenido a DelphiAccess, sientete como en casa.

Tienes varias opciones, puedes ver estos hilos a ver si te ayudan.

http://www.delphiacc...hp?topic=2783.0

http://www.delphiacc...hp?topic=2759.0

Salud OS
  • 0

#8 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1.750 mensajes
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Escrito 05 abril 2011 - 08:33

Amigo Razadi, ¡¡¡ME SALVASTE EL PELLEJO!!!

Necesitaba algo EXACTAMENTE como ésto. Muchas muchas gracias...

  • 0

#9 andres1569

andres1569

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 431 mensajes

Escrito 05 abril 2011 - 11:45

Este es uno de esos hilos en que se invierte el orden habitual PREGUNTA - RESPUESTA, en este caso primero Razadi expuso su solución, y mira por dónde 1 año y pico después a TiammatMX le ha venido de perillas, me alegro Felipe  (y)  (y)  :D  :D  :D 

Saludos
  • 0

#10 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1.750 mensajes
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Escrito 05 abril 2011 - 07:51

Este es uno de esos hilos en que se invierte el orden habitual PREGUNTA - RESPUESTA, en este caso primero Razadi expuso su solución, y mira por dónde 1 año y pico después a TiammatMX le ha venido de perillas, me alegro Felipe               

Saludos


¡¡Oh, sí!!, ventajas de hacer una pregunta inteligentemente...  :D :tongue: jajajajajajajajaja
  • 0

#11 luk2009

luk2009

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.040 mensajes
  • LocationSanto Domingo

Escrito 05 abril 2011 - 09:34

pues a mi me da este error cuando trato de compilarlo



delphi
  1. Undeclared identifier: 'Handle'



a que se debe esto?

  • 0

#12 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 06 abril 2011 - 07:11

Cambia Handle por 0:


delphi
  1. wnd := 0; // Handle;



Se debe a que ese código se diseñó, posiblemente, como una función miembro de un formulario. Ese Handle se refiere al HWND de la ventana de los posibles MessageBox. Puedes ponerlo nulo perfectamente.


Saludos.
  • 0




IP.Board spam blocked by CleanTalk.