IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

ouvrir et fermer une appli externe


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 5
    Par défaut ouvrir et fermer une appli externe
    Bonsoir,

    J'essaie d'écrire une petit programme de base pour mes débuts en VB express 2008.

    J'ai créé une form avec 2 boutons
    cde ouvrir pour ouvrir un fichier
    cde fermer pour refermer ce fichier

    Pour ouvrir ça fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Class Form1
        Dim myShell
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            myShell = Shell("""chemin de l'application externe associée"" ""chemin du fichier à ouvrir""", AppWinStyle.MaximizedFocus)
        End Sub
     
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    Comment faire pour refermer

    Merci de votre aide

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    utilise process plutot que shell (system.diagnostics)

    et sinon je te conseille http://plasserre.developpez.com/cours/vb-net/
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2008
    Messages : 50
    Par défaut
    Oui il a raison tu doit essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Diagnostics.Process.Start("chemin de l'application")
    et pour la fermer tu peut utliser la methode kill de l'objet process


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     For Each p As Process In System.Diagnostics.Process.GetProcesses
                If p.ProcessName = "nom de processus" Then
                    p.Kill()
                End If
       Next

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    plutot que de reparcourir les processus pour rechercher celui qui a été créé, il suffit de garder une référence dessus avec une variable

    et ensuite if not p.hasexited then p.kill
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2008
    Messages : 50
    Par défaut
    oui t'a raison sa sera plus professionnel merci pour cette information .

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 5
    Par défaut
    Bonsoir,

    merci pour cette aide, je vais mettre en pratique et je reviens vers vous pour info

    Je suis désolé, j'ai reçu un MP qui à été viré automatiquement par mes protections, j'ai maintenant déverrouillé.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 5
    Par défaut
    Re,

    Pour l'ouverture du fichier c'est nickel

    Quand tobba dit

    Citation Envoyé par tobba Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     For Each p As Process In System.Diagnostics.Process.GetProcesses
                If p.ProcessName = "nom de processus" Then
                    p.Kill()
                End If
       Next
    je comprends que pour tous les process en cours celui dont le nom est "mon process" doit être fermé (équivalent alt+F4)


    Mais quand Pol63 dit

    Citation Envoyé par Pol63 Voir le message
    plutot que de reparcourir les processus pour rechercher celui qui a été créé, il suffit de garder une référence dessus avec une variable

    et ensuite if not p.hasexited then p.kill
    Là, je suis largué

  8. #8
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    private _process as process
     
     
    sub start()
      _process = process.Start("monexe.exe")
    end sub
     
     
    sub stop()
        if _process is nothing then exit sub ' pas lancé
        if _process.hasexited then exit sub ' il s'est fermé tout seul ou par l'utilisateur
        _process.close
    end sub
    voir si close ferme bien l'appli, kill la ferme pas forcément proprement (arret du processus sans le prévenir je pense)
    voir aussi waitforexit ou tout ce qui traine sur la classe via l'intellisense ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 5
    Par défaut
    Essai N°1 Ouverture=OK Fermeture=KO

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Class Form1
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            System.Diagnostics.Process.Start("chemin du fichier à ouvrir")
        End Sub
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            For Each p As Process In System.Diagnostics.Process.GetProcesses
                If p.ProcessName = "nom de processus" Then
                    p.Kill()
                End If
                Next
        End Sub
     
        End Class
    Commentaires : 2 essais faits pour "nom du processus"
    a/ "process.exe" (le programme qui ouvre le fichier)
    b/ "le chemin complet\process.exe"

    Edité
    Essai N°2 Ouverture=OK Fermeture=KO

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Class Form1
        Private _process As Process
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            _process = Process.Start("chemin du fichier à ouvrir")
        End Sub
     
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            If _process Is Nothing Then Exit Sub ' pas lancé
            If _process.HasExited Then Exit Sub ' il s'est fermé tout seul ou par l'utilisateur
            _process.Close()
        End Sub
     
        End Class

Discussions similaires

  1. Fermer une application externe
    Par jean tof dans le forum C++Builder
    Réponses: 2
    Dernier message: 02/05/2006, 16h18
  2. Fermer une appli DOS à l'extinction du pc
    Par batmat86 dans le forum Windows
    Réponses: 10
    Dernier message: 01/03/2006, 16h48
  3. [Système][Runtime]J'arrive pas à lancer une appli externe !?!
    Par polnioumane dans le forum Général Java
    Réponses: 6
    Dernier message: 16/11/2005, 18h55
  4. Réponses: 3
    Dernier message: 26/09/2005, 10h41
  5. Récupérer le Handle d'une Appli externe
    Par luxprog dans le forum Windows
    Réponses: 15
    Dernier message: 29/04/2004, 13h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo