Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1691 connectés 

  FORUM HardWare.fr
  Programmation

  [VC++] passer d'un PID a un HWND ??

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VC++] passer d'un PID a un HWND ??

n°68145
Kouye
Posté le 29-10-2001 à 11:52:45  profilanswer
 

voila .. j'ai fait un prog qui scan tous les process actifs .. et j'aimerai leur envoyer un WM_message (pour fermer un programme).
pour envoyer un WM_ j'ai besoin d'un HND vers la fenetre en question.. comment faire pour passer de mon PID a mon HWNM (ou celui des fenetres qui viennet de ce process)
je suis perdu .. j'ai cherché sur CodeGurru et dans la MSDN et je trouve pas  :cry:  
 
merci de me dire ce que vous en pensez.
 
ps: cela fait pas longtemps que je fais du VC++.

mood
Publicité
Posté le 29-10-2001 à 11:52:45  profilanswer
 

n°68156
El_gringo
Posté le 29-10-2001 à 12:15:31  profilanswer
 

En tout cas, niveau sur le plan de l'incompréensibilité, c nickel... si tu veux parler façon expert, soit précis dans tes mots, et fais gaffe ... à mon avis, tu devrais te relire !

n°68160
El_gringo
Posté le 29-10-2001 à 12:18:15  profilanswer
 

Et puis sinon, si g compris ce que tu veux, essaye avec OpenProcess, en mettant le flag d'accès à PROCESS_DUP_HANDLE. Ou une autre flag d'ailleur, peut être PROCESS_ALL_ACCESS, regardes.

 

[edtdd]--Message édité par El_Gringo--[/edtdd]

n°68172
Kouye
Posté le 29-10-2001 à 13:12:35  profilanswer
 

bon je réexplike e nun peu plus clairement ce que je veux faire :
 
je cherche paris tous les process celui done l'exe correspontra a tel programme :
par exmeple je cherche a fermer icq le nom de l'exe est Icq.exe .. et je cherche le process qui correspond, là j erécupère le PID.. et j'aimerai terminer ce process.
pour cela j'ai la fonction POSTMESSAGE qui nécéssite un HWND et un MSG WM_CLOSE.
mais je n'arrive pas a trouver le HWND d'un process ou Le HWND des fenetre enfant de ce process (si je m'embrouille pas avec les noms).
 
voila :)

n°68184
El_gringo
Posté le 29-10-2001 à 14:08:18  profilanswer
 

Alors...
déja, tu peux pas faire un send message à un thread, parce que sendmessage (ou postmessage) c pour envoyer des messages à une fenêtre. D'ailleur ça prend un HWND (qui est une abréviation de Handle Window je pense). En fait ce dont tu as besoin, c de récupérer le Handle du process. ça, tu dois pouvoir le faire avec la fonction que je t'ai donnée au dessus. Avec ce Handle, t'utilises la fonction TerminateProcess.
 
Voila... et encore un truc : tu peux trouver plein de choses avec la msdn, en allant dans l'onglet Sommaire, puis SDL platform-->Reference :D.

n°68192
Kouye
Posté le 29-10-2001 à 14:34:36  profilanswer
 

lol merci je vais réessayer comme ça alors :)
 
sinon j'ai trouvé une calsse EnumWinModules qui me permet de récupérer tout ce que je veux :))
 
merci :)

n°68200
El_gringo
Posté le 29-10-2001 à 14:55:18  profilanswer
 

...même que, si j'me permettais, j'te conseillerai d'utiliser plutot EnumWindowProc

n°68266
Kouye
Posté le 29-10-2001 à 20:02:44  profilanswer
 

Décidément j'ai bcp de mal :(
 
j'appelle ceci :
EnumThreadWindows( pEntry.th32ProcessID , EnumThreadWndProc, NULL);
 
sachant que j'ai déclaré dans mon .h :
BOOL CALLBACK EnumThreadWndProc(HWND hwnd, LPARAM lParam)
mais je capte pas .. il me dit :
'EnumThreadWindows' : cannot convert parameter 2 from 'int (struct HWND__ *,long)' to 'int (__stdcall *)(struct HWND__ *,long)'

n°68280
Kouye
Posté le 29-10-2001 à 20:41:54  profilanswer
 

MAJ
 
oué j'ai trouvé :)
 
en fait dans mon .h je devais déclarer ma fonction :
protected:
static BOOL CALLBACK EnumThreadWndProc(HWND hwnd, LPARAM lParam)

n°68393
El_gringo
Posté le 30-10-2001 à 09:07:57  profilanswer
 

ouais, ou, si t en C++, tu déclares simplement ce truc en dehors de la définition de ta classe... c comme ça ! Le compilateur l'a décidé ainsi. Et, c admis pour tous, au pays de la programmation, le compilateur est roi (celui qui est pas d'accord lève le doigt)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [VC++] passer d'un PID a un HWND ??

 

Sujets relatifs
Passer de PHP à ASP ?? Quels pièges à éviter ?[delphi] Comment passer le focus a un Tform
[Delphi] Passer un string en fractionPHP: comment passer une valeur vers une autre page?
[vb] passer d'un doc en excelPasser d'une chaine de chiffre à une chaine de bit???
[Calques] Passer d'un calque a un autre... C'est possible ?[PHP / Javascript] Problème pour passer des paramètres!
[HTML] comment pâsser un parametre dans une frame ?PHP // passer un tableau en argument
Plus de sujets relatifs à : [VC++] passer d'un PID a un HWND ??


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR