PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > nzn.fr.delphi > Comment obtenir le hwindow d'une application à partir d'un processId
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
Comment obtenir le hwindow d'une application à partir d'un processId

Réponse
 
LinkBack Outils de la discussion
Vieux 09/10/2007, 15h39   #1
TedIF
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Comment obtenir le hwindow d'une application à partir d'un processId

Bonjour,

Existe-il dans l'API Windows la fonction contraire de
GetWindowThreadProcessId

--

Dominique


  Réponse avec citation
Vieux 09/10/2007, 17h25   #2
Flo
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Comment obtenir le hwindow d'une application à partir d'un processId

je ne comprends pas la question:

The GetWindowThreadProcessId function retrieves the identifier of the
thread that created the specified window and, optionally, the identifier
of the process that created the window.

l'inverse n'a pas de sens puisqu'une application ou un thread petu avoir
créé plein de fenêtres différentes.
  Réponse avec citation
Vieux 09/10/2007, 17h46   #3
TedIF
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Comment obtenir le hwindow d'une application à partir d'un processId

> je ne comprends pas la question:
>
> The GetWindowThreadProcessId function retrieves the identifier of the thread
> that created the specified window and, optionally, the identifier of the
> process that created the window.
>
> l'inverse n'a pas de sens puisqu'une application ou un thread petu avoir créé
> plein de fenêtres différentes.


Je cherche à fermer proprement une application à partir d'une autre
appli, en envoyant un message WM_QUIT.
Je ne dispose que du nom du module. Avec CreateTool32Snapshot et
Process32First je trouve bien trace de mon application à fermer. Mais
comment faire après pour obtenir un handle à utiliser dans le
sendmessage ?

Merci d'avance

--

Dominique


  Réponse avec citation
Vieux 09/10/2007, 18h05   #4
Flo
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Comment obtenir le hwindow d'une application à partir d'un processId

Tu peux passer par EnumWindows. sinon je ne vois pas trop...
  Réponse avec citation
Vieux 09/10/2007, 22h44   #5
Pascal Peyremorte
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Comment obtenir le hwindow d'une application à partir d'un processId

TedIF a écrit :
>> je ne comprends pas la question:
>>
>> The GetWindowThreadProcessId function retrieves the identifier of the
>> thread that created the specified window and, optionally, the
>> identifier of the process that created the window.
>>
>> l'inverse n'a pas de sens puisqu'une application ou un thread petu
>> avoir créé plein de fenêtres différentes.

>
> Je cherche à fermer proprement une application à partir d'une autre
> appli, en envoyant un message WM_QUIT.
> Je ne dispose que du nom du module. Avec CreateTool32Snapshot et
> Process32First je trouve bien trace de mon application à fermer. Mais
> comment faire après pour obtenir un handle à utiliser dans le sendmessage ?
>
> Merci d'avance
>


J'ai eu le même problème, en pire car l'application à surveiller était un .bat
qui (entre autre) lançait un fichier make.exe qui lançait successivement toutes
les commandes décrites par un fichier de construction.

Je n'ai à l'époque pas trouvé de solution fiable, et reste intéressé !
(je m'y remettrai surement un jour dans le siècle qui vient)
  Réponse avec citation
Vieux 10/10/2007, 07h17   #6
Raphael Vivien
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Comment obtenir le hwindow d'une application à partir d'un processId


"TedIF" <TedIf@TedIF.fr> a écrit dans le message de news:
mn.4be77d7a6b49e9c8.65892@TedIF.fr...
> Bonjour,
>
> Existe-il dans l'API Windows la fonction contraire de
> GetWindowThreadProcessId
>
> --
>
> Dominique
>

Salut,
Je n'ai pas la réponse exact, mais quelques pistes :
Il faut que tu connaisses le type de la forme principal de ton autre appli,
tu dois pouvoir le trouver avec winsight utilitaire livré avec Delphi.
Ensuite il existe une fonction de l'api qui avec le type de la fenêtre
principal te permet de retrouver le processid.
La vacherie avec les appli Delphi, c'est qu'elles créés deux fenêtres au
démarrage dont une invisible.

Bon courage.



Raphaël Vivien


  Réponse avec citation
Vieux 10/10/2007, 10h07   #7
TedIF
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Comment obtenir le hwindow d'une application à partir d'un processId

> "TedIF" <TedIf@TedIF.fr> a écrit dans le message de news:
> mn.4be77d7a6b49e9c8.65892@TedIF.fr...
>> Bonjour,

> Je n'ai pas la réponse exact, mais quelques pistes :
> Il faut que tu connaisses le type de la forme principal de ton autre appli,
> tu dois pouvoir le trouver avec winsight utilitaire livré avec Delphi.
> Ensuite il existe une fonction de l'api qui avec le type de la fenêtre
> principal te permet de retrouver le processid.
> La vacherie avec les appli Delphi, c'est qu'elles créés deux fenêtres au
> démarrage dont une invisible.
>

Le problème c'est que Winsight livré avec Rad Studio 2007 ne fonctionne
pas sur ma machine et j'ai désinstallé D7.

--

Dominique


  Réponse avec citation
Vieux 10/10/2007, 10h11   #8
BigGrizzly
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Comment obtenir le hwindow d'une application à partir d'un processId

Tu télécharges le GrizzlyPack et tu vois ce qu'il y-a dans l'unité
GzProcessUtils. Il y a des trucs pour faire ce que tu souhaites... Si mes
souvenirs sont bons. Ca devrait pouvoir te servir de source d'inspiration.

TedIF <TedIf@TedIF.fr>
::: "TedIF" <TedIf@TedIF.fr> a écrit dans le message de news:
::: mn.4be77d7a6b49e9c8.65892@TedIF.fr...
:::: Bonjour,
::: Je n'ai pas la réponse exact, mais quelques pistes :
::: Il faut que tu connaisses le type de la forme principal de ton
::: autre appli, tu dois pouvoir le trouver avec winsight utilitaire
::: livré avec Delphi. Ensuite il existe une fonction de l'api qui avec
::: le type de la fenêtre principal te permet de retrouver le processid.
::: La vacherie avec les appli Delphi, c'est qu'elles créés deux
::: fenêtres au démarrage dont une invisible.
:::
:: Le problème c'est que Winsight livré avec Rad Studio 2007 ne
:: fonctionne pas sur ma machine et j'ai désinstallé D7.
::
:: --
::
:: Dominique


  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 19h43.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,11420 seconds with 16 queries