FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» bouton dans autre form que 0
KillProcess pour 'tuer' toutes les instances d'un processus  Emptypar leclode Hier à 13:59

» KGF_dll - nouvelles versions
KillProcess pour 'tuer' toutes les instances d'un processus  Emptypar Klaus Hier à 11:41

» Gestion d'un système client-serveur.
KillProcess pour 'tuer' toutes les instances d'un processus  Emptypar Klaus Hier à 10:23

» PANORAMIC V 1
KillProcess pour 'tuer' toutes les instances d'un processus  Emptypar papydall Sam 4 Mai 2024 - 3:43

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
KillProcess pour 'tuer' toutes les instances d'un processus  Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
KillProcess pour 'tuer' toutes les instances d'un processus  Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
KillProcess pour 'tuer' toutes les instances d'un processus  Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
KillProcess pour 'tuer' toutes les instances d'un processus  Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
KillProcess pour 'tuer' toutes les instances d'un processus  Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
KillProcess pour 'tuer' toutes les instances d'un processus  Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
KillProcess pour 'tuer' toutes les instances d'un processus  Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
KillProcess pour 'tuer' toutes les instances d'un processus  Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
KillProcess pour 'tuer' toutes les instances d'un processus  Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
KillProcess pour 'tuer' toutes les instances d'un processus  Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
KillProcess pour 'tuer' toutes les instances d'un processus  Emptypar papydall Dim 21 Avr 2024 - 23:30

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment : -29%
PC portable – MEDION 15,6″ FHD Intel i7 ...
Voir le deal
499.99 €

 

 KillProcess pour 'tuer' toutes les instances d'un processus

Aller en bas 
2 participants
AuteurMessage
papydall

papydall


Nombre de messages : 7002
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

KillProcess pour 'tuer' toutes les instances d'un processus  Empty
MessageSujet: KillProcess pour 'tuer' toutes les instances d'un processus    KillProcess pour 'tuer' toutes les instances d'un processus  EmptySam 17 Oct 2015 - 14:19

Salut tout le monde.

Voici une procédure SUB contenant un script VBS qui tue toutes les instances d’un même processus en cours.
Peu importe que le processus soit en cours d’exécution normale, qu’il soit entré en boucle infinie, ou qu’il ait planté.

Code:

rem ============================================================================
rem    Tuer toutes les instances en cours d un même programme
rem ============================================================================
rem Exemple d utilisation
rem Dans cet exemple, on ouvre 4 instances du même programme : calc.exe
rem Ces instances sont en cours d exécution.
rem Nous allons les "tuer" toutes en faisant appel à KillProcess(process$)
rem en transmettant la chaîne "calc.exe" comme valeur du paramètre process$
rem Le programme (Panoramic.exe) est en cours d exécution normale.
rem Nous allons le "tuer" lui aussi et toutes ses éventuelles instances.
rem ============================================================================
rem REMARQUE:
rem Peut importe que les processus soient en cours d exécution normale,
rem qu ils soient entrés en boucle infinie, ou qu ils aient planté.
rem ============================================================================

execute "calc.exe"
execute "calc.exe"
execute "calc.exe"
execute "calc.exe"
pause 100
message "Les 4 instances du processus 'Calc.exe' seront tuées, après fermeture de ce message"
KillProcess("calc.exe")
message "Le processus 'Panoramic.exe' sera tué, après fermeture de ce message"
KillProcess("panoramic.exe")
end
rem ============================================================================
SUB KillProcess(process$)
    dim_local d$,f$,g$,slash$
    d$ = "c:\temp"
    f$ = d$ + "KillProcess.vbs"
    g$ = chr$(34) : slash$ = chr$(92)
    FILE_OPEN_WRITE 9999, f$
    file_writeln 9999, "strComputer = "+g$+"."+g$
    file_writeln 9999, "strProcessKill = "+g$+"'"+process$+"'"+g$
    file_writeln 9999, "Set objWMIService = GetObject("+g$+"winmgmts:"+g$+" _"
    file_writeln 9999, "& "+g$+"{impersonationLevel=impersonate}!"+slash$+slash$+g$+" & strComputer & "+g$+"\root\cimv2"+g$+")"
    file_writeln 9999, "Set colProcessList = objWMIService.ExecQuery _"
    file_writeln 9999, "("+g$+"Select * from Win32_Process Where Name = "+g$+" & strProcessKill )"
    file_writeln 9999, "For Each objProcess in colProcessList"
    file_writeln 9999, "objProcess.Terminate()"
    file_writeln 9999, "Next"
    file_writeln 9999, "WSCript.Echo "+g$+"Process tué : "+g$+" & strProcessKill"
    file_writeln 9999, "WScript.Quit"

    FILE_CLOSE 9999
    EXECUTE_WAIT f$
    FILE_DELETE f$

END_SUB
rem ============================================================================

Ça peut servir à tuer un processus qui a planté.
Personnellement, j’ai crée sur le bureau un fichier KillPano.vbs spécialement pour ‘tuer’ "Panoramic.exe" quand il plante.


Voici le code VBS

Code:
strComputer = "."
strProcessKill = "'panoramic.exe'"
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
    ("Select * from Win32_Process Where Name = " & strProcessKill )
For Each objProcess in colProcessList
    objProcess.Terminate()
Next
WSCript.Echo "Just killed process " & strProcessKill
WScript.Quit


Dernière édition par papydall le Dim 14 Fév 2016 - 2:53, édité 4 fois (Raison : Le forum bouffe le)
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Invité
Invité




KillProcess pour 'tuer' toutes les instances d'un processus  Empty
MessageSujet: Re: KillProcess pour 'tuer' toutes les instances d'un processus    KillProcess pour 'tuer' toutes les instances d'un processus  EmptySam 17 Oct 2015 - 16:10

Merci pour ton programme Papydall.

Mais il y a une erreur: il manque "\\"
La ligne 36 doit-être écrite ainsi:
Code:
file_writeln 9999, "& "+g$+"{impersonationLevel=impersonate}!\\"+g$+" & strComputer & "+g$+"\root\cimv2"+g$+")"

Ety là ça marche.
Le lien où j'ai trouvé:
à lire

Je vois que c'est le lien avec la taduction, il faut laisser le curseur sur la ligne pour corriger.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

KillProcess pour 'tuer' toutes les instances d'un processus  Empty
MessageSujet: Re: KillProcess pour 'tuer' toutes les instances d'un processus    KillProcess pour 'tuer' toutes les instances d'un processus  EmptySam 17 Oct 2015 - 17:05

On peut aussi utiliser dans un programme Panoramic la commande taskkill
Code:
tache$ = "Panoramic.exe": ' par exemple
EXECUTE_WAIT "cmd.exe /c taskkill.exe /F /T /IM "+tache$
ou dans un simple fichier batch, par exemple Kill.bat, en donnant en paramètre l'exécutable à tuer:
ex: Kill.bat Panoramic.exe
Code:
@echo off
Taskkill.exe /F /T /IM %1
Rappel: la commande tasklist.exe donne la liste de toutes les tâches actives, par exemple:
Code:
EXECUTE_WAIT "cmd.exe /c Tasklist.exe >C:\Temp\Listach.txt
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7002
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

KillProcess pour 'tuer' toutes les instances d'un processus  Empty
MessageSujet: Re: KillProcess pour 'tuer' toutes les instances d'un processus    KillProcess pour 'tuer' toutes les instances d'un processus  EmptySam 17 Oct 2015 - 17:16

Merci cosmos70 pour le retour.
Chez moi, ça marche comme il faut.
Les « \\ » ont été bouffés par le forum, ce qui est ENERVANT pour un code entre les balises !

Je viens d’éditer les codes en les remplaçant par chr$(92) et maintenant ils y sont.

En tout cas, merci pour l’avoir signalé

@JL35

Merci pour le rappeler.
Pour Taskkill on en a débattu ici
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

KillProcess pour 'tuer' toutes les instances d'un processus  Empty
MessageSujet: Re: KillProcess pour 'tuer' toutes les instances d'un processus    KillProcess pour 'tuer' toutes les instances d'un processus  EmptySam 17 Oct 2015 - 18:05

Bis repetita placent.
Revenir en haut Aller en bas
Invité
Invité




KillProcess pour 'tuer' toutes les instances d'un processus  Empty
MessageSujet: Re: KillProcess pour 'tuer' toutes les instances d'un processus    KillProcess pour 'tuer' toutes les instances d'un processus  EmptySam 17 Oct 2015 - 18:10

Je suis en train de penser une chose, malgré que je pense que Jack n'acceptera de revoir ceci:
Il y a le bouton stop du menu. Celui-ci arrête un programme en attente d'événement. Mais si on est dans une boucle, ou qu'il y ait un processus qui bloque, il ne fonctionne pas. Ce ne serait pas compliqué de faire la même opération que celles que vous indiquez. On aurait enfin un vrai blocage de programme, sans faire appel au gestionnaire de tâche, ou à ce qu'on aurait nous-même implanté.
Revenir en haut Aller en bas
Contenu sponsorisé





KillProcess pour 'tuer' toutes les instances d'un processus  Empty
MessageSujet: Re: KillProcess pour 'tuer' toutes les instances d'un processus    KillProcess pour 'tuer' toutes les instances d'un processus  Empty

Revenir en haut Aller en bas
 
KillProcess pour 'tuer' toutes les instances d'un processus
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Tuer un processus récalcitrant
» Astuce pour executer XP sous Windows 7 avec toutes les appli
» Montant en toutes lettres
» Un SCROLL_BAR qui en voit de toutes les couleurs
» [RÉSOLU] ON_CLOSE : interrompre processus fermeture fenêtre

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: