Pour vérifier si une application est déjà lancé, j'utilise les fonctions
OpenProcess, EnumProcessModules et GetModuleFileNameExA pour récupérer le
nom de chaque process. Une fois que j'ai identifier le process qui
m'intéresse, je voudrais le mettre en avant plan, mais je ne vosi pas quelle
fonction utilisée...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
David MAREC
Bonjour,
PurL wrote:
Pour vérifier si une application est déjà lancé, j'utilise les fonctions OpenProcess, EnumProcessModules et GetModuleFileNameExA pour récupérer le nom de chaque process. Une fois que j'ai identifier le process qui m'intéresse, je voudrais le mettre en avant plan, mais je ne vosi pas quelle fonction utilisée...
Mouarf, dans mes bras.
Pouvez-vous m'aider ?
<news:40b4b9bc$0$7698$
Bienvenue au club.
Bonjour,
PurL wrote:
Pour vérifier si une application est déjà lancé, j'utilise les fonctions
OpenProcess, EnumProcessModules et GetModuleFileNameExA pour récupérer le
nom de chaque process. Une fois que j'ai identifier le process qui
m'intéresse, je voudrais le mettre en avant plan, mais je ne vosi pas quelle
fonction utilisée...
Pour vérifier si une application est déjà lancé, j'utilise les fonctions OpenProcess, EnumProcessModules et GetModuleFileNameExA pour récupérer le nom de chaque process. Une fois que j'ai identifier le process qui m'intéresse, je voudrais le mettre en avant plan, mais je ne vosi pas quelle fonction utilisée...
Mouarf, dans mes bras.
Pouvez-vous m'aider ?
<news:40b4b9bc$0$7698$
Bienvenue au club.
AG
PurL wrote:
Bonjour,
Pour vérifier si une application est déjà lancé, j'utilise les fonctions OpenProcess, EnumProcessModules et GetModuleFileNameExA pour récupérer le nom de chaque process. Une fois que j'ai identifier le process qui m'intéresse, je voudrais le mettre en avant plan, mais je ne vosi pas quelle fonction utilisée...
peut être SetForGroundWindow() ou KB97925
PurL wrote:
Bonjour,
Pour vérifier si une application est déjà lancé, j'utilise les fonctions
OpenProcess, EnumProcessModules et GetModuleFileNameExA pour récupérer le
nom de chaque process. Une fois que j'ai identifier le process qui
m'intéresse, je voudrais le mettre en avant plan, mais je ne vosi pas quelle
fonction utilisée...
Pour vérifier si une application est déjà lancé, j'utilise les fonctions OpenProcess, EnumProcessModules et GetModuleFileNameExA pour récupérer le nom de chaque process. Une fois que j'ai identifier le process qui m'intéresse, je voudrais le mettre en avant plan, mais je ne vosi pas quelle fonction utilisée...
Oui, mais de toute façon il te faudra passer par les hWnd, car tous les process n'ont pas de fenêtre. Il y a donc forcément une convertion à faire du hProcess vers le hWnd qui lui correspond.
On ne met pas un process en premier plan, c'est sa fenêtre qu'on met au premier plan.
Une bonne partie de ce que tu cherches à faire est surement déjà fait dans Spy++, l'utilitaire fourni avec VC++. Le code source doit être dans la MSDN.
PurL wrote:
peut être SetForGroundWindow()
Marche pas.
Il lui faut un hWnd pas un hProcess.
Oui, mais de toute façon il te faudra passer par les hWnd, car tous les
process n'ont pas de fenêtre. Il y a donc forcément une convertion à
faire du hProcess vers le hWnd qui lui correspond.
On ne met pas un process en premier plan, c'est sa fenêtre qu'on met au
premier plan.
Une bonne partie de ce que tu cherches à faire est surement déjà fait
dans Spy++, l'utilitaire fourni avec VC++. Le code source doit être dans
la MSDN.
Oui, mais de toute façon il te faudra passer par les hWnd, car tous les process n'ont pas de fenêtre. Il y a donc forcément une convertion à faire du hProcess vers le hWnd qui lui correspond.
On ne met pas un process en premier plan, c'est sa fenêtre qu'on met au premier plan.
Une bonne partie de ce que tu cherches à faire est surement déjà fait dans Spy++, l'utilitaire fourni avec VC++. Le code source doit être dans la MSDN.
AMcD®
PurL wrote:
Bonjour,
Pour vérifier si une application est déjà lancé, j'utilise les fonctions OpenProcess, EnumProcessModules et GetModuleFileNameExA pour récupérer le nom de chaque process. Une fois que j'ai identifier le process qui m'intéresse, je voudrais le mettre en avant plan, mais je ne vosi pas quelle fonction utilisée...
Pouvez-vous m'aider ?
Merci,
PurL
Y a pas plus simple ? EnumWindows(). Pour savoir si c'est l'appli que tu cherches, tu regardes ensuite le nom de sa classe de fenêtre.
-- AMcD®
http://arnold.mcdonald.free.fr/
PurL wrote:
Bonjour,
Pour vérifier si une application est déjà lancé, j'utilise les
fonctions OpenProcess, EnumProcessModules et GetModuleFileNameExA
pour récupérer le nom de chaque process. Une fois que j'ai identifier
le process qui m'intéresse, je voudrais le mettre en avant plan, mais
je ne vosi pas quelle fonction utilisée...
Pouvez-vous m'aider ?
Merci,
PurL
Y a pas plus simple ? EnumWindows(). Pour savoir si c'est l'appli que tu
cherches, tu regardes ensuite le nom de sa classe de fenêtre.
Pour vérifier si une application est déjà lancé, j'utilise les fonctions OpenProcess, EnumProcessModules et GetModuleFileNameExA pour récupérer le nom de chaque process. Une fois que j'ai identifier le process qui m'intéresse, je voudrais le mettre en avant plan, mais je ne vosi pas quelle fonction utilisée...
Pouvez-vous m'aider ?
Merci,
PurL
Y a pas plus simple ? EnumWindows(). Pour savoir si c'est l'appli que tu cherches, tu regardes ensuite le nom de sa classe de fenêtre.
-- AMcD®
http://arnold.mcdonald.free.fr/
Patrick D.
On Fri, 04 Jun 2004 13:47:57 +0200, David MAREC wrote:
c'est du Delphi, vous avez le droit de faire les déclarations et adaptations nécessaires ...
GetWindowText(Application.Handle,MyAppName,SizeOf(MyAppName)); // Now determine the class name for this application GetClassName(Application.Handle,MyClassName,SizeOf(MyClassName)); // Now count how many others out there are Delphi apps with this title EnumWindows(@LookAtAllWindows,0); if NumFound > 1 then // There is another instance running, bring it to the front! begin MyPopup := GetLastActivePopup(LastFound);
// Bring it to the top in the ZOrder BringWindowToTop(LastFound); // Is the window iconized? if IsIconic(MyPopup) then // Restore it to its original position ShowWindow(MyPopup,SW_RESTORE) else // Bring it to the front SetForegroundWindow(MyPopup); end
-- * enlevez '.don't.spam' et '.invalid' de mon adresse eMail si vous voulez m'écrire * * Donne un poisson à un homme, il aura à manger pour un jour * Apprends-lui à pêcher, il aura à manger pour tous les jours de sa vie *
On Fri, 04 Jun 2004 13:47:57 +0200, David MAREC <dmarec.spam@free.invalid>
wrote:
c'est du Delphi, vous avez le droit de faire les déclarations et
adaptations nécessaires ...
GetWindowText(Application.Handle,MyAppName,SizeOf(MyAppName));
// Now determine the class name for this application
GetClassName(Application.Handle,MyClassName,SizeOf(MyClassName));
// Now count how many others out there are Delphi apps with this title
EnumWindows(@LookAtAllWindows,0);
if NumFound > 1 then
// There is another instance running, bring it to the front!
begin
MyPopup := GetLastActivePopup(LastFound);
// Bring it to the top in the ZOrder
BringWindowToTop(LastFound);
// Is the window iconized?
if IsIconic(MyPopup) then
// Restore it to its original position
ShowWindow(MyPopup,SW_RESTORE)
else
// Bring it to the front
SetForegroundWindow(MyPopup);
end
--
* enlevez '.don't.spam' et '.invalid' de mon adresse eMail si vous voulez
m'écrire *
* Donne un poisson à un homme, il aura à manger pour un jour
* Apprends-lui à pêcher, il aura à manger pour tous les jours de sa vie *
On Fri, 04 Jun 2004 13:47:57 +0200, David MAREC wrote:
c'est du Delphi, vous avez le droit de faire les déclarations et adaptations nécessaires ...
GetWindowText(Application.Handle,MyAppName,SizeOf(MyAppName)); // Now determine the class name for this application GetClassName(Application.Handle,MyClassName,SizeOf(MyClassName)); // Now count how many others out there are Delphi apps with this title EnumWindows(@LookAtAllWindows,0); if NumFound > 1 then // There is another instance running, bring it to the front! begin MyPopup := GetLastActivePopup(LastFound);
// Bring it to the top in the ZOrder BringWindowToTop(LastFound); // Is the window iconized? if IsIconic(MyPopup) then // Restore it to its original position ShowWindow(MyPopup,SW_RESTORE) else // Bring it to the front SetForegroundWindow(MyPopup); end
-- * enlevez '.don't.spam' et '.invalid' de mon adresse eMail si vous voulez m'écrire * * Donne un poisson à un homme, il aura à manger pour un jour * Apprends-lui à pêcher, il aura à manger pour tous les jours de sa vie *
David MAREC
Selon Patrick D.,
// Is the window iconized? if IsIconic(MyPopup) then // Restore it to its original position ShowWindow(MyPopup,SW_RESTORE) else // Bring it to the front SetForegroundWindow(MyPopup);
Cela ne suffit pas selon version (XP) et selon les applications. Mais je crois que je suis tombé sur une application étrange qui refuse d'obéir à toutes ces injonctions.
-- signature au milieu
Selon Patrick D.,
// Is the window iconized?
if IsIconic(MyPopup) then
// Restore it to its original position
ShowWindow(MyPopup,SW_RESTORE)
else
// Bring it to the front
SetForegroundWindow(MyPopup);
Cela ne suffit pas selon version (XP) et selon les applications.
Mais je crois que je suis tombé sur une application étrange qui refuse
d'obéir à toutes ces injonctions.
// Is the window iconized? if IsIconic(MyPopup) then // Restore it to its original position ShowWindow(MyPopup,SW_RESTORE) else // Bring it to the front SetForegroundWindow(MyPopup);
Cela ne suffit pas selon version (XP) et selon les applications. Mais je crois que je suis tombé sur une application étrange qui refuse d'obéir à toutes ces injonctions.
-- signature au milieu
Christian ASTOR
PurL a écrit:
Une fois que j'ai identifier le process qui m'intéresse, je voudrais le mettre en avant plan, mais je ne vosi pas quelle fonction utilisée...
Récupérer d'abord un hWnd correspondant au PID, s'il y en a. Le Task Manager de NT appelle SwitchToThisWindow() en faisant, en simplifié (pas sûr pour XP...):
Une fois que j'ai identifier le process qui
m'intéresse, je voudrais le mettre en avant plan, mais je ne vosi pas quelle
fonction utilisée...
Récupérer d'abord un hWnd correspondant au PID, s'il y en a.
Le Task Manager de NT appelle SwitchToThisWindow() en faisant, en
simplifié (pas sûr pour XP...):
Une fois que j'ai identifier le process qui m'intéresse, je voudrais le mettre en avant plan, mais je ne vosi pas quelle fonction utilisée...
Récupérer d'abord un hWnd correspondant au PID, s'il y en a. Le Task Manager de NT appelle SwitchToThisWindow() en faisant, en simplifié (pas sûr pour XP...):