Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-08-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Echa un vistazo en el apartado de Trucos Darwin. Concretamente busca trucos con la palabra clave "ejecutar" y verás.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #2  
Antiguo 23-08-2006
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 22
D-MO Va por buen camino
Cita:
Empezado por dec
Echa un vistazo en el apartado de Trucos Darwin. Concretamente busca trucos con la palabra clave "ejecutar" y verás.
Muchísimas gracias David, no se como se me pasaron por alto los trucos.

Saludos.
Responder Con Cita
  #3  
Antiguo 23-08-2006
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 22
D-MO Va por buen camino
Hola de nuevo David, dejame decirque que tengo un pequeño problema con esta función, y es que necesito enviarle parámetros al programa a ejecutar.
Código Delphi [-]
ShellExecute(Form1.Handle, nil,pChar(Comp.Path+Comp.ExeName),pChar(ActiveFile), nil, SW_SHOWNORMAL);
donde ActiveFile es el parámetro que necesito pasar a el archivo a ejecutar.

Me hechas una mano?

saludos.
Responder Con Cita
  #4  
Antiguo 23-08-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Cita:
Empezado por D-MO
Hola de nuevo David, dejame decirque que tengo un pequeño problema con esta función, y es que necesito enviarle parámetros al programa a ejecutar.

ShellExecute(Form1.Handle, nil,pChar(Comp.Path+Comp.ExeName),pChar(ActiveFile), nil, SW_SHOWNORMAL);

donde ActiveFile es el parámetro que necesito pasar a el archivo a ejecutar.

Me hechas una mano?

saludos.
¿y cual es el problema?
Responder Con Cita
  #5  
Antiguo 23-08-2006
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 22
D-MO Va por buen camino
Cita:
Empezado por seoane
¿y cual es el problema?
jejejeej, lo siento, lo que pasa es que con shellexecute lo hago como lo expresé arriba y todo bién pero me ejecuta el shellexecute uno tras otro y necesito esperar a ejecuar el segundo cuando termine el primero.

Intento hacerlo como lo explican en el truco:
http://www.clubdelphi.com/trucos/ind...ll=0&scrollb=0
Pero no se como pasarles los parámetros extras al ejecutable.

Gracias por contestar Seoane.

Slaudos.
Responder Con Cita
  #6  
Antiguo 23-08-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
En principio solo tienes que pasar el programa que quieres ejecutar y los parámetros separados por espacios, es decir, si quieres ejecutar el notepad y pasarle como parámetro hola.txt, deberías de hacer algo como esto:

Código Delphi [-]
  WinExecAndWait32('notepad.exe hola.txt',sw_show);
Responder Con Cita
  #7  
Antiguo 23-08-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
También puedes modificar la función un poquito:

Código Delphi [-]
function Ejecutar(Filename, Param: string; ShowWindow: WORD): DWORD;
var
  StartupInfo:TStartupInfo;
  ProcessInfo:TProcessInformation;
begin
  GetStartupInfo(StartupInfo);
  StartupInfo.wShowWindow:= ShowWindow;
  if CreateProcess(nil,PChar(Filename + ' ' + Param),nil,nil, FALSE,
    CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,nil,nil,StartupInfo,
    ProcessInfo) then
  begin
    WaitforSingleObject(ProcessInfo.hProcess,INFINITE);
    GetExitCodeProcess(ProcessInfo.hProcess,Result);
  end else
    Result:= DWORD(-1);
end;


// Ejemplo de uso
Ejecutar('notepad.exe','hola.txt',sw_show);
Responder Con Cita
  #8  
Antiguo 23-08-2006
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 22
D-MO Va por buen camino
Cita:
Empezado por seoane
En principio solo tienes que pasar el programa que quieres ejecutar y los parámetros separados por espacios,
Pues ya había intentado esto pero supongo que en algo me equivoque pues no me funcionó, en todo caso si funciona. Gracias.

Me quedo con la función ejecutar que me diste, es mucho mas corta y me confunde menos. He cambiado el valor de retorno a booleano para colocarlo dentro de un if y si devuelve true ejecuto el siguiente código.

He comentado la línea:
Código Delphi [-]
GetExitCodeProcess(ProcessInfo.hProcess,Result);
puesto que involucrava la variable result y debería ser como DWORD y no BOOLEAN, hay algun problema si la dijo asi?


Además, me gustaría tomar el resultado de la ejecución del programa, es decir, lo que mostraría este programa en consola.

En lo que trabajo es un editor, el cual, junto con FreePascal puedo crear/editar/compilar aplicaciones escritas en pascal pero necesito saber cual es el resultado de la compilación, si hubieron errores y ya saben, los mensajes que te manda el compilador si compilas en consola.

Agradezco cualquier comentario.

Saludos y Gracias.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Identificador de llamadas... Sinaloense Varios 4 07-07-2007 21:31:51
Identificador de llamadas en .NET edalmasso Varios 1 18-05-2006 17:02:35
Llamadas al sistema Juan Fuentes API de Windows 1 16-03-2005 16:22:49
ID llamadas telefononicas vichovi API de Windows 3 19-07-2004 13:14:18
identificación de llamadas the darkness Varios 1 02-03-2004 14:05:58


La franja horaria es GMT +2. Ahora son las 13:27:43.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi