Accueil > Forum > > > > obtenir un HWND
obtenir un HWND
lundi 12 juillet 2004 à 22:50:49 |
obtenir un HWND

youpiyoyo
|
j'aurai besoin de récupérer un hwnd j'ai coder ca HANDLE hSnapShot; PROCESSENTRY32 uProcess; bool r; short PID = 0; //variable qui va stocker l'ID du processus de l'application que l'on désire fermer.
hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL,0); uProcess.dwSize = (DWORD) sizeof(PROCESSENTRY32);
r = Process32First(hSnapShot, &uProcess); do // Cette boucle énnumère tout les processus { if ( strstr(uProcess.szExeFile, ExeName) )//on cherche le nom de notre application dans le chemin d'accès de l'éxécutable du processus. PID = (short) uProcess.th32ProcessID; //MessageBox(0,uProcess.szExeFile,0,0); r = Process32Next(hSnapShot, &uProcess); } while ( r );
return hSnapShot;
ce code récupere tous les process qui sont entrain de tourner, ne faite pas attention au return hSnapShot, a la base c t return PID. Bon voila il me fodrai un HWND par rapport au ExeName, alors a mon avis par le HANDLE, peut etre ou par le pid de la fonction merci de votre solution
|
|
lundi 12 juillet 2004 à 23:05:39 |
Re : obtenir un HWND

AlexMAN
|
Tu peux obtenir un hwnd simplement par son titre, ou encore sa classe, si cette maniere t'interesse, http://www.cppfrance.com/code.aspx?ID=18911
Voila ++
ALhexman
|
|
lundi 12 juillet 2004 à 23:08:16 |
Re : obtenir un HWND
|
lundi 12 juillet 2004 à 23:17:04 |
Re : obtenir un HWND

vecchio56
|
Pas besoin d'une source pour ca, une seule fonction: FindWindow Par contre tu trouvera pas un HWND à partir du nom de l'exe car le nombre de HWND peut être 0, 1, 2... pour un programme donné
|
|
mardi 13 juillet 2004 à 00:02:39 |
Re : obtenir un HWND

aardman
|
Salut, Pourquoi ne ferais tu pas le contraire: a partir d'un HWND tu peux trouver le PID, donc en enumerant les fenetres tu peux te faire la liste des HWND de chaque processus.
|
|
mercredi 14 juillet 2004 à 11:54:11 |
Re : obtenir un HWND

imanewin32
|
j'ai pas bien compris ce code est ce que tu essaye de tuer un processus connu par son pid. car j'en ai besoin pour une application.
|
|
mercredi 14 juillet 2004 à 14:30:00 |
Re : obtenir un HWND

youpiyoyo
|
exactement c t un code ki avait pour but de tuer un processus
c un code ke j'avais codé il y a un bout largement inspirer de msdn....
je te donne tout le code pour ke tu puisse tuer le proccessus en fonction de son titre... destiné a imanewin32
short CALLBACK CClose(char* ExeName) { HANDLE hSnapShot; PROCESSENTRY32 uProcess; bool r; short PID = 0; //variable qui va stocker l'ID du processus de l'application que l'on désire fermer.
hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL,0); uProcess.dwSize = (DWORD) sizeof(PROCESSENTRY32);
r = Process32First(hSnapShot, &uProcess); do // Cette boucle énnumère tout les processus { if ( strstr(uProcess.szExeFile, ExeName) )//on cherche le nom de notre application dans le chemin d'accès de l'éxécutable du processus. PID = (short) uProcess.th32ProcessID;
r = Process32Next(hSnapShot, &uProcess); } while ( r );
CloseHandle(hSnapShot); return PID;
}
/////////////////
DWORD WINAPI /*CBPManagerserverDlg::*/ CALLBACK TerminateApp( DWORD dwPID, DWORD dwTimeout ) { HANDLE hProc ; DWORD dwRet ;
// If we can't open the process with PROCESS_TERMINATE rights, // then we give up immediately. hProc = OpenProcess(SYNCHRONIZE|PROCESS_TERMINATE, FALSE, dwPID);
if(hProc == NULL) { return TA_FAILED ; }
// TerminateAppEnum() posts WM_CLOSE to all windows whose PID // matches your process's. EnumWindows((WNDENUMPROC)TerminateAppEnum, (LPARAM) dwPID) ;
// Wait on the handle. If it signals, great. If it times out, // then you kill it. if(WaitForSingleObject(hProc, dwTimeout)!=WAIT_OBJECT_0) dwRet=(TerminateProcess(hProc,0)?TA_SUCCESS_KILL:TA_FAILED); else dwRet = TA_SUCCESS_CLEAN ;
CloseHandle(hProc) ;
return dwRet ; } ////////////////////////// BOOL CALLBACK TerminateAppEnum( HWND hwnd, LPARAM lParam ) { DWORD dwID ;
GetWindowThreadProcessId(hwnd, &dwID) ;
if(dwID == (DWORD)lParam) { PostMessage(hwnd, WM_CLOSE, 0, 0) ; }
return TRUE ; }
tu auras juste a faire ca
short PID=CClose("NOM de TON APPLICATION, genre Outlook,...., c'est le titre de l'application"); TerminateApp(PID,5000); running= false; WaitForSingleObject(hThread,1000); CloseHandle(hThread);
cette manière et fortement conseiller par microsoft pour terminer une application apres c a chacun de voir...
pour revenir a AlexMAN m'a proposé comme source je l'a trouve tres interessante et je vais faire un peux de ta sauce plus ce ke je connais si cela t'interesse... a aussi un truc je sais po pourkoi fodrai ke je regarde de facon plus appronfondi, mais pendant ton SetWindowText, il y a une couille, a la fin il me met un caractere bizard...., et chez moi pour ke le prog ne merde po j'ai du initialiser tout tes char a NULL c'est-à-dire par ex char cChoice="";, et ainsi de suite, car ca compil mais lors de l'execution il me di ke la variable n'a po ete initialisé donc... (c'est des détails, ne t'en fais po c po une critike)
voila c tout merci a tous
|
|
mercredi 14 juillet 2004 à 14:39:21 |
Re : obtenir un HWND

AlexMAN
|
C'est vrai pour l'histoire du SetWindowText, mais ca ma pas semblé tres important donc j'ai pas cherché a comprendre...
++
|
|
mercredi 14 juillet 2004 à 14:40:11 |
Re : obtenir un HWND
|
Cette discussion est classée dans : hwnd, processus, pid, uprocess, hsnapshot
Répondre à ce message
Sujets en rapport avec ce message
block touche system utile [ par Tautau ]
bon j'ai geleré pour trouver tout ca et ce n'est peut etre pas la meilleur facon de le faire mais je vous en fais part //// Ce sont des codes que j'ai
forcer une fermeture [ par baby3378 ]
Bonjour sa tous, je cherche le moyen de fermer un processus de force, je m'explique:_Y'a pas longtemps j'ai réinstallé tout mon system et dés que le t
récupérer le processus père à partir du pid fils [ par pioonice ]
Bonjour,Sous windows, avec Visual C++ 6...Est-il possible de récupérer le numéro de processus père à partir d'un numero de processus du fils?J'ai une
Subclassage de Word 2007 [ par braxivamov ]
Bonjour dans mon projet je subclasse l'application word 2007 pour y ajouter un bouton.J'ai donc implémenté dans une dll un hook shell ou je ne subclas
Trouver le pid d'un processus depuis son nom (C++) [ par tekila_bandita ]
Bonjour !Donc voila, cela fait un moment que je cherche mais je n'y arrive pas...Quelqu'un aurait-il une fonction pour trouver le pid d'un processus à
information ipc [ par miouxmioux ]
Bonjour à tous, Je travaille en ce moment avec les ipc, et plus spécialement avec les files de messages. J'ai pu voir que l'on pouvait récuperer le
Recuperation PID procecuss [ par themaste ]
Bonjour a tous!Voila, je suis a la recherche d'un code simple simple pour pouvoir récupérer le PID d'un processus, à partir de son nom.J'aimerais util
Petit Programme [ par jarod05 ]
Bonjour, Je suis à la recherche d'un code qui me permet : de lire sur la ligne de commande en utilisant argc et argv le nbre N de processus à cré
Trouver l'Hwnd avec le PID [ par Crew209 ]
Bonjour j'aimerais trouver le l'HWND d'une fenètre grace au PID du process.Merci de me répondre :)Crew209
Ligne comande processus avec hwnd fenetre [ par unrealgun ]
Bonjour, Je voudrais savoir comment obtenir le handle, la ligne de commande, le nom d'exe et le ID du processus correspondant a une fenetre dont j'ai
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|