salut
Je voudrais savoir s'il est possible de rendre actif un programme ouvert
genre j'ai mon form qui est ouvert et je veux rendre active un programme "toto" qui est ouvert mais reduit dan,s la barres des taches.
Merci bcp d'avance
bonne journée
Version imprimable
salut
Je voudrais savoir s'il est possible de rendre actif un programme ouvert
genre j'ai mon form qui est ouvert et je veux rendre active un programme "toto" qui est ouvert mais reduit dan,s la barres des taches.
Merci bcp d'avance
bonne journée
Salut
Comme je vois que ce topic est ouvert, inutile que j'en ouvre un autre.
J'ai le même soucis que toi gyver4000 et je cherche une solution car sur mon programme ouvert, j'aurais besoin de pouvoir executer les raccourcis clavier...
@+ Martipit
tu peux utiliser
pour envoyer des keys comme si vous utilisez le clavierCode:
1
2 SendKeys.Send("{ENTER}")
Salut merci pour cette info, ceci dit nous ne savons toujours pas comment rendre l'application à laquelle on voudrait envoyer ces keys active.
@+ Martipit
Si ça peut aider :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Private Declare Function SetForegroundWindow Lib "user32.dll" (ByVal hWnd As IntPtr) As Boolean Private Sub MettreAuPremierPlan(ByVal nomProcess As String) 'Exemples de noms de Process en entrée : excel, notepad, outlook, photoshop, winword, wmplayer, etc. 'On peut trouver le nom d'un Process en ouvrant le Gestionnaire de Périphériques (ctrl + alt + suppr) ' '1) Récupérer toutes les instances pour le Process recherché Dim processes As Process() = Process.GetProcessesByName(nomProcess) If processes.Length > 0 Then Try '2) Mettre au premier la 1ère instance de l'application SetForegroundWindow(processes(0).MainWindowHandle) Catch ex As Exception 'Erreur lors de la mise au premier plan MessageBox.Show(ex.Message) End Try Else 'Aucune instance trouvée pour nomProcess MessageBox.Show("Aucune instance trouvée pour " & nomProcess & ".") End If End Sub
Je complète ma réponse précédente.
Si l'application à mettre au premier plan a été ouverte par le programme (Shell... ou Process.start...), on peut mémoriser son Process au moment de l'ouverture pour le rappeler au moment du rappel au premier plan.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Private pApplicationProcess As Process Private Declare Function SetForegroundWindow Lib "user32.dll" (ByVal hWnd As IntPtr) As Boolean Private Sub btnLancer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLancer.Click 'Lance une application (ici Word) et mémorise son Process (pApplicationProcess) pApplicationProcess = Process.Start("winword") End Sub Private Sub btnRappeler_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRappeler.Click 'Ramène au premier plan le Process mémorisé (pApplicationProcess) If pApplicationProcess IsNot Nothing Then Try SetForegroundWindow(pApplicationProcess.MainWindowHandle) Catch ex As Exception 'Erreur lors de la mise au premier plan MessageBox.Show(ex.Message) End Try End If End Sub
Salut et merci les amis.
J'ai tenté le code suivant en y apportant la ligne suivante
"Sendkeys.send("{G}")"
L'application extérieur s'active et passe bien en premier plan. Par contre, le raccourcis clavier "G" représentée ici par "SendKeys.send("{G}") qui devrait déclencher une action ne fonctionne pas.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Private pApplicationProcess As Process Private Declare Function SetForegroundWindow Lib "user32.dll" (ByVal hWnd As IntPtr) As Boolean Private Sub btnLancer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLancer.Click 'Lance une application (ici Word) et mémorise son Process (pApplicationProcess) pApplicationProcess = Process.Start("Mon appli") End Sub Private Sub btnRappeler_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRappeler.Click 'Ramène au premier plan le Process mémorisé (pApplicationProcess) If pApplicationProcess IsNot Nothing Then Try SetForegroundWindow(pApplicationProcess.MainWindowHandle) Sendkeys.send("{G}") Catch ex As Exceptio 'Erreur lors de la mise au premier plan MessageBox.Show(ex.Message) End Try End If End Sub
Que faire ?
Merci par avance
@+ Martipit
Lorsqu'un raccouci touche doit être envoyé via SendKeys.send({x}), il faut absolument que le caractère de la touche soit envoyé en minuscule !
C'est bête mais c'est comme çà ;)