Ulala2
Messages postés86Date d'inscriptionlundi 27 janvier 2003StatutMembreDernière intervention10 décembre 2006
-
7 sept. 2006 à 17:08
Ulala2
Messages postés86Date d'inscriptionlundi 27 janvier 2003StatutMembreDernière intervention10 décembre 2006
-
8 sept. 2006 à 10:24
Bonjour,
C'est super bête mais là je n'y arrive vraiement pas.
Je cherche à récupérer le handle d'une fenêtre que je lance par shell ou shellexecute (je n'ai pas de préférence sur la manière de lancer le .exe, je veux juste récupérer son handle)
Par l'API FindWindow, ca fonctionne très bien, mais je veux être certain que j'obtiens bien le handle de la fenêtre que je viens de lancer, et pas le handle d'une autre si l'utilisateur à lancer plusieurs fois l'application.
J'ai essayé plusieurs fonctions mais la plupart me donnent le handle de l'application (hInstance) et pas Hwnd (handle de la fenetre).
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 7 sept. 2006 à 17:35
"...handle d'une fenêtre que je lance par shell ou shellexecute..."
OK on comprend ce que tu veux mais la formulation est totalement erronée, les mots sont importants.
Ce qu'on lance c'est un processus mais absolument pas une fenêtre.
Dim pidnew AsLong
pid = Shell(...)
hwnd = FindWindow(...)
GetWindowThreadProcessId(hwnd, pidnew)
if pid = pidnew Then CestLaBonne
Dolphin Boy
Messages postés630Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention17 février 2007 7 sept. 2006 à 20:36
Salut, déjà, tu peux interdire le lancement multiple d'une appli. Ca devrait te faciliter les choses.
Cherche sur le site avec des mots clés comme "previnstance" et "mutex".
Ulala2
Messages postés86Date d'inscriptionlundi 27 janvier 2003StatutMembreDernière intervention10 décembre 2006 7 sept. 2006 à 21:36
Bonjour,
en ce qui concerne previnstance, l'utilisateur a besoin de lancer 2 ou 3 de cette application, car c'est un émulateur de terminal.
en ce qui concerne le mutex, l'application est installée sur 4 serveurs TSE, donc pas possible, et comme le point précédent, ce n'est pas ce que je recherche.
Brunews, ta méthode fonctionne très bien, j'ai adapté une source avec une boucle. Mais ce que je ne comprend pas, c'est qu'en lancant calc.exe (même 10 fois), aucun pb, la valeur retournée est la même que l'API FinWindow, mais avec cette application, les valeurs sont différentes.