MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 2009
-
30 juin 2004 à 22:08
cs_DAHOKHAN
Messages postés20Date d'inscriptionmercredi 19 octobre 2005StatutMembreDernière intervention12 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.
cs_DAHOKHAN
Messages postés20Date d'inscriptionmercredi 19 octobre 2005StatutMembreDernière intervention12 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és308Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention15 juin 20151 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és453Date d'inscriptiondimanche 9 février 2003StatutMembreDernière intervention 9 juillet 20042 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és2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 2 juil. 2004 à 19:51
oh zut.
et tu as windows XP ?
cs_Houzefa
Messages postés453Date d'inscriptiondimanche 9 février 2003StatutMembreDernière intervention 9 juillet 20042 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és2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 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és453Date d'inscriptiondimanche 9 février 2003StatutMembreDernière intervention 9 juillet 20042 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és308Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention15 juin 20151 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és17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 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...
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és453Date d'inscriptiondimanche 9 février 2003StatutMembreDernière intervention 9 juillet 20042 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és17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 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és453Date d'inscriptiondimanche 9 février 2003StatutMembreDernière intervention 9 juillet 20042 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és2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 1 juil. 2004 à 00:36
lol c'est un certain point de vue
cs_Logan
Messages postés99Date d'inscriptionmercredi 2 janvier 2002StatutMembreDerniè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és2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 30 juin 2004 à 22:08
8 déc. 2005 à 14:51
est ce que tu peu m'aider svp thk!
6 juil. 2004 à 18:08
3 juil. 2004 à 12:42
2 juil. 2004 à 19:51
et tu as windows XP ?
2 juil. 2004 à 19:42
2 juil. 2004 à 19:39
ça peut être pas mal...
2 juil. 2004 à 13:43
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.
1 juil. 2004 à 21:19
1 juil. 2004 à 14:02
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... ;)
1 juil. 2004 à 13:24
mais tu as raison je ne maitrise pas les API et j'utilise des portions de code que j'ai trouvées.
1 juil. 2004 à 13:20
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 ;)
1 juil. 2004 à 10:39
1 juil. 2004 à 00:36
1 juil. 2004 à 00:34
30 juin 2004 à 22:08