OVH Cloud OVH Cloud

Ouverure/fermeture d'application win

3 réponses
Avatar
JP
Bonjour,
Je souhaite faire ouvrir la calculatrice windows par un bouton. Jusque là
pas de problème :
Private Sub CommandButton2_Click()
RetVal = Shell("C:\WINDOWS\system32\calc.exe", 1)
End Sub

Mais je voudrais que si je re-clique sur ce même bouton, la calculatrice ce
referme. (Puis si je re-clique, quelle se rouvress...)
Bref un bouton qui serve à ouvrir la calculatrice mais aussi à la fermer.
La je bloque...
Si vous avez une tite idée

3 réponses

Avatar
michdenis
Bonjour JP,


Dans le haut de ton module, déclaration de l'API

Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long _
, lParam As Any) As Long

'-------------------------
Private Sub CommandButton1_Click()

Static hWnd As Long

hWnd = Shell("C:WINDOWSsystem32calc.exe", 1)
If hWnd Then PostMessage hWnd, &H10, 0&, 0&

End Sub
'-------------------------


Salutations!




"JP" a écrit dans le message de news: cmnrai$93j$
Bonjour,
Je souhaite faire ouvrir la calculatrice windows par un bouton. Jusque là
pas de problème :
Private Sub CommandButton2_Click()
RetVal = Shell("C:WINDOWSsystem32calc.exe", 1)
End Sub

Mais je voudrais que si je re-clique sur ce même bouton, la calculatrice ce
referme. (Puis si je re-clique, quelle se rouvress...)
Bref un bouton qui serve à ouvrir la calculatrice mais aussi à la fermer.
La je bloque...
Si vous avez une tite idée
Avatar
twinley
Bonjour,

ptet que tu pourrais t'inspirer de ça, puis l'adapter.

Sub FeuilProtect()



Dim Etat As Integer



If Etat = 0 Then

Sheets("feuil1").DrawingObjects("BoutonMenu").Characters.Text = "Plus de
menus": Etat = 1

Application.CommandBars("Worksheet Menu Bar").Enabled = False

MsgBox "La barre de menus est supprimée"



Else



ActiveSheet.DrawingObjects("BoutonMenu").Characters.Text = "Menus
rétablis": Etat = 0

Application.CommandBars("Worksheet Menu Bar").Enabled = True

MsgBox "La barre de menus est rétablie"

End If



End Sub


en espérant te rapprocher de la solution, je te prie etc. etc.

--
à+twinley
"JP" a écrit dans le message de
news:cmnrai$93j$
Bonjour,
Je souhaite faire ouvrir la calculatrice windows par un bouton. Jusque là
pas de problème :
Private Sub CommandButton2_Click()
RetVal = Shell("C:WINDOWSsystem32calc.exe", 1)
End Sub

Mais je voudrais que si je re-clique sur ce même bouton, la calculatrice
ce

referme. (Puis si je re-clique, quelle se rouvress...)
Bref un bouton qui serve à ouvrir la calculatrice mais aussi à la fermer.
La je bloque...
Si vous avez une tite idée




Avatar
michdenis
Correction :
Après avoir testé, la procédure devrait plutôt ressembler à ceci :


Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long _
, lParam As Any) As Long

'--------------------------
Private Sub CommandButton1_Click()

Static hWnd As Long
Static A As Long

If A = 0 Then
A = Shell("C:WINDOWSsystem32calc.exe", 1)
Else
hWnd = FindWindow(vbNullString, "Calculatrice")
If hWnd Then PostMessage hWnd, &H10, 0&, 0&
A = 0
End If

End Sub
'--------------------------


Salutations!




"michdenis" a écrit dans le message de news:
Bonjour JP,


Dans le haut de ton module, déclaration de l'API

Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long _
, lParam As Any) As Long

'-------------------------
Private Sub CommandButton1_Click()

Static hWnd As Long

hWnd = Shell("C:WINDOWSsystem32calc.exe", 1)
If hWnd Then PostMessage hWnd, &H10, 0&, 0&

End Sub
'-------------------------


Salutations!




"JP" a écrit dans le message de news: cmnrai$93j$
Bonjour,
Je souhaite faire ouvrir la calculatrice windows par un bouton. Jusque là
pas de problème :
Private Sub CommandButton2_Click()
RetVal = Shell("C:WINDOWSsystem32calc.exe", 1)
End Sub

Mais je voudrais que si je re-clique sur ce même bouton, la calculatrice ce
referme. (Puis si je re-clique, quelle se rouvress...)
Bref un bouton qui serve à ouvrir la calculatrice mais aussi à la fermer.
La je bloque...
Si vous avez une tite idée