Detecter si une application n'est pas ouverte.

AlexPoulard Messages postés 39 Date d'inscription vendredi 2 avril 2004 Statut Membre Dernière intervention 17 juillet 2006 - 23 août 2005 à 19:16
anolae Messages postés 4 Date d'inscription lundi 22 août 2005 Statut Membre Dernière intervention 24 août 2005 - 24 août 2005 à 10:53
Bonjour, je voudrais savoir comment faire pour détécter si une application est fermée. Si elle est fermée, le programme l'ouvre alors. Merci beaucoup

6 réponses

purplespot Messages postés 60 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 17 avril 2006
23 août 2005 à 19:25
Tu peux toujours te baser sur ce genre de code:



Private Declare Function GetWindowThreadProcessId Lib "user32" _

(ByVal hwnd As Long, lpdwProcessId As Long) As Long

Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" _

(ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Private Declare Function GetWindow Lib "user32" _

(ByVal hwnd As Long, ByVal wCmd As Long) As Long

Private Declare Sub ExitThread Lib "kernel32" (ByVal dwExitCode As Long)

Private Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long

Private Const GW_HWNDFIRST = 0

Private Const GW_HWNDNEXT = 2



Private Sub List1_Click()

List1.Clear

Dim Titre As String * 300

Dim Main As String

Dim Buffer As Integer

Dim MonApp As Object

Hd = GetWindow(Form1.hwnd, GW_HWNDFIRST)

Size = GetWindowText(Hd, Titre, 300)

Do

Buffer = GetWindowText(Hd, Titre, 300)

Main = Left$(Titre, Buffer)

If Main <> "" And Not IsWindowVisible(Hd) Then List1.AddItem Main & " (caché)"

If Main <> "" And IsWindowVisible(Hd) Then List1.AddItem Main

Hd = GetWindow(Hd, GW_HWNDNEXT)

Loop While Hd <> 0

List1.AddItem ""

List1.AddItem List1.ListCount & " Process en cours"

End Sub
0
AlexPoulard Messages postés 39 Date d'inscription vendredi 2 avril 2004 Statut Membre Dernière intervention 17 juillet 2006
23 août 2005 à 19:46
Merci beaucoup, mais je ne sait absolument pas comment l'adapter... Par exemple je voudrais qu'il déecte si explorer est ouvert, que serait le code ?? merci
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
23 août 2005 à 19:56
Salut,

Un peu plus de précision STP !
Tu parles de ta propre appli, ou d'une autre appli que tu lances par ton prog et dans ce cas, comment tu la lances ? par shell ? par createobject ? ...

Si c'est ta propre appli que tu ne veux pas voir lancée plus d'une fois :
Dans ton démarrage tu mets :
if app.previnstance = true then end

Sinon, la solution de purplepost peut te servir, tout dépend de comment tu lances l'appli.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
AlexPoulard Messages postés 39 Date d'inscription vendredi 2 avril 2004 Statut Membre Dernière intervention 17 juillet 2006
23 août 2005 à 20:17
Non, je voudrais savoir si une application externe à la miene (style bloc note ou autre), est ouverte ou non et dans les deux cas pouvoir executer un code. Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
purplespot Messages postés 60 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 17 avril 2006
23 août 2005 à 20:24
Si tu as le temps, teste déjà ce bout de code. Si je pense que tu comprendras aisément le résultat.
0
anolae Messages postés 4 Date d'inscription lundi 22 août 2005 Statut Membre Dernière intervention 24 août 2005
24 août 2005 à 10:53
Tu peux utiliser les processus aussi

Exemple :

Dim p
As Process() = System.Diagnostics.Process.GetProcessesByName(
"notepad")



If p.Length = 0
Then
'Le programme n'est pas lancé : on le lance


Dim AppProcess As Process
AppProcess = Process.Start("notepad")
AppProcess.WaitForInputIdle()



End
If
0
Rejoignez-nous