Fermeture application externe au programme créé

Signaler
Messages postés
100
Date d'inscription
mardi 8 mai 2007
Statut
Membre
Dernière intervention
18 février 2011
-
Nbone_6442
Messages postés
6
Date d'inscription
dimanche 26 mai 2019
Statut
Membre
Dernière intervention
28 mai 2019
-
Bonjour à tous,

J'ai créé il y a peu un petit programme qui lorsque une forme se charge, lance un autre programme. L'autre programme se lance correctement et il s'affiche sur le bureau. Jusque la aucun problème. Je voudrai maintenant que se programme se ferme et qu'il ne s'affiche plus sur le bureau, est ce possible ? Si oui comment.

Je lance mon programme grâce à un Shell, il s'ouvre correctement fonctionne correctement, il me faudrait juste que ce programme se ferme et que je ne le vois plus a l'écran...

D'avance merci pour votre aide !

Le Grand Jisay 

17 réponses

Messages postés
79
Date d'inscription
lundi 28 août 2006
Statut
Membre
Dernière intervention
4 avril 2009
1
Salut voici un lien qui pourrai peut-être t'intéresser : Taskkill

J'utilise vista et ça ne marche pas chez moi, mais qui sait tu auras peut-être plus de chance que moi.

A+
Tof
Messages postés
100
Date d'inscription
mardi 8 mai 2007
Statut
Membre
Dernière intervention
18 février 2011
3
Re, ce doit être bien ca mais je n'arrive pas à le faire fonctionner correctement...
Voici comment je m'y prend :

Shell(

"C:\log", AppWinStyle.NormalFocus)
'pour ouvrir l'application

Après un certain temps je dois fermer cette application, je met le code suivant :

Shell(

"askkill /IM log.exe /F", 0)
' pour fermer l'application

Aucune erreur ne s'affiche mais lorsque j'exécute, j'ai le message suivant qui apparait :

   'Fichier introuvable.'

Pourtant quand je vais dans la fenêtre des processus, le processus s'appèle bien log.exe...

Quelqu'un pourrait-il m'aider svp ???

D'avance merci,
Le Grand Jisay
Messages postés
79
Date d'inscription
lundi 28 août 2006
Statut
Membre
Dernière intervention
4 avril 2009
1
Salut j'ai testé la même commande que toi c'est à dire :

Taskkill /IM mspaint.exe /F est cela marche correctement. Es-tu certain de la synthaxe et que ton programme est lancé ?

Est-ce que ton programme est lancé à partir de visual studio ? Peut-être faut il le compilé et l'exécuter indépendamment.

A+
Tof
Messages postés
100
Date d'inscription
mardi 8 mai 2007
Statut
Membre
Dernière intervention
18 février 2011
3
C'est toujours le même problème...
J'ai publier mon application pour qu'elle ne se lance pas avec Visual Studio mais j'ai toujours le meme problème...Je ne comprends pas...

Peux-tu me passer le code que tu as fait pour ca stp ptit_tof ? Déjà un grand merci pour ton aide !

Le Grand Jisay
Messages postés
79
Date d'inscription
lundi 28 août 2006
Statut
Membre
Dernière intervention
4 avril 2009
1
Salut voici un exemple qui fonctionne chez moi, test le chez toi pour voir si cela fonctionne : (Deux contrôle button à ajouter.)

   Sub FermeAppli()
        Shell("c:\windows\system32\Taskkill /IM notepad.exe /F", AppWinStyle.Hide)
    End Sub

    Sub LanceAppli()
        Shell("c:\windows\notepad.exe", AppWinStyle.NormalFocus)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        LanceAppli()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        FermeAppli()
    End Sub

A+
Tof
Messages postés
100
Date d'inscription
mardi 8 mai 2007
Statut
Membre
Dernière intervention
18 février 2011
3
Salut, ca ne fonctionne toujours pas, j'ai toujours le même message et j'ai fait exactement la meme chose que toi...

Petit problème que j'ai constaté en lisant ton code : il y a : c:\windows\system32\Taskkill. De un pourquoi lui donner le nom entier et de deux je ne le trouve pas sur mon PC à l'endroit spécifier :s

A+ Le Grand Jisay
Messages postés
79
Date d'inscription
lundi 28 août 2006
Statut
Membre
Dernière intervention
4 avril 2009
1
Je mets le chemin complet pour éviter d'avoir des soucis avec les variables d'environnement (path).

C'est quoi exactement ton message d'erreur ?
Messages postés
79
Date d'inscription
lundi 28 août 2006
Statut
Membre
Dernière intervention
4 avril 2009
1
Cet outil pourrai peut-être t'interessé : PsTool
Messages postés
100
Date d'inscription
mardi 8 mai 2007
Statut
Membre
Dernière intervention
18 février 2011
3
Salut,

Le message d'erreur que j'ai est le suivant :

L'exeption FileNotFoundException n'a pas été géré

'Fichier Introuvable'

Ok pour le lien, je vais y jeter un coup d'oeuil

Merci, Le Grand Jisay
Messages postés
79
Date d'inscription
lundi 28 août 2006
Statut
Membre
Dernière intervention
4 avril 2009
1
Le premier liens été mort apparement en voici un autre ça à l'air d'être du même genre que taskkill donc je ne sais pas si ça va vraiment t'aidé.
PsTool
Messages postés
79
Date d'inscription
lundi 28 août 2006
Statut
Membre
Dernière intervention
4 avril 2009
1
Es tu sur de disposé de taskkill ? à tu fais une recherche dans ton ordi ?

Car je viens de testé cette instruction :

Shell("c:\windows\system32\Taskkill /IM notepoud.exe /F", AppWinStyle.Hide)

Ici  j'ai renseigné un mauvais nom d'application mais aucune exception.

Tandis que :

Shell("c:\windows\system32\Taskill /IM notepoud.exe /F", AppWinStyle.Hide)

Taskill avec un seul K m'as affiché la même exception que toi.

Donc j'en deduis que soit : c'est une erreur de synthaxe soit, tu ne disposes pas de Taskkill sur ton ordi.

Qu'en penses tu ?
Messages postés
100
Date d'inscription
mardi 8 mai 2007
Statut
Membre
Dernière intervention
18 février 2011
3
Salut... Tu as bien vu, je n'est effectivement pas Taskkill sur mon ordi...

Je vais essayer avec Process.kill(), je verrai comment ca fonctionnera...

Un grand merci pour ton aide et je met sur le forum l'avancement de mes recherches...

A+, Le Grand Jisay
Messages postés
1447
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
23 septembre 2007
1
A quoi bon utiliser le Shell, cadate de VB6 et on est en VB.Net autant utiliser process.kill() !

Redman
Messages postés
100
Date d'inscription
mardi 8 mai 2007
Statut
Membre
Dernière intervention
18 février 2011
3
J'ai déjà essayer avec process.kill() mais ca ne fonctionnait pas correctement... C'est peut-être a cause de moi qui ne sait pas trop comment l'utiliser mais bon je cherche encore ^^

A+
Le Grand Jisay
Messages postés
1447
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
23 septembre 2007
1
Bah faut choisir le bon processeur.

Redman
Messages postés
584
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
29 avril 2010
1
Bonjour tlm,

J'essaye d'utiliser taskkill pour mon programme d'update.

En gros le programme copie un executable d'un repertoire partagé vers un repertoire local. Mais si le programme est ouvert et qu'on roulle l'app de mise a jour. La copie echoue puisque l'executable est ouvert et donc en lecture seule. Alors, je me suis dit que le taskkill pourrait resoudre mon probleme.

Voici un petit schema qui represente ce que j'essaye de faire
Run -> updater.exe
    updater.exe kills -> myApp.exe
    updater.exe copies -> myApp.exe
    updater.exe runs -> myApp.exe (updated version)
    updater.exe closes

Mais le problem est (je crois) que taskkill peut prendre quelque seconde à s'exécuter. Kill myApp.exe apres que j'ai que upadter run la nouvelle version.

Donc je crois qu'une api pourrait me permettre de passer à l'action suivante SEULEMENT APRES avoir tuer le processus myApp.exe

Quelqu'un sait comment faire?

<hr size="2" width="100%" />  zen69 aka Ortho Le Profett
  [site web]
Messages postés
6
Date d'inscription
dimanche 26 mai 2019
Statut
Membre
Dernière intervention
28 mai 2019

Bonjour j'ai moi meme eu se probleme et voila la commande :


Dim l() As Process
Dim r As Process
l = Process.GetProcessesByName("Nom de l'appli sans le .exe")
For Each r In l
r.Kill()
Next