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 

Ocultar consola ejecutando proceso.

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Ocultar consola ejecutando proceso. Responder citando

Hola chicos, a ver si me podeis ayudar, pues yo en el API de Windows me pierdo bastante.

Desde mi aplicación he dado la posibilidad de realizar copias de seguridad de las bases de datos utilizadas por Firebird 1.5, mediante el uso de la herramienta de consola gbak. Actualmente está ya funcionando correctamente, lo único que me gustaría es saber como puedo ocultar la ventana con la consola que me abre para ejecutar el proceso, por ahora aparece la ventana y cuando termina de ejecutarse gbak esta desaparece correctamente.

Utilizé el mismo código que utilizo para arrancar el servidor si este esta OFF.

El código es algo así:
Código:

  TRegistry *lRegistry = new TRegistry();
  STARTUPINFO lStartUpInfo;
  SECURITY_ATTRIBUTES lSecurityAttr;
  PROCESS_INFORMATION lProcessInfo;
  AnsiString ruta_al_fbserver;
  try {
     lRegistry->RootKey=HKEY_LOCAL_MACHINE;
     if (!lRegistry->OpenKey("SOFTWARE\\Firebird Project\\Firebird Server\\Instances", false)) {
        ShowMessage("Firebird Server no está instalado en este sistema.");
     } else {
        AnsiString fecha_sistema=Now().FormatString("yyyymmdd.hhnn");
        AnsiString opciones="\\bin\\gbak.exe -b  -t -v -y Z:\\BACKUP\\" + fecha_sistema + ".log -user xxxx -password \"xxxx\" C:\\XXXXX\\XXXX.GDB Z:\\BACKUP\\" + fecha_sistema + ".GBK";
        ruta_al_fbserver=lRegistry->ReadString("DefaultInstance") + opciones;
     }

     ZeroMemory(&lStartUpInfo, sizeof(lStartUpInfo));
     ZeroMemory(&lProcessInfo, sizeof(lProcessInfo));
     lStartUpInfo.cb=sizeof(lStartUpInfo);
     lSecurityAttr.nLength= sizeof (lSecurityAttr);
     lSecurityAttr.lpSecurityDescriptor=NULL;
     lSecurityAttr.bInheritHandle=true;

     if (CreateProcess(0, ruta_al_fbserver.c_str(), &lSecurityAttr, NULL, false, 0, 0, 0, &lStartUpInfo, &lProcessInfo)!= NULL) {
         ShowMessage("Proceso de copia de seguridad lanzado.");
     } else {
         ShowMessage("Se ha producido un error al lanzar el proceso de copia de seguridad.");
     }
      ..........


¿Alguna sugerencia de qué debo hacer?

Ciao y gracias por adelantado.
_________________
OJO!! Ya tenemos subforo de Bases de Datos!!
Gracias a los admins.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Acabo de ver como resolverlo con ShellExecute.

Ciao y Feliz Navidad.
_________________
OJO!! Ya tenemos subforo de Bases de Datos!!
Gracias a los admins.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: hola amigo Responder citando

Bueno en mi editor simple yo use WinExec("cadena ms-dos o .exe el que sea",SW_HIDE); no recuerdo bien los parametros, pero si te sirve en la seccion de tips y tricks hay uno que usa pipes y sirve perfecto cuando son procesos de 32bits, a mi no me sirvio ya que el tasm 3.1 es de 16 bits y no se puede tomar el handle de esos procesos.

espero te sirva un poco esto.

Un saludo!
_________________
"Quid quid agis prudenter agas et respice finem"
(Hagas lo que hagas, actúa inteligentemente y considerando el fin)
MyNeoReport - the "FREE" Report Generator for .NET
http://myneoreport.sourceforge.net/
(funciona en Delphi for .NET Wink )
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor Yahoo Messenger 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.