Si tu veux simplement que le terminal disparaisse, tu peux compiler avec -mwindows pour GCC (MinGW) et /SUBSYSTEM:windows /ENTRY:mainCRTStartup pour VS. En général on active ces options quand on compile en release.
Si tu veux le faire dynamiquement, comme Woly montre, avec GetConsoleWindow().
git is great because Linus did it, mercurial is better because he didn't.
Le paragraphe "Remarks", c'est pas de la décoration.
"Handle", c'est poignée de porte.
Concrètement, c'est un machin qui permet d'identifier un élément, généralement du Kernel.
Très souvent, un handle, c'est un nombre qui correspond à un indice dans un tableau contenant tous les éléments d'un type données. C'est le cas des handles de fichier, ou 0 indique handle du premier "fichier" ouvert (depuis UNIX, les 3 premiers handle de fichier sont réservés pour la console), etc...
Le handle peut aussi être une adresse qui définit sans équivoque un élément. Dans le cas des Dll, l'handle est l'adresse de début du code de la Dll.
- Edité par bacelar 8 juillet 2016 à 13:58:00
Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
>Non j'ai trouvé mon erreur, juste un include qui manquait!
Ouais, bof, que l'inclusion d'un fichier d'en-tête change la plateforme cible du projet (c'est le sens de la remarque dans la documentation), c'est très très moyen.
> je ne vois pas la difference entre GetConsoleWindow et GetForegroundWindow..
Vous confondez la fenêtre ayant le focus clavier (ForegroundWindow), qui n'est donc pas forcement une fenêtre de l'application de la fenêtre associé à la console de l'application courante (ConsoleWindow).
Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
Tu as surement dû mettre un "Sleep(3000)" en pensant que tu pourrais sélectionner la fenêtre de Notepad.
Le problème c'est que là dés que tu exécutes le programme, GetForegroundWindow() est appelée avant le Sleep(3000) donc c'est la fenêtre de console qui va être prise en compte en premier.
Il faudrait donc inverser ces deux lignes:
// On a 3 secondes pour sélectionner la fenêtre Notepad par ex
Sleep(3000);
HWND hwnd;
hwnd = GetForegroundWindow();
ShowWindow(hwnd, SW_MAXIMIZE);
Après comme l'a dit bacelar, à toi de rajouter les vérifications de valeurs de retour.
Bonjour, on ne supprime pas ses message après avoir reçu de l'aide cela rend la discussion incompréhensible. Je recopie pour archive les messages d'origine et ferme ce sujet.
Cependant je n'arrive pas à l'utiliser, je ne vois pas quelle sont les paramétres à donner pour faire tourner la console en fond ou la faire de nouveau apparaitre..
Jusque la je le fais avec FreeConsole();
Mais si j'ai envie de la faire apparaitre il n'est plus possible il me semble. C'est donc pourquoi cette fonction m'interesse..
C'est quoi d'ailleurs un Handle? Je ne suis pas sur de tout comprendre..
Voici le code, ça compile, mais la fenêtre reste visible..
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
ShowWindow(SW_HIDE, 0);
Sleep(500);
return 0;
}
et encore ceci qui lui ne compile plus du tout..
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
HWND hWn;
ShowWindow(Hwn, 0);
Sleep(500);
return 0;
}
Merci pour la réponse, cependant c'est quoi un HWND? Je ne comprends pas vraiment... Si j'ai bien compris c'est une class qui permet de gérer des fenêtres..? Merci!
Pour compiler j'ai du rajouter :
#define _WIN32_WINNT 0x0500
Merci.
markand a écrit:
Si tu veux simplement que le terminal disparaisse, tu peux compiler avec -mwindows pour GCC (MinGW) et /SUBSYSTEM:windows /ENTRY:mainCRTStartup pour VS. En général on active ces options quand on compile en release.
Si tu veux le faire dynamiquement, comme Woly montre, avec GetConsoleWindow().
Trés bien merci je vais essayer
-----------------------------------------------
Merci pour la réponse,
Non j'ai trouvé mon erreur, juste un include qui manquait!
Ok c'est super merci bien! J'ai une dernière question, j'ai l'impression que le programme ne tourne pas en fond, une fois que je le "hide", je veux qu'il joue des son différents quand je tape sur une touche du clavier, comme un piano avec des beep, mais une fois hide, le programme ne fonctionne pas, j'ai essayé avec FreeConsole(); aussi mais rien à faire..
D'accord bah écoute je vais me diriger vers "GetAsynKey()" Apparemment cela fonctionne même avec l'appli en arrière plan, je vais essayer de chercher pour avoir de meilleurs son que des Beep maintenant, enfin bref problème résolu!
git is great because Linus did it, mercurial is better because he didn't.
git is great because Linus did it, mercurial is better because he didn't.