kernel2007
Messages postés7Date d'inscriptionsamedi 18 novembre 2006StatutMembreDernière intervention22 novembre 2006 18 nov. 2006 à 19:10
Salut ,je suis débutant en matiere de programmation et je travail sur un projet,mais il y a un probléme qui m'intrigue
est ce que vous pouvez m'aider ladsus
le probléme se résume comme suit :
j'ai le nom et le nom de classe d'un window parent d'une application extérne alors j'ai obtenu son handle par la fonction
Findwindow
mais le probléme est comment obtenir le handle de child window tout en sachant le nom et le nom de classe de ce window (child) et que la fonction FindwindowEx n'est pas supporté par windows NT et XP sur lequel je travail
alors comment on fait pour obtenir ce handle ?
cs_orphee14
Messages postés5Date d'inscriptionsamedi 26 février 2005StatutMembreDernière intervention16 mars 2008 26 févr. 2005 à 08:26
Merci.
Pas facile de retrouver les API dont on a besoin.
Je l'utilise pour limiter l'appli à une seule instance.
Avant, je ma basais sur Application.Title jusqu'à ce que je change cette propriété par FormatDatetime dans un timer cours d'exécution.
procedure JustUne_main; // Juste Une instance de l'appli
var SSauve_titre: string;
WinHandle : Thandle;
begin
SSauve_titre := Application.title;
Application.title := 'Application en cours de chargement'; // Pour les grosses applis
WinHandle := findwindow('Tapplication',pchar(SSauve_titre));
if (WinHandle > 0) then begin
if IsIconic(WinHandle) then
ShowWindow(WinHandle,SW_SHOWNORMAL)
else
ShowWindow(WinHandle,SW_SHOW);
SetForegroundWindow(WinHandle);
Application.terminate;
end;
Application.Title := SSauve_titre;
end;
Grâce à ton exemple, je peux trouver une éventuelle instance sur la base du "Caption" de le fiche principale.
Merci encore.
18 nov. 2006 à 19:10
est ce que vous pouvez m'aider ladsus
le probléme se résume comme suit :
j'ai le nom et le nom de classe d'un window parent d'une application extérne alors j'ai obtenu son handle par la fonction
Findwindow
mais le probléme est comment obtenir le handle de child window tout en sachant le nom et le nom de classe de ce window (child) et que la fonction FindwindowEx n'est pas supporté par windows NT et XP sur lequel je travail
alors comment on fait pour obtenir ce handle ?
26 févr. 2005 à 08:26
Pas facile de retrouver les API dont on a besoin.
Je l'utilise pour limiter l'appli à une seule instance.
Avant, je ma basais sur Application.Title jusqu'à ce que je change cette propriété par FormatDatetime dans un timer cours d'exécution.
procedure JustUne_main; // Juste Une instance de l'appli
var SSauve_titre: string;
WinHandle : Thandle;
begin
SSauve_titre := Application.title;
Application.title := 'Application en cours de chargement'; // Pour les grosses applis
WinHandle := findwindow('Tapplication',pchar(SSauve_titre));
if (WinHandle > 0) then begin
if IsIconic(WinHandle) then
ShowWindow(WinHandle,SW_SHOWNORMAL)
else
ShowWindow(WinHandle,SW_SHOW);
SetForegroundWindow(WinHandle);
Application.terminate;
end;
Application.Title := SSauve_titre;
end;
Grâce à ton exemple, je peux trouver une éventuelle instance sur la base du "Caption" de le fiche principale.
Merci encore.