Fermeture application externe au programme créé

Messages postés
100
Date d'inscription
mardi 8 mai 2007
Statut
Membre
Dernière intervention
18 février 2011
- - Dernière réponse : Nbone_6442
Messages postés
6
Date d'inscription
dimanche 26 mai 2019
Statut
Membre
Dernière intervention
28 mai 2019
- 28 mai 2019 à 21:42
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 
Afficher la suite 

Votre réponse

17 réponses

Messages postés
79
Date d'inscription
lundi 28 août 2006
Statut
Membre
Dernière intervention
4 avril 2009
1
0
Merci
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
Commenter la réponse de ptit_tof57
Messages postés
100
Date d'inscription
mardi 8 mai 2007
Statut
Membre
Dernière intervention
18 février 2011
3
0
Merci
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
Commenter la réponse de Le grand Jisay
Messages postés
79
Date d'inscription
lundi 28 août 2006
Statut
Membre
Dernière intervention
4 avril 2009
1
0
Merci
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
Commenter la réponse de ptit_tof57
Messages postés
100
Date d'inscription
mardi 8 mai 2007
Statut
Membre
Dernière intervention
18 février 2011
3
0
Merci
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
Commenter la réponse de Le grand Jisay
Messages postés
79
Date d'inscription
lundi 28 août 2006
Statut
Membre
Dernière intervention
4 avril 2009
1
0
Merci
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
Commenter la réponse de ptit_tof57
Messages postés
100
Date d'inscription
mardi 8 mai 2007
Statut
Membre
Dernière intervention
18 février 2011
3
0
Merci
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
Commenter la réponse de Le grand Jisay
Messages postés
79
Date d'inscription
lundi 28 août 2006
Statut
Membre
Dernière intervention
4 avril 2009
1
0
Merci
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 ?
Commenter la réponse de ptit_tof57
Messages postés
79
Date d'inscription
lundi 28 août 2006
Statut
Membre
Dernière intervention
4 avril 2009
1
0
Merci
Cet outil pourrai peut-être t'interessé : PsTool
Commenter la réponse de ptit_tof57
Messages postés
100
Date d'inscription
mardi 8 mai 2007
Statut
Membre
Dernière intervention
18 février 2011
3
0
Merci
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
Commenter la réponse de Le grand Jisay
Messages postés
79
Date d'inscription
lundi 28 août 2006
Statut
Membre
Dernière intervention
4 avril 2009
1
0
Merci
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
Commenter la réponse de ptit_tof57
Messages postés
79
Date d'inscription
lundi 28 août 2006
Statut
Membre
Dernière intervention
4 avril 2009
1
0
Merci
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 ?
Commenter la réponse de ptit_tof57
Messages postés
100
Date d'inscription
mardi 8 mai 2007
Statut
Membre
Dernière intervention
18 février 2011
3
0
Merci
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
Commenter la réponse de Le grand Jisay
Messages postés
1466
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
23 septembre 2007
1
0
Merci
A quoi bon utiliser le Shell, cadate de VB6 et on est en VB.Net autant utiliser process.kill() !

Redman
Commenter la réponse de OneHacker
Messages postés
100
Date d'inscription
mardi 8 mai 2007
Statut
Membre
Dernière intervention
18 février 2011
3
0
Merci
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
Commenter la réponse de Le grand Jisay
Messages postés
1466
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
23 septembre 2007
1
0
Merci
Bah faut choisir le bon processeur.

Redman
Commenter la réponse de OneHacker
Messages postés
588
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
29 avril 2010
1
0
Merci
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]
Commenter la réponse de zen69
Messages postés
6
Date d'inscription
dimanche 26 mai 2019
Statut
Membre
Dernière intervention
28 mai 2019
0
Merci
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
Commenter la réponse de Nbone_6442