BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
6 août 2003 à 14:36
_Thy_
Messages postés33Date d'inscriptionmardi 24 août 2004StatutMembreDernière intervention19 septembre 2005
-
2 mars 2005 à 15:22
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
_Thy_
Messages postés33Date d'inscriptionmardi 24 août 2004StatutMembreDernière intervention19 septembre 2005 2 mars 2005 à 15:22
moga :
Je vais m'en servir de base pour exactement le contraire :
Vérifier à intervalles de temps réguliers qu'une appli tourne bien, sinon la relancer (C'est un peu long à expliquer je veux bien que le prog à tracer soit fermé, mais pas trop longtemps... on a parfois de drôles de besoins) :)
Forest44
Messages postés1Date d'inscriptionmercredi 29 septembre 2004StatutMembreDernière intervention29 septembre 2004 29 sept. 2004 à 14:26
Comment distinguer les applications des processus comme le fait le gestionnaire de tâches de windows ?
victorcoasne
Messages postés1101Date d'inscriptionjeudi 24 avril 2003StatutMembreDernière intervention23 juillet 20237 16 août 2004 à 17:24
Problème de link sous Dev
cs_Xentor609
Messages postés258Date d'inscriptionjeudi 20 mars 2003StatutMembreDernière intervention16 août 2004 11 juin 2004 à 11:14
Exact ! Tellement évident que je n'ai meme pas pensé !!!
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 9 juin 2004 à 19:20
Je pense que pour killer un P2p FindWindow devrait suffire.
PostMessage(hwnd, WM_CLOSE, 0, 0); et le tour est joue, non ?
cs_Xentor609
Messages postés258Date d'inscriptionjeudi 20 mars 2003StatutMembreDernière intervention16 août 2004 9 juin 2004 à 19:05
Salut moga!
Pour pouvoir killer, il suffit de lister les processus, en fonction du nom du processus ou du chemin d'accès tu auras son ID et ensuite tu le kill. Tu peux retrouver l'utilisation de ces fonctions dans GetTaskList(...) et KillProcess(...). Le code n'est pas très compliqué : tu reprends à peu près la même chose que GetTaskList :
Voilà, le code devrait ressembler à çà, à quelques erreurs près (je n'ai pas du tout compilé ou essayer donc aucune garantie). Et pour l'appel de cet fonction tu utilises soit un sleep ou de préférance un timer, enfin à toi de voir. Je te souhaite bonne chance.
Bye,Xentor609!
cs_moga
Messages postés1Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention 9 avril 2004 9 avril 2004 à 20:21
Alors tout simplement bravo;
voila qlq temps deja que je cherche un code reprenant la gestion de processus; mais alors carrement un taskmanager je suis comblé...
Je te remercie du fond du coeur pour cette source ;p
Seul souci je suis debutant ca va etre chaud de tout comprendre eheh
enfin bon coté idée j'en une pitite : ce serai de pouvoir checker automatiquement a intervale regulier qu'un processus (ou meme une liste) ne soit pas en route et de pouvoir le killer automatiquement...
Bon j avoue tout je cherche en fait a faire un prog pour buter la mule, et autre p2p que mon frangin met en route intepestivement et qui bouffent la bande passante de tout le monde.
Seulement il faut pas qu il s en rende trop compte sinon ca va bouder je prefere qu il croit simplement que son prog marche pas des masses
Bon encore merci ++
cs_Xentor609
Messages postés258Date d'inscriptionjeudi 20 mars 2003StatutMembreDernière intervention16 août 2004 19 août 2003 à 19:25
L'idee est bonne. Je pourrais bien en faire ma MAJ, ca serait vraiment intéressant. Pour le moment, je suis occupe par d'autres projets, mais des que j'ai un temps, je m'en occuperais. C'est promis!
Merci encore pour l'idée!
Anacr0x
Messages postés515Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention27 avril 20062 19 août 2003 à 15:28
juste une petite idée comme ca, tu pourait rajouté un systeme pour arrété un process par ligne de commande. Ca permettrait de pouvoir faire un petit raccourci qui ferme automatiquement un (ou plusieur process) en meme tps (du genre TaskManager.exe -WINWORD.exe)
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 18 août 2003 à 22:09
NICKEL !!! A utiliser sans moderation.
Anacr0x
Messages postés515Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention27 avril 20062 18 août 2003 à 22:00
dsl, jsui 2 de tens, la source a déja été mise a jour (^_^)
Aucun pb ds la nouvelle version, bravo
Anacr0x
Messages postés515Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention27 avril 20062 18 août 2003 à 21:28
aucun pb, envoi sur Anacr0x@yahoo.fr si tu veu
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 17 août 2003 à 13:04
Poste quand tu veux.
cs_Xentor609
Messages postés258Date d'inscriptionjeudi 20 mars 2003StatutMembreDernière intervention16 août 2004 17 août 2003 à 12:58
salut!
Tout d'abord merci pour vos commentaires!
Dès le départ, j'ai pensé que le rafraichissement automatique à 1 seconde réglerait le problème mais ca ne changait rien. J'ai même essayé de mettre des Sleep un peu partout mais sans résultat.
J'ai essayé toutes vos propositions, mais une fois de plus, le problème reste toujours présent.
Mais j'ai modifié le code, et ça a l'air de marcher sans problème.
Je voudrais avant de poster sur CPPFrance, vous envoyer le programme (enfin si vous êtes d'accord bien sûr), afin d'avoir votre avis et aussi savoir si le programme fonctionne sans problème chez vous ! D'avance merci.
Xentor609
Anacr0x
Messages postés515Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention27 avril 20062 17 août 2003 à 01:16
Bon ben g reussi a tt threadé mais rien a faire ca ne marche pas commen je le veu... Pourtant je suis presk sur qu'en réduisant la vitesse du rafraichissement automatik a 1 seconde on gagne et en ressource et en stabilité... A vrai dire, tu conné et compren mieu ton code que moi donc je vais te laissé le faire, t'aura ptet plus de chance (et pi c ton programme après tt (^_^) )
Si t'as un quelconque problème, n'hésite pas a demandé (on sé jamais, jpourré peut-etre connaitre la réponse...)
BruNews, je croi ke tu as raison, la chaleur m'atteint sérieusement, j'arrive a rien en ce moment ;) Et pi en plus, j'ai mem pas encore commencé a testé le sous-classement, fodré ke jmy mette quand j'auré plus de tps
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 16 août 2003 à 21:38
typedef struct _TOTHREAD {
HWND h1;
HWND h2;
long l1;
long l2;
} TOTHREAD, *LPTOTHREAD;
TOTHREAD tothrd;
initialise les membres quand besoin;
decalare ta func de thread normal ou (idem):
DWORD WINAPI MonThread(LPTOTHREAD pparm);
Appel de CreateThread ne change pas.
Anacr0x
Messages postés515Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention27 avril 20062 16 août 2003 à 21:26
Dsl Xentor, mé je croi ke mon aide va s'arrété la, g trop de mal avec les structures et malgré mes efforts, ya plin d'erreur de compilation, peut etre est tu plus doué que moi la dessus... De plus, j'ai des doutes quands au résultats.. Enfin, si tu veu, je peut te montré ce ke j'ai fé (ca te sera sans doute pas trè utile)
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 16 août 2003 à 20:07
Anacr0x, on passe 200000000000 args a un thread si on veut. Je ne suis pas le seul victime de la chaleur. Un pointeur sur une structure et voila le prob du nbr de params resolu.
Anacr0x
Messages postés515Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention27 avril 20062 16 août 2003 à 14:41
Bon, je clarifie un peu mes pensée... Ce qu'il y a d'étonant dans ton programme, c'est qu'il fait planté les autres, et pas le tiens, j'en déduis donc qu'ils essayent d'écrire dans une partie que tu est en train de lire ou écrire et ca bloque (je peut me gourré aussi), donc en mettant une temporisation dans ta boucle ProcessListView au bon endroit peut etre que ca marchera... Le probleme c'est qu'une temporisation entrainera un problème d'afichage, il faut donc en faire un thread, g modifié tt ca mais j'en suis arrivé a un autre problème, comment passé deux argument a un thread (je ne sais en mettre qu'un) ? Si vous croyez que je me trompe totalement, dite le moi tt de suite, ca m'évitera de cherché pour rien (^_^)
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 16 août 2003 à 12:09
Salut les obsedes du codage (hi hi hi...),
5 jours de campagne m'ont engourdi les neurones.
J'oubliais un truc que je voulais te dire Xentor609, les list(View) prennent un lParam en 32 bits pour stocker une valeur par item. Ne serait pas mieux que de reconvertir la valeur litterale comme est fait dans GetListItemTextId() ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 16 août 2003 à 11:59
Je pense juste avant ceci:
hProcessSnapME = CreateToolhelp32Snapshot(...)
seulement si est une nouvelle tache.
Vitesse de rafaichissement a 1 seconde ne suffirait pas ?
cs_Xentor609
Messages postés258Date d'inscriptionjeudi 20 mars 2003StatutMembreDernière intervention16 août 2004 16 août 2003 à 11:51
Est-ce que tu pourrais préciser ton idée ? Mettre une tempo, ok mais où? D'avance merci.
Xentor609
Anacr0x
Messages postés515Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention27 avril 20062 12 août 2003 à 19:08
Excuse moi, mais tu as raison, j'ai fait 2 autres test, la premiere fois, il a quand meme falu que j'ouvre plus de 15 logiciel en meme tps, et la deuxieme seulement 5. Je pense qu'il s'agit de la fonction de rafraichissement automatique qui bug (je n'ai pas encore regardé le code, mais peut etre qu'en métant une temporisation...)
cs_Xentor609
Messages postés258Date d'inscriptionjeudi 20 mars 2003StatutMembreDernière intervention16 août 2004 12 août 2003 à 16:38
salut Anacr0x!
Tout d'abord, merci de m'avoir répondu! Je commençais à désespèrer!
Pour les bugs, c'est aléatoire, donc ca peut se produire n'importe quand avec n'importe quel programme (j'en ai déjà eu avec Windows Media Player et pleins d'autres).
Ce que je fais pour tester, j'appelle TaskManager, je le réduis, j'appelle pleins de programmes et généralement, j'ai le message d'erreur.
J'ai testé ce programme sur pas mal de machines (pour voir si les bugs n'apparaissaient que sur mon ordi) et sur tous les PC testés, le bug est apparu.
A première vue, tu serais le "seul" (peut-être d'autres n'ont pas ces bugs là, mais à part toi, je n'en connais pas) avec qui le programme fonctionne sans problème.
En ce qui concerne le conflit logiciel, je pense pas que le problème vient de là, mais c'est possible.
Est-ce que tu pourrais réessayer le programme pour confirmer qu'il marche sans problème chez toi? D'avance merci.
Xentor609
Anacr0x
Messages postés515Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention27 avril 20062 11 août 2003 à 22:45
trè bon programme (qui plus est très pratique) ! de plus, chez moi, aucun bug a signaler, que ce soit avec word (contrairement a ce ke tu dit au dessus) ou n'importe quel autres logiciels... peut etr a tu un conflit logiciel ?
cs_Xentor609
Messages postés258Date d'inscriptionjeudi 20 mars 2003StatutMembreDernière intervention16 août 2004 8 août 2003 à 08:54
En ce qui concerne le style (LVS_EX_FULLROWSELECT), il y a un petit détail qui me gene : il y a un espace vide à la fin de la listview. Est-ce qu'il y aurait un moyen de l'enlever ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 6 août 2003 à 19:02
int VerWindowsNT()
{
OSVERSIONINFO osvi;
osvi.dwPlatformId = 0; // unique membre qui nous interesse ici
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&osvi);
return (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT);
}
et remplace aussi comme cela qui est bien suffisant si on a juste besoin de savoir type NT ou non.
cs_Xentor609
Messages postés258Date d'inscriptionjeudi 20 mars 2003StatutMembreDernière intervention16 août 2004 6 août 2003 à 18:34
Salut,
pour ce qui est des "string", tu as tout a fait raison, mais ca c'est juste une question de "facilité",et que je suis en ce moment occupe sur un autre projet. Mais je compte bien faire une MAJ avec corrections de certains bugs et elimination de string au profit des bons vieux "char".
Pour l'alloc sur temp, c'est juste un oubli, merci de l'avoir remarque.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 6 août 2003 à 14:36
#include <string>
using namespace std;
T'avais vraiment besoin de ces horreurs ?
Dans AddProcessList(...) tu fais 4 allocs sur temp, quand tu liberes ?
Pour l'instant j'en suis la, je nettoie tout cela, reste a suivre.
2 mars 2005 à 15:22
Je vais m'en servir de base pour exactement le contraire :
Vérifier à intervalles de temps réguliers qu'une appli tourne bien, sinon la relancer (C'est un peu long à expliquer je veux bien que le prog à tracer soit fermé, mais pas trop longtemps... on a parfois de drôles de besoins) :)
29 sept. 2004 à 14:26
16 août 2004 à 17:24
11 juin 2004 à 11:14
9 juin 2004 à 19:20
PostMessage(hwnd, WM_CLOSE, 0, 0); et le tour est joue, non ?
9 juin 2004 à 19:05
Pour pouvoir killer, il suffit de lister les processus, en fonction du nom du processus ou du chemin d'accès tu auras son ID et ensuite tu le kill. Tu peux retrouver l'utilisation de ces fonctions dans GetTaskList(...) et KillProcess(...). Le code n'est pas très compliqué : tu reprends à peu près la même chose que GetTaskList :
DWORD GetTaskList(void)
[...]
if(pe32.th32ProcessID)
{
if(strcmp(pe32.szExeFile,"emule.exe")==0)
{
HANDLE hProcess=OpenProcess(PROCESS_TERMINATE,0,pe32.th32ProcessID);
if(hProcess)
{
TerminateProcess(hProcess,1);
CloseHandle(hProcess);
}
}
}
[...]
Voilà, le code devrait ressembler à çà, à quelques erreurs près (je n'ai pas du tout compilé ou essayer donc aucune garantie). Et pour l'appel de cet fonction tu utilises soit un sleep ou de préférance un timer, enfin à toi de voir. Je te souhaite bonne chance.
Bye,Xentor609!
9 avril 2004 à 20:21
voila qlq temps deja que je cherche un code reprenant la gestion de processus; mais alors carrement un taskmanager je suis comblé...
Je te remercie du fond du coeur pour cette source ;p
Seul souci je suis debutant ca va etre chaud de tout comprendre eheh
enfin bon coté idée j'en une pitite : ce serai de pouvoir checker automatiquement a intervale regulier qu'un processus (ou meme une liste) ne soit pas en route et de pouvoir le killer automatiquement...
Bon j avoue tout je cherche en fait a faire un prog pour buter la mule, et autre p2p que mon frangin met en route intepestivement et qui bouffent la bande passante de tout le monde.
Seulement il faut pas qu il s en rende trop compte sinon ca va bouder je prefere qu il croit simplement que son prog marche pas des masses
Bon encore merci ++
19 août 2003 à 19:25
Merci encore pour l'idée!
19 août 2003 à 15:28
18 août 2003 à 22:09
18 août 2003 à 22:00
Aucun pb ds la nouvelle version, bravo
18 août 2003 à 21:28
17 août 2003 à 13:04
17 août 2003 à 12:58
Tout d'abord merci pour vos commentaires!
Dès le départ, j'ai pensé que le rafraichissement automatique à 1 seconde réglerait le problème mais ca ne changait rien. J'ai même essayé de mettre des Sleep un peu partout mais sans résultat.
J'ai essayé toutes vos propositions, mais une fois de plus, le problème reste toujours présent.
Mais j'ai modifié le code, et ça a l'air de marcher sans problème.
Je voudrais avant de poster sur CPPFrance, vous envoyer le programme (enfin si vous êtes d'accord bien sûr), afin d'avoir votre avis et aussi savoir si le programme fonctionne sans problème chez vous ! D'avance merci.
Xentor609
17 août 2003 à 01:16
Si t'as un quelconque problème, n'hésite pas a demandé (on sé jamais, jpourré peut-etre connaitre la réponse...)
BruNews, je croi ke tu as raison, la chaleur m'atteint sérieusement, j'arrive a rien en ce moment ;) Et pi en plus, j'ai mem pas encore commencé a testé le sous-classement, fodré ke jmy mette quand j'auré plus de tps
16 août 2003 à 21:38
HWND h1;
HWND h2;
long l1;
long l2;
} TOTHREAD, *LPTOTHREAD;
TOTHREAD tothrd;
initialise les membres quand besoin;
decalare ta func de thread normal ou (idem):
DWORD WINAPI MonThread(LPTOTHREAD pparm);
Appel de CreateThread ne change pas.
16 août 2003 à 21:26
16 août 2003 à 20:07
16 août 2003 à 14:41
16 août 2003 à 12:09
5 jours de campagne m'ont engourdi les neurones.
J'oubliais un truc que je voulais te dire Xentor609, les list(View) prennent un lParam en 32 bits pour stocker une valeur par item. Ne serait pas mieux que de reconvertir la valeur litterale comme est fait dans GetListItemTextId() ?
16 août 2003 à 11:59
hProcessSnapME = CreateToolhelp32Snapshot(...)
seulement si est une nouvelle tache.
Vitesse de rafaichissement a 1 seconde ne suffirait pas ?
16 août 2003 à 11:51
Xentor609
12 août 2003 à 19:08
12 août 2003 à 16:38
Tout d'abord, merci de m'avoir répondu! Je commençais à désespèrer!
Pour les bugs, c'est aléatoire, donc ca peut se produire n'importe quand avec n'importe quel programme (j'en ai déjà eu avec Windows Media Player et pleins d'autres).
Ce que je fais pour tester, j'appelle TaskManager, je le réduis, j'appelle pleins de programmes et généralement, j'ai le message d'erreur.
J'ai testé ce programme sur pas mal de machines (pour voir si les bugs n'apparaissaient que sur mon ordi) et sur tous les PC testés, le bug est apparu.
A première vue, tu serais le "seul" (peut-être d'autres n'ont pas ces bugs là, mais à part toi, je n'en connais pas) avec qui le programme fonctionne sans problème.
En ce qui concerne le conflit logiciel, je pense pas que le problème vient de là, mais c'est possible.
Est-ce que tu pourrais réessayer le programme pour confirmer qu'il marche sans problème chez toi? D'avance merci.
Xentor609
11 août 2003 à 22:45
8 août 2003 à 08:54
6 août 2003 à 19:02
{
OSVERSIONINFO osvi;
osvi.dwPlatformId = 0; // unique membre qui nous interesse ici
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&osvi);
return (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT);
}
et remplace aussi comme cela qui est bien suffisant si on a juste besoin de savoir type NT ou non.
6 août 2003 à 18:34
pour ce qui est des "string", tu as tout a fait raison, mais ca c'est juste une question de "facilité",et que je suis en ce moment occupe sur un autre projet. Mais je compte bien faire une MAJ avec corrections de certains bugs et elimination de string au profit des bons vieux "char".
Pour l'alloc sur temp, c'est juste un oubli, merci de l'avoir remarque.
6 août 2003 à 14:36
using namespace std;
T'avais vraiment besoin de ces horreurs ?
Dans AddProcessList(...) tu fais 4 allocs sur temp, quand tu liberes ?
Pour l'instant j'en suis la, je nettoie tout cela, reste a suivre.