Recuperer handle

morgandetoi06 Messages postés 389 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 17 décembre 2004 - 27 avril 2004 à 22:44
hilairenicolas Messages postés 398 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 15 juin 2007 - 28 avril 2004 à 12:15
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

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

www.morgan06.fr.fm
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
27 avril 2004 à 23:49
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)
0
morgandetoi06 Messages postés 389 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 17 décembre 2004 1
28 avril 2004 à 00:12
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
28 avril 2004 à 00:45
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
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
28 avril 2004 à 00:52
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
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
28 avril 2004 à 00:56
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
0
morgandetoi06 Messages postés 389 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 17 décembre 2004 1
28 avril 2004 à 00:57
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
0
hilairenicolas Messages postés 398 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 15 juin 2007 2
28 avril 2004 à 12:15
Plus simple peut-etre pour récupperer le handle de la console : GetConsoleWindow
0
Rejoignez-nous