306xshdi
Messages postés29Date d'inscriptionmercredi 2 avril 2003StatutMembreDernière intervention 2 février 2007
-
21 févr. 2005 à 16:54
306xshdi
Messages postés29Date d'inscriptionmercredi 2 avril 2003StatutMembreDernière intervention 2 février 2007
-
22 févr. 2005 à 08:31
Bonjour,
Je voudrais mettre la fenêtre d'une autre appli en premier plan (active). Je ne sais en quel language est cette appli mais je n'arrive pas à l'activer (elle reste minimisée). Le nom de cette fenêtre dans la barre de tâche est: Réparation. Le nom de l'application dans le gestionnaire de tâche est: Réparation. Le nom du processus dans la barre de tâche est: Reparation.exe. En résumé, je voudrais faire comme "basculer vers" du gestionnaire de tâche.
A l'aide, SVP !
A voir également:
Mettre une fenêtre d'une autre appli en premier plan
306xshdi
Messages postés29Date d'inscriptionmercredi 2 avril 2003StatutMembreDernière intervention 2 février 2007 22 févr. 2005 à 08:31
Bon, ce coup-ci, ca devrait être OK. Donc voici la solution que j'ai trouvé avec beaucoup de mal. Donc, si ca peux servir à quelqu'un d'autres car dans la recherche du forum, je n'ai trouvé aucun sujet clair !!!
----, Comment prendre le contrôle sur une fenêtre (qui est dans la barre de tâche) ? <?xml:namespace prefix o ns \"urn:schemas-microsoft-com:office:office\" />
</TD>
</TD></TR>
<TR style="mso-yfti-irow: 1; mso-yfti-lastrow: yes">
<TD style="BORDER-RIGHT: #000055 1pt solid; PADDING-RIGHT: 0cm; BORDER-TOP: #000055 1pt solid; PADDING-LEFT: 0cm; PADDING-BOTTOM: 3pt; BORDER-LEFT: #000055 1pt solid; PADDING-TOP: 3pt; BORDER-BOTTOM: #000055 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid #000055 .75pt">
Placez tout d'abord ces déclarations dans un module standard :
Public Const SW_HIDE = 0
Public Const SW_SHOWNORMAL = 1
Public Const SW_SHOWMINIMIZED = 2
Public Const SW_SHOWMAXIMIZED = 3
Public Const SW_RESTORE = 9
Public Const SW_MINIMIZE = 6
'pour trouver le numéro (handle) d'une fenêtre dans la barre de tâche
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
'pour minimiser
Declare Function CloseWindow Lib "user32" (ByVal hwnd As Long) As Long
'pour fermer
Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long
'pour maximiser, minimiser, cacher (cf les const plus haut)
Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Puis ces quelques lignes dans une procédure (par ex: Form_Load ):
Dim MonHwnd As Long
MonHwnd = FindWindow(vbNullString, "Nom_de_la_fenêtre_dans_la_barre_de_tâche") 'récupère le numéro du handle
If MonHwnd <> 0 Then
Call ShowWindow(MonHwnd, SW_SHOWNORMAL) 'affichage normal de la fenêtre
306xshdi
Messages postés29Date d'inscriptionmercredi 2 avril 2003StatutMembreDernière intervention 2 février 2007 21 févr. 2005 à 21:38
Bon, ca marche pas aussi bien que je pensais car "Appactivate" arrive à me lancer plusieurs fois la fenêtre (ex: essai.txt - bloc-notes). Il est vrai que le mieux serait de lancer l'appli avec shell et de récupérer ID. Malheureusement, ce n'est pas possible facilement.
Donc, comment faire autrement pour donner le focus à cette fenêtre ?