Desaparecer consola

Dudas sobre el C/C++ en general
Responder
Mensaje
Autor
alex1510
Mensajes: 43
Registrado: 26/10/2009 11:07 am

Desaparecer consola

#1 Mensaje por alex1510 » 22/11/2009 4:14 am

Hola buenas, simplemente me gustaria saber como hago para hacer que, si yo desde un programa llamo a un ejecutable, que en este ejecutable no apareza un destello de la consola en pantalla, que es muy molesto, ya que cada minuto que le llamo, se ve un destello. Seria por ejemplo llevarlo a segundo plano.
Por si sirve de algo, yo llamo a el ejecutable asi:

Código: Seleccionar todo

unsigned int ProgramExecute( char* Program_Name )
{
	PDLRTAllowSetForegroundWindow(NULL, NULL, NULL);
	// This function will start any Windows Programm
	// if return value > 31 the programm started successfully
	return (  WinExec( Program_Name,	
	             SW_SHOWNORMAL )	 );	 
}

Avatar de Usuario
postit
Mensajes: 59
Registrado: 14/11/2008 9:42 am

#2 Mensaje por postit » 22/11/2009 4:24 am

Prueba a poner un getchar(); antes del return, saludos.
int n[]={0x48,0x65,0x6C,0x6C,0x6F,0x2C,0x20,0x77,0x6F,0x72,0x6C,0x64,
0x21,0x0A,0x00},*m=n;main(n){putchar(*m)!='\0'?main(m++):exit(n++);}

alex1510
Mensajes: 43
Registrado: 26/10/2009 11:07 am

#3 Mensaje por alex1510 » 22/11/2009 7:45 am

No, no me han entendido bien, lo que quiero es no tener constancia de que se este ejecutando, no mantener la consola. Se trata de ejecutar el programa sin que me entere

Avatar de Usuario
untio
Mensajes: 389
Registrado: 17/09/2008 9:35 am
Ubicación: Provincia de Almería
Contactar:

#4 Mensaje por untio » 22/11/2009 9:39 am

Hola a todos,
Hay una función en el api de windows que se llama CreateProcess.
La definición es:

Código: Seleccionar todo

BOOL CreateProcess(
  LPCTSTR lpApplicationName,
  LPTSTR lpCommandLine,
  LPSECURITY_ATTRIBUTES lpProcessAttributes,
  LPSECURITY_ATTRIBUTES lpThreadAttributes,
  BOOL bInheritHandles,
  DWORD dwCreationFlags,
  LPVOID lpEnvironment,
  LPCTSTR lpCurrentDirectory,
  LPSTARTUPINFO lpStartupInfo,
  LPPROCESS_INFORMATION lpProcessInformation
);
El parámetro dwCreationFlags se forma con | entre varias banderas.
Pues bien, entre las posibles está ésta:
CREATE_NO_WINDOW
0x08000000 The process is a console application that is run without a console window. This flag is valid only when starting a console application.
This flag cannot be used with CREATE_NEW_CONSOLE or DETACHED_PROCESS or when starting an MS-DOS-based application.


Espero que te sea útil.

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: JerodBige, Keganmic, KevenRop y 7 invitados