Recuperer handle

Signaler
Messages postés
389
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
17 décembre 2004
-
Messages postés
398
Date d'inscription
jeudi 30 octobre 2003
Statut
Membre
Dernière intervention
15 juin 2007
-
bonjour,
quelle est la fonction pour recuperer le handle d une fenetre en se servant de argv[0] svp?
et aussi comment la cacher avec la fonction showwindow svp ?
merci d avance

www.morgan06.fr.fm

9 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
argv[0] contient le premier argument de la ligne de commande, rien a voir avec un handle
Messages postés
389
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
17 décembre 2004
1
oué mais pour recuperer le handle de la fenetre du programme on se sert du nom du programme non ??

www.morgan06.fr.fm
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
mais non, pas du tous, tu le récupère au moment ou tu appelles CreateWindow (ou alors je ne comprends pas ton problème)
Messages postés
389
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
17 décembre 2004
1
ba en fait j ai un programme mais c po du win 32 c dans une console ms dos
j aimerait la cacher...
on m a dit de recuperer le handle de la fenetre et de la cacher avec la fonction ShowWindow et l attribut HIDE...
mais bon si tu as plus simple ?

sous dev c++ je faisait compiler en win 32 et comme ça la console etait invisible mais là sous VC++ je sait po faire :(

Merci
www.morgan06.fr.fm
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Tiens essaye avec ca ca devrais marcher ....

#include <windows.h>
#include

int main(int argc, char* argv[])
{
BOOL statConsole;
HWND hwnd;
CHAR ConsoleTitle[128];
DWORD dwCharsRead;

statConsole = SetConsoleTitle("My App Log");
dwCharsRead = GetConsoleTitle(ConsoleTitle, sizeof(ConsoleTitle));

//On recupere le handle de la fenetre
hwnd = FindWindow(NULL,ConsoleTitle);

//On cache la fenetre pendant 5 secondes
ShowWindow(hwnd,0);

Sleep(5000);

//On fait reapparaitre la fenetre
ShowWindow(hwnd,1);

return 0;
}

Le code n'est pas entierement commenté car je ne vois aucune difficulté ...
Si t'as besoin d'info n'hesites pas ...

Samir
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Au fait tu vas surement te demander pourquoi est ce que j'ai redefini le titre de la fenetre pour le recuperer ensuite, ce qui parrait completement idiot puisque argv[0] renvoie le titre mais a une exception près !
argv[0] renvoie C:\VC++\test.exe alors que le titre est "C:\VC++\test.exe" !
Il y a donc une difference au niveau des guillemets !
Voila pourquoi j'ai prefere avoir 2 lignes de codes en plus pour redefinir mon titre au lieu d'en avoir 3 pour concatener le titre et les guillemets ...
Mais les deux methodes sont bonnes....

Voili voilou ...
A++ et bonne prog ....

Samir
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
En gros si tu n'as pas compris l'autre methode voivi le code qui te paraitras surement plus simple.

#include <windows.h>
#include 

int main(int argc, char* argv[])
{
HWND hwnd;
char ConsoleTitle[128];

strcpy(ConsoleTitle,""");
strcat(ConsoleTitle,argv[0]);
strcat(ConsoleTitle,""");

hwnd = FindWindow(NULL,ConsoleTitle);

ShowWindow(hwnd,0);

Sleep(2000);

ShowWindow(hwnd,1);

return 0;
}


Samir
Messages postés
389
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
17 décembre 2004
1
ba deja merci
et puis lol oué je me suis demandé pk tu changeait le titre de la fenetre car moi j ai fait comme ça :

void cacher_fenetre()
{
HWND hwnd;
CHAR ConsoleTitle[128];
DWORD dwCharsRead;

dwCharsRead = GetConsoleTitle(ConsoleTitle, sizeof(ConsoleTitle));

//On recupere le handle de la fenetre
hwnd = FindWindow(NULL,ConsoleTitle);

//On cache la fenetre pendant 5 secondes
ShowWindow(hwnd,0);

}

et ça marche tres bien
merci
www.morgan06.fr.fm
Messages postés
398
Date d'inscription
jeudi 30 octobre 2003
Statut
Membre
Dernière intervention
15 juin 2007
2
Plus simple peut-etre pour récupperer le handle de la console : GetConsoleWindow