Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-12-2005
Drake Drake is offline
Miembro
 
Registrado: dic 2005
Posts: 80
Poder: 19
Drake Va por buen camino
Abrir una aplicacion con un TButton

wenas soy yo de nuevo xD perdonad por molestar tanto en este foro, ahora necesito saber k codigo tengo k introducir en un TButton para aprir una aplicacion k se encuentre en un determinado directorio algo asi como un vinculo a una aplicacion por cierto gracias a todas las respuestas de antes me estan siendo verdaderamente utiles para mi proyecto ^^.
Responder Con Cita
  #2  
Antiguo 30-12-2005
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola Drake, pásate por éste hilo a ver si te ayuda

http://www.clubdelphi.com/foros/showthread.php?t=28552

Saludos y Feliz Año Nuevo

Última edición por Bicho fecha: 30-12-2005 a las 15:20:45.
Responder Con Cita
  #3  
Antiguo 30-12-2005
[Gunman] [Gunman] is offline
Miembro
 
Registrado: dic 2004
Ubicación: Pedreguer.
Posts: 355
Poder: 20
[Gunman] Va por buen camino
Puedes hacerlo de 2 formas (alemnos que yo conozca) la que suelo utilizar es:
Código Delphi [-]
Winexec(Pchar('X:\Ruta\archivo.exe'),SW_SHOWNORMAL);
El primer parámetro de WinExeC es claro, se trata del nombre del programa ejecutable con la ruta incluida. El segundo parámetro indica como se ha de abrir el programa. SW_SHOWNORMAL lo muestra como se abre por defecto.
Aquí hay una lista con los parámetros con que puedes abrir la aplicación:
  1. SW_HIDE = 0;
  2. SW_SHOWNORMAL = 1;
  3. SW_NORMAL = 1;
  4. SW_SHOWMINIMIZED = 2;
  5. SW_SHOWMAXIMIZED = 3;
  6. SW_MAXIMIZE = 3;
  7. SW_SHOWNOACTIVATE = 4;
  8. SW_SHOW = 5;
  9. SW_MINIMIZE = 6;
  10. SW_SHOWMINNOACTIVE = 7;
  11. SW_SHOWNA = 8;
  12. SW_RESTORE = 9;
  13. SW_SHOWDEFAULT = 10;
  14. SW_MAX = 10;
La otra forma es con ShellExecute, que puede abrir cualquier tipo de archivo desde su programa por defecto. Este no lo he utilizado muchas veces, pero es bastante popular.
Para poder usar ShellExecute tienes que incluir la librería ShellAPI a tus uses, ya que esta función se encuentra en esta librería.
Luego es fácil de usar, te lo pongo tal y como está en Trucomania:
[/delphi]
ShellExecute(Form1.Handle,nil,PChar('c:\web\index.htm'),'','',SW_SHOWNORMAL);
[delphi]
De esta función no te puedo decir tanto, sólo que indagues por la librería ShellAPI y por Google.
__________________
l2prog.co.nr
Responder Con Cita
  #4  
Antiguo 30-12-2005
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,

Me permito recuperar el mensaje que Bicho había borrado (tal vez porque se percató que se trataba de C++ Builder y no sobre Delphi) porque creo que la respuesta es válida tanto para Delphi como para C++ Builder.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 30-12-2005
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Perdona DEC ya lo he vuelto a modificar, tienes toda la razón.
Lo escribí antes de darme cuenta que era de C++ y no de Delphi. De todos modos busque en los foros de C++ y la función también es SehllExecute con lo cual parace que también sirve.

Gracias y disculpa las molestias
Responder Con Cita
  #6  
Antiguo 30-12-2005
[Gunman] [Gunman] is offline
Miembro
 
Registrado: dic 2004
Ubicación: Pedreguer.
Posts: 355
Poder: 20
[Gunman] Va por buen camino
Yo no me habia dado cuenta de que estaba en el foro de C++ Builder... Lo siento, no se si sirve...
__________________
l2prog.co.nr
Responder Con Cita
  #7  
Antiguo 30-12-2005
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,

Cita:
Empezado por Bicho
De todos modos busque en los foros de C++ y la función también es SehllExecute con lo cual parace que también sirve.
De hecho las funciones que mencionas pertenecen al API de Windows (Win32) y así existen para cualquier lenguaje que pueda acceder a dicho API. Tratándose de C++ Builder y Delphi... son como hermanos: comparten, por ejemplo, la VCL, lo que no es poco.

Cita:
Empezado por Gunman
Yo no me habia dado cuenta de que estaba en el foro de C++ Builder... Lo siento, no se si sirve...
En este caso al menos sí que puede servir, por lo que digo arriba a Bicho.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #8  
Antiguo 30-12-2005
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Bravo

Bravo bravísimo DEC, no habia caido en el tema del API de Windows y que Builder y Delphi compartieran la VCL.

Me quito el sombrero.

Muchas gracias y saludos
Responder Con Cita
  #9  
Antiguo 30-12-2005
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,

Cita:
Empezado por Bicho
Me quito el sombrero.
¡Vuelve a ponértelo no sea que cogas un resfriado...!
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #10  
Antiguo 30-12-2005
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
No, tranquilo DEC, pero gracias, ahora por suerte tenemos un sol espléndido :-) en la isla, no me hace falta el sombrero, pero al pringao de turno le toca trabajar hasta las 18 cuando toda la empresa se ha ido ya.

Saludos desde mi cubículo
Responder Con Cita
  #11  
Antiguo 30-12-2005
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,

Cita:
Empezado por Bicho
(...) toca trabajar hasta las 18 cuando toda la empresa se ha ido ya.
¡O sea que hace ya más de una hora que estás fuera de tu cubículo, como lo dices! ¿Eh? Tempus fugit... ya lo he dicho... bueno,... y muchos más lo han notado y aun lo notarán.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #12  
Antiguo 30-12-2005
Avatar de OSKR
OSKR OSKR is offline
Miembro
 
Registrado: nov 2004
Ubicación: San Cristóbal/Táchira/Venezuela
Posts: 389
Poder: 20
OSKR Va por buen camino
Thumbs up

Siendo en C++ se puede usar la función system la cual ejecuta comando del SO, por eso se puede hacer system("X:\\Ruta\\archivo.exe"); e incluso darle sus parámetros ahí mismo

Saludos
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad."
Simón Bolívar
(Carta al Coronel Inglés Patricio Cambell 05/08/1829).
Responder Con Cita
  #13  
Antiguo 30-12-2005
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,

Cita:
Empezado por OSKR
Siendo en C++ se puede usar la función system la cual ejecuta comando del SO (...)
No te acostarás sin saber una cosa más. Gracias por esta OSKR.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #14  
Antiguo 30-12-2005
Avatar de OSKR
OSKR OSKR is offline
Miembro
 
Registrado: nov 2004
Ubicación: San Cristóbal/Táchira/Venezuela
Posts: 389
Poder: 20
OSKR Va por buen camino
????
Siempre ayudarè en lo q mi tiempo me permita a la raza (gente de la borland )
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad."
Simón Bolívar
(Carta al Coronel Inglés Patricio Cambell 05/08/1829).
Responder Con Cita
  #15  
Antiguo 31-12-2005
Drake Drake is offline
Miembro
 
Registrado: dic 2005
Posts: 80
Poder: 19
Drake Va por buen camino
muchas gracias a todos por echarme una mano con esto por cierto sabriais hacer que se habra una aplicacion definida en un TEdit en otros palabras k se ejecute la direccion indicada en el Edit y tambien k si el archivo no se encuentra o falla al abrirse muestre un cuadro de advertencia gracias por todo y feliz año nuevo :P

Última edición por Drake fecha: 31-12-2005 a las 15:30:24.
Responder Con Cita
  #16  
Antiguo 31-12-2005
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,

A ver si algo así te da alguna idea:

Código:
#include <Windows.hpp>
#include <ShellApi.hpp>

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  if (FileExists(Edit1->Text)) {
	ShellExecuteA(Handle,"open",Edit1->Text.c_str(),NULL,NULL,SW_SHOWNORMAL);
  } else {
	ShowMessage("Asegúrate de que existe el programa que quieres ejecutar");
  }
}
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #17  
Antiguo 06-01-2006
Drake Drake is offline
Miembro
 
Registrado: dic 2005
Posts: 80
Poder: 19
Drake Va por buen camino
wenas de nuevo todo funciona como keria pero al cargar una aplicacion con las anteriores llamadas la aplicacion k es llamada no puede cargar archivos de configuracion y demas es decir si ejecuto la aplicacion de forma normal todo bien pero si la llamo mediante codigo con un TButton o de cualkier otra forma mediante codigo en un evento falla la carga de los archivos llamados por la aplicacion k se ha llamado ¿por k sucede esto?
Responder Con Cita
  #18  
Antiguo 08-01-2006
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,

Drake, te ha quedado un buen galimatías. Yo no entiendo ni los míos, así que ya me dirás. A ver. Si yo "llamo" a una aplicación, pongamos el bloc de notas, desde mi programa, haciendo uso de la función "ShellExecute", el que el bloc de notas "falle" no tiene que ver con mi "llamada" al mismo. Eso, o algo se escapa. ¿No podrías copiar el código fuente tal como estás tratando de utilizarlo? Creo que podría ser de mucha utilidad aquí.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #19  
Antiguo 10-01-2006
Drake Drake is offline
Miembro
 
Registrado: dic 2005
Posts: 80
Poder: 19
Drake Va por buen camino
No se eske segui mirando y nada si ejecuto el programa todo perfecto el programa lo k hace es ejecutar el siguiente codigo:

Código:
Memo1->Lines->LoadFromFile("datos.txt");
y en el memo1 me carga los datos k hay en el archivo datos.txt, pero si llamo a la aplicacion desde otro programa mediante el comando ShellExecute o System o Winexec al cargar el programa da un error diciendo k los datos no se han podido cargar o "datos.txt couldn't load" o algo asi, vamos en otras palabras la aplicacion me la carga bien pero no puede cargar datos exteriores, llevo dandole vueltas a eso pero nada.
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


La franja horaria es GMT +2. Ahora son las 21:28:28.


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