Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-05-2007
Avatar de Peterman
Peterman Peterman is offline
Miembro
 
Registrado: jun 2006
Ubicación: Almeria (España)
Posts: 50
Poder: 18
Peterman Va por buen camino
Red face Problema a la hora de ejecutar un .exe desde mi programa!!!

Buenas coleguis,

lo que me ocurre es que llevo intentando durante bastante rato como ejecutar un .exe desde mi programa en Borland C++Builder 6 y no se que pacha porque aparentemente el compilador se lo traga pero no me hace nada...me gustarían que viesen las distintas formas con las que he probado:



//----------------------------------------------------------------------
void __fastcall TFPrincipal::Button1Click(TObject *Sender)
{

///////////Vamos a intentar echar a gnuplot a andar//////////
ShowMessage("Estamos intentando mostrar una puta grafica");


// 1º forma:
// WinExec("c:\gnuplot4.2\bin\pnnuplot.exe c:\gnuplot4.2\demo\discrete.dem", SW_SHOWNORMAL);


//2º forma:
// WinExec("c:\windows\notepad.exe",SW_SHOWNORMAL);



//3º forma:
// WinExec("c:\gnuplot4.2\bin\wgnuplot.EXE", SW_NORMAL);


//4º forma:
//WinExec("c:\gnuplot4.2\LineaComandos.bat",SW_NORMAL);

//5º forma:
ShellExecute(0, "open", "c:\gnuplot4.2\bin\pnnuplot.exe c:\gnuplot4.2\demo\discrete.dem", 0, 0, SW_SHOWNORMAL);


//6º forma:
/*
AnsiString dibujo;
dibujo= "c:\gnuplot4.2\demo\discrete.dem";
ShellExecute(0,"open","c:\gnuplot4.2\bin\pnnuplot.exe",dibujo.c_str(),0,SW_SHOW);
*/

}
//----------------------------------------------------------------------


La 4º forma está basada en ejecutar un archivo .bat que me he fabricado con esta linea de comando:
C:\gnuplot4.2\bin\pnnuplot.exe c:\gnuplot4.2\demo\discrete.dem


Bueno, pues ejecuto mi programa, y le doy al botón; me salta el showmessage pero no ejecuta nada de nada.

(Si lo hago directamente desde la linea de comandos, el programa se me ejecuta bien, lo digo para que quede en acta que el programa que quiero ejecutar funciona).

Bueno, pues nada, muchas gracias y haber si pudierais facilitarme una solucion.
Gracias a todos, Juan Pedro

Responder Con Cita
  #2  
Antiguo 12-05-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Si no recuerdo mal debes indicar las barras invertidas así: "\\". Es decir, por ejemplo:

Código:
WinExec("c:\\gnuplot4.2\\bin\\wgnuplot.EXE", SW_NORMAL);
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 22-05-2007
Avatar de Peterman
Peterman Peterman is offline
Miembro
 
Registrado: jun 2006
Ubicación: Almeria (España)
Posts: 50
Poder: 18
Peterman Va por buen camino
De lujo, socio

La solucion era más sencilla de lo que me esperaba. Gracias por la ayuda...Problema Solucionado...


Ahí queda algunas formas de ejecutar un programa desde nuestro programa.

Adios y Gracias
Responder Con Cita
  #4  
Antiguo 22-05-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
mmm...

Y como lo solucionaste? Digo, para que si alguién más tiene tu mismo problema pueda encontrar la solución...


Saludos...
Responder Con Cita
  #5  
Antiguo 23-05-2007
Avatar de maxid
maxid maxid is offline
Miembro
 
Registrado: ene 2006
Posts: 38
Poder: 0
maxid Va por buen camino
winexec ya caducó

La funcion winexec esta por compatibilidad y es una rutina para 16b, lo que tenes que hacer es crear un proceso.
usando la funcion createprocess
con esto ejecuta y te devuelbe el handle, lo que te sirve para seguirlo, eliminar el procesos o lo que se te ocurra hacer con el..


Function EjecutarProceso(FileName:TFileName;Parametros:String):THandle;
var
procinfo:TProcessInformation;
info:tstartupinfo;
begin
fillchar(info,sizeof(info),0);
info.cb:= sizeof(info);
info.dwflags:= STARTF_USESHOWWINDOW;
info.wShowWindow:= SW_SHOWNORMAL;
If not CreateProcess(nil,
Pchar(filename +' '+Parametros)
,nil,nil,false,0,nil,nil,info,procinfo) then
raise Exception.Create('no se puede crear el proceso');
Result:= procinfo.hProcess;
end;
__________________
Maestro no solo es el que conoce sino el que comparte lo que sabe.
Responder Con Cita
Respuesta



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
Ejecutar un programa desde el navegador Onti Internet 10 03-03-2007 16:50:56
Ejecutar un programa.msi desde mi aplicacion. Hissune Varios 2 08-09-2006 13:26:39
ejecutar un programa desde mi aplicación clanmilano Varios 4 27-01-2006 12:08:28
Ejecutar un programa externo desde un programa de Delphi Roger_Fernandez Varios 3 02-09-2004 18:05:36
Ejecutar prg desde nuestro programa Pablo Carlos API de Windows 1 16-06-2004 02:27:35


La franja horaria es GMT +2. Ahora son las 02:51:47.


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