una - titulo c++
Ventana de consola oculta de programación Win32 (7)
Estoy aprendiendo C ++ e hice un nuevo programa y eliminé parte del código y ahora la ventana de la consola no se oculta. ¿Existe alguna forma de hacer que se esconda en el inicio sin que lo vean?
Como ya se dijo, el inicio de la aplicación con la consola o no se establece en el exe. Usando el compilador gnu, la opción es -mwindows para ninguna consola, por ejemplo
g++ -mwindows winapp.c
parece que el método
#define _WIN32_WINNT 0x0500
#include <wincon.h>
....
case WM_CREATE :
ShowWindow (GetConsoleWindow(), SW_HIDE);
cierre también todas las consolas principales, así que si ejecuta winapp.exe desde una consola de línea de comandos, esto también se cerrará!
Para ocultar / mostrar literalmente la ventana de la consola a petición, puede usar las siguientes funciones: Es posible ocultar / mostrar la consola usando ShowWindow . GetConsoleWindow recupera el identificador de ventana utilizado por la consola. IsWindowVisible puede usar IsWindowVisible para verificar si una ventana (en ese caso, la consola) es visible o no.
#include <Windows.h>
void HideConsole()
{
::ShowWindow(::GetConsoleWindow(), SW_HIDE);
}
void ShowConsole()
{
::ShowWindow(::GetConsoleWindow(), SW_SHOW);
}
bool IsConsoleVisible()
{
return (::IsWindowVisible(::GetConsoleWindow()) != FALSE);
}
Puedes crear tu ventana minimizada. O píntalo fuera de la pantalla visible.
Pero también podrías haberte metido con las banderas de creación de ventanas. Si realmente arruinaste las cosas. A menudo es mejor comenzar una nueva ventana. (O restaurar desde una versión anterior, o la copia de seguridad).
Solía usar ShowWindow (GetConsoleWindow(), SW_HIDE);
en tal caso, sin embargo, si no necesita consola, no cree un proyecto de aplicación de consola.
Suponiendo que está en Windows, configure su enlazador para hacer un programa GUI, no un programa de consola.
- VS: Mira en las opciones del enlazador en las propiedades del proyecto
- ENLACE: agregar / SUBSISTEMA: WINDOWS
- MinGW: -mwindows
Si está escribiendo un programa de consola y desea desconectar su programa de la consola con la que comenzó, llame a FreeConsole
. En última instancia, probablemente no estará satisfecho con lo que realmente hace esa función, pero esa es la respuesta literal a la pregunta que hizo.
Si está escribiendo un programa en el que nunca desea tener una consola, configure su proyecto para que no sea un programa de consola. "Consoleness" es una propiedad del archivo EXE. El sistema operativo lee esa configuración y decide si asigna una consola a su programa antes de que se ejecute cualquiera de sus códigos , por lo que no puede controlarlo dentro del programa. A veces, un programa que no es de consola se denomina "programa GUI", por lo que puede buscar una opción entre "consola" y "GUI" en las opciones de configuración de su entorno de desarrollo. Sin embargo, establecerlo en GUI no requiere que tenga ninguna interfaz de usuario. La configuración simplemente controla si su programa comienza con una consola.
Si está intentando escribir un programa que a veces puede tener una consola y otras no, entonces vea una pregunta anterior: ¿Puede un ejecutable ser una consola y una aplicación GUI?
#include <windows.h>
#include <iostream>
using namespace std;
void Stealth()
{
HWND Stealth;
AllocConsole();
Stealth = FindWindowA("ConsoleWindowClass", NULL);
ShowWindow(Stealth,0);
}
int main()
{
cout<<"this sentence is visible/n";
Stealth(); //to hide console window
cout<<"this sentence is not visible/n";
system("PAUSE");
return EXIT_SUCCESS;
}