Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

ejecutar un *exe de otro programa

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: ejecutar un *exe de otro programa Responder citando

hola soy un principiante en la programacion mediante c++ builder 6, he hecho varios programitas c++ builder6 cursando un ciclo superior de telecomunicaciones e informatica y le he cogido el gusto a esto de la programacion y le hecho horas y horas y no me canso.

Bueno me gustaria saber como puedo abrir un programa de mi ordenador con el programa que estoy haciendo mediante un boton.

Gracias.
_________________
Antonio
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mensaje    Asunto: Responder citando

Hola:

Código:

#include <shellapi.h>//Aunque en BCB6 no es necesario incluirla

String sRuta = "c:\\Mis Softwares\\InfoSist\\InfoSist.exe";
ShellExecute(NULL,"open",sRuta.c_str(),NULL,NULL,SW_SHOWDEFAULT);



En el ultimo parametro tienes muchas variantes, puedes encontrar mas informacion en la ayuda en linea de Builder, incluso buscando aqui en el foro AQUI la palabra "ShellExecute" ó "WinExec" sin comillas...

Espero te sirva, y de nuevo, te recomiendo hacer una busqueda en el foro ya que muchas de esas dudas han sido respondidas un monton de veces. Wink

Saludos!
_________________
"Ser inteligente no es ser mas, solo equivocarse menos y no usar Visual Basic"
Atte.
Victor Yañez

Apoyen el Proyecto OpenSource del Club Builder. Ya tenemos componentes Listos!!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Yahoo Messenger MSN Messenger
Mensaje    Asunto: Responder citando

tambien puede hacerlo de la siguiente manera.... con el siguiente codigo...

Código:

int WinExecAndWait32(AnsiString FileName, int Visibility)
{
  char zAppName[512];
  char zCurDir[255];
  AnsiString WorkDir;
  TStartupInfo StartupInfo;
  TProcessInformation ProcessInfo;

  strcpy(zAppName, FileName.c_str());
  WorkDir = GetCurrentDir();
  strcpy(zCurDir, WorkDir.c_str());
  setmem(&StartupInfo, sizeof(StartupInfo), 0);

  StartupInfo.cb = sizeof(StartupInfo);
  StartupInfo.dwFlags = STARTF_USESHOWWINDOW;
  StartupInfo.wShowWindow = Visibility;

  if (!CreateProcess(NULL, zAppName, // pointer to command line string
    NULL, // pointer to process security attributes
    NULL, // pointer to thread security attributes
    false, // handle inheritance flag
    CREATE_NEW_CONSOLE | // creation flags
    NORMAL_PRIORITY_CLASS,
    NULL, // pointer to new environment block
    NULL, // pointer to current directory name
    &StartupInfo, // pointer to STARTUPINFO
    &ProcessInfo))
{
  return -1; // pointer to PROCESS_INF
}
  else
  {
  WaitForSingleObject(ProcessInfo.hProcess,INFINITE);
  DWORD ExitCode;
  GetExitCodeProcess(ProcessInfo.hProcess, &ExitCode);
  return ExitCode;
  }


}

y para ejecutarlo el la siguiente linea, esto realiza la ejecucion de un programa y espera hasta que termine, para continuar con la siguiente linea..
Código:

WinExecAndWait32("regsvr32 BdeInst.dll", SW_SHOWDEFAULT   );

en esta operacion se instala el BDE, y hasta que no termine la instalacion del BDE, el programa no continua..

saludos...
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Gracias Viktor me ha valido; Pero me gustaria saber si en la direccion:
//String sRuta = "G:\\Documents and Settings\\Antonio\\Escritorio\\DATOSVIA.exe";(en mi caso) la podria cambiar por ejemplo por un OpenDialog que seleccionace el programa deseado y me lo habriera, estoy en ello y no consigo dar con la tecla, ¿me podrias ayudar? gracias
_________________
Antonio
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mensaje    Asunto: Responder citando

Claro:

Código:
if(OpenDialog1->Execute())
 {
      ShellExecute(NULL,"open",OpenDialog1->FileName.c_str(),NULL,NULL,SW_SHOWDEFAULT);
 }


Esa seria la forma que buscas...

Suerte!

Saludos Wink
_________________
"Ser inteligente no es ser mas, solo equivocarse menos y no usar Visual Basic"
Atte.
Victor Yañez

Apoyen el Proyecto OpenSource del Club Builder. Ya tenemos componentes Listos!!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Yahoo Messenger MSN Messenger
Mensaje    Asunto: Responder citando

Gracias Viktor funciona perfectamente.
_________________
Antonio
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.