procedure GetProcessWindowList(AProcessId : DWord; AList : TStrings);
var
LeHWnd : HWnd;
szTitre : Array[0..255] of Char;
AP2 : DWord;
begin
AList.Clear;
LeHWnd:=GetWindow(GetDesktopWindow,GW_CHILD);
LeHWnd:=GetWindow(LeHWnd,GW_HWNDFIRST);
while LeHWnd<>0 do
begin
GetWindowText(LeHWnd,szTitre,255);
GetWindowThreadProcessId(LeHWnd, @AP2);
if (AP2=AProcessId) and (AP2<>0) and (StrLen(szTitre)>0) then
AList.AddObject(StrPas(szTitre),Pointer(LeHWnd));
LeHWnd:=GetWindow(LeHWnd,GW_HWNDNEXT);
end;
end;
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