TERMINER UN PROCESSUS DU SYSTÈME

MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 - 30 juin 2004 à 22:08
cs_DAHOKHAN Messages postés 20 Date d'inscription mercredi 19 octobre 2005 Statut Membre Dernière intervention 12 décembre 2005 - 8 déc. 2005 à 14:51
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/24157-terminer-un-processus-du-systeme

cs_DAHOKHAN Messages postés 20 Date d'inscription mercredi 19 octobre 2005 Statut Membre Dernière intervention 12 décembre 2005
8 déc. 2005 à 14:51
salut houzefa comme je te l'ai envoyer en message priver j'aime ton code je le comprend mais il ne marche pas chez moi!
est ce que tu peu m'aider svp thk!
Philippe734 Messages postés 308 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 juin 2015 1
6 juil. 2004 à 18:08
le shell est uniquement pour un processus qu'a une fenetre ouverte, et qu'une instance ; un processus réduit en icone près de l'horloge shell ne marcherai pas. avec les api c mieux.
cs_Houzefa Messages postés 453 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 9 juillet 2004 2
3 juil. 2004 à 12:42
oui je l'ai essayé sur win xp. j'ai aussi essayé directement en tapant la commande dans Démarrer > Exécuter.
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
2 juil. 2004 à 19:51
oh zut.
et tu as windows XP ?
cs_Houzefa Messages postés 453 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 9 juillet 2004 2
2 juil. 2004 à 19:42
ca a l'air pas mal et l'auteur du commentaire dit que c pour win xp ; mais chez moi ca marche pas...
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
2 juil. 2004 à 19:39
dit ton Shell "tskill Babylon.exe" t'es sur qu'il marche ? et pour tous les OS ?
ça peut être pas mal...
cs_Houzefa Messages postés 453 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 9 juillet 2004 2
2 juil. 2004 à 13:43
ah oui ba c à peu près le meme code que moi, sauf que tu as gardé tous les noms des constantes, etc. et je pense qu'il ya peut-etre un peu trop d'appels à des API qu'il n'en faudrait. mais bon jlavais pas vu quand javais cherché c'est dommage...

par contre j'y ai vu un commentaire intéressant, tout mon prog peut se résumer autrement par une simple ligne :

Shell "tskill Babylon.exe"

lol donc voilà tout ca pour peu de chose quoi ! mais ca m'a bien fait avancer sur les API merci à tous.
Philippe734 Messages postés 308 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 juin 2015 1
1 juil. 2004 à 21:19
une autre source pour terminer les processus, sans fenetres : http://www.vbfrance.com/code.aspx?ID=18641 je pense que ca t'interreserai des les comparer pour mieux en piger les appels d'api relatifs :-)
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
1 juil. 2004 à 14:02
en fait, les constantes permettent d'avoir un (ou plusieurs) mots a la place de leur valeur chiffrée.

ce mot donne souvent une indication (plus ou moins claire) sur ce que sa présence indique a la fonction...

OpenProcess(1, 0, Processus.th32ProcessID)
OpenProcess(PROCESS_TERMINATE , 0, Processus.th32ProcessID)

la deuxième ligne est tout de même plus claire....

enfin, ca n'etait pas une critique... il peu arriver de s'inspirer de codes trouvés a gauche a droite.... l'essentiel est d'en décortiquer le fonctionnement et de le comprendre.... faire un code qui fonctionne comme on le veux n'est qu'une première étape... ;)
cs_Houzefa Messages postés 453 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 9 juillet 2004 2
1 juil. 2004 à 13:24
tu dois avoir raison pour les \0... sinon pour les constantes je sais très bien à quoi correspondent les chiffres que j'ai mis seulement je trouvais inutile de garder les constantes, c'est tout.

mais tu as raison je ne maitrise pas les API et j'utilise des portions de code que j'ai trouvées.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
1 juil. 2004 à 13:20
Je trouve très dommage d'utiliser des API sans en connaitre (a priori) le fonctionnement exact...

tu utilises :
Capture = CreateToolhelp32Snapshot(2, 0)

que fait ce '2' ?? pourquoi ne pas avoir mis 5 ou 6 ?
il correspond en fait a la constante
Const TH32CS_SNAPPROCESS = &H2

qui permet d'indiquer que l'on veux lister les Process

l'utilisation des constantes nommées aident la compréhension du code....


d'autre part, je trouve quelques peu étrange ton test :

It Left$(Processus.szExeFile, IIf(InStr(1, Processus.szExeFile, Chr$(0)) > 0, InStr(1, Processus.szExeFile, Chr$(0)) - 1, 0)) = "Babylon.exe" Then

En effet, tu considère en faisant ca que la chaine Processus.szExeFile pourrait ne pas contenir de \0.... c'est un raisonnement erroné !

Left$(strString, instr ( strstring , vbnullchar)-1) aurait pu suffir...


dans ton cas, tu aurais même pu faire :

'# au debut de ta procedure
Dim Length As Integer
Length = Len("Babylon.exe")

'# Comme test :
If Left$(Processus.szExeFile, Length) = "Babylon.exe" Then


enfin, pour finir sur l'utilisation hazardeuse des API, encore une exemple :
OpenProcess(1, 0, Processus.th32ProcessID)

a quoi correspond la valeur 1 ?
à la constante
Const PROCESS_TERMINATE = &h1

bref, ton code fonctionne (attention a l'OS minimum) mais n'est pas clair. J'espere qu'il l'est au moins pour toi ;)
cs_Houzefa Messages postés 453 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 9 juillet 2004 2
1 juil. 2004 à 10:39
avant de faire cette source j'ai évidemment cherché sur le site, j'y ai trouvé au maximum 10 sources de ce type ; cependant, certaines ne marchaient pas ; celles qui marchaient permettaient uniquement de fermer une fenetre déja ouverte. or Babylon, par exemple, n'ouvre pas de fenêtre ; pour le fermer, faut terminer le processus Babylon.exe ; et pour ca, j'ai trouvé aucune source sur le site.
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
1 juil. 2004 à 00:36
lol c'est un certain point de vue
cs_Logan Messages postés 99 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 9 juin 2008
1 juil. 2004 à 00:34
mai lol, il y a 11 000 sources vbfrance, mais les 1/4 voire la moitié ont déjà été faites.
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
30 juin 2004 à 22:08
déjà sur le site je crois
Rejoignez-nous