RUN-CONTROL VOUS ALERTE DES QU'UN PROGRAMME S'ENREGISTRE POUR SE LANCER AU DEMAR
FeelCode
Messages postés278Date d'inscriptionvendredi 16 avril 2004StatutMembreDernière intervention27 avril 2006
-
14 mars 2005 à 04:39
draluorg
Messages postés625Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention25 novembre 2010
-
22 sept. 2006 à 23:10
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
draluorg
Messages postés625Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention25 novembre 2010 22 sept. 2006 à 23:10
Eh oui c'est l'executable car j'ai laisse tombe ce projet et les sources sont toujours a l'etat de brouillon.
En fait j'utilise CreateEvent, RegNotifyChangeKeyValue et WaitForMultipleObjects.
Je recois donc un evenement lorsqu'une cle est modifiee, je n'ai donc pas besoin de verifier a interval si il y a eu modification.
Seul probleme WaitForMultipleObjects ne gere que 64 objet(cles dans ce cas) et donc il faut creer un thread par bloc de 64 cles.
J'utilise une dll en C++ pour les threads, c'est relativement stable mais ca reste delicat.
++
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 22 sept. 2006 à 22:48
A l'exécutable, en fait.
Je ne connais pas la méthode que tu as employée, mais elle est efficace au niveau du ratio performance/nombre de clés vérifiées, vraiment.
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 22 sept. 2006 à 18:57
Salut, je vais jetter un coup d'oeil attentif à ta source (moi même ayant programmé ceci pour mon projet).
Merci, @+ (et il est vrai que cette source date un peu ;)
draluorg
Messages postés625Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention25 novembre 2010 22 sept. 2006 à 14:29
Salut,
Erf wai c'est vieux ce code, j'en ai refais un depuis, base sur RegNotifyChangeKeyValue en multithread, avec sauvegarde des cles et comparaisons au demarrage et a l'arret de Windows etc...
Par defaut il a une centaine de cles, mais on peut lui en ajouter soit une par une soit depuis un liste, possibilite aussi de verouiller des cles etc...
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 22 sept. 2006 à 13:36
Salut !
Pour le nombre de clé et valeurs de clé à checker, c'est bien plus que 8 ou 30 (en comptant tout les modules démarrant au démarrage de Windows, par exemple avec l'explorateur). Faut ajouter à çà les dossiers "Demarrage" et les tasks Windows.
J'ai fait le même genre de code pour mon projet, et l'utilisation CPU pour checker toutes les clés (peut être 200) bouffe pas moins de 10% de CPU...alors si on prend une intervalle assez importante (5000 ms), çà passe, mais c'est pas fameux pour un prog. d'arrière plan. Faudrait pouvoir hooker tout çà (à la manière de Regmon, mais çà nécessite d'installer un driver, et c'est plus de mon niveau).
Voilà ! @+
draluorg
Messages postés625Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention25 novembre 2010 16 mars 2005 à 11:26
salut,
bein c'est un code qui travail en arriere plan et il envoi juste une petite fenetre d'alerte lorsque un programme a ete ajoute
donc il n'y a pas de systray et pas de fenetre ds la barre des taches sauf au moment de l'alerte
sinon pq a tu marque les cles run ? elle sont deja ds le code
Bonne prog @+
coolcubix
Messages postés28Date d'inscriptionlundi 22 mars 2004StatutMembreDernière intervention19 mai 2006 16 mars 2005 à 10:44
aah !
sympa pour le coup j'aime bien l'idée... j'ai pas vraiment regardé le code mais ça doit etre bien.
pour les run multi-users :
run pour TOUS : HKLM/SOFTWARE/MICROSOFT/WINDOWS/CURRENTVERSION/RUN & RUNONCE & RUNONCEEX
run pour le user en cours :
HKCU/soft/ms/win/currentversion/run&runonce
run pour les autres users :
HKusers/[no du user]/soft/ms/win/currentversion/run&runonce
je voudrais savoir (n'ayant pas trop regardé le code) si le prog se mettait comme un grand dans le systray :) ou s'il nous prend comme les autres un espace fou dans la barre des taches...?
draluorg
Messages postés625Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention25 novembre 2010 15 mars 2005 à 18:28
re,
eeh bein moi perso j'ai fais ce code au depart en voulant me faire une version personnalisee du programme StartUpMonitor qui fait exactement la meme chose que mon code (mais en mieux) donc vais pas aller enlever des fonctions...!
Puisy a pas 30 sources qui font ca sur le site et on utilise des methodes differentes
Apres c'est aux autres programmeurs de choisir entre
soit aller constamant interroger la BDR
soit creer plusieurs processus
sachant la fiabilite du MultiThread sous VB je crois que je vais rester sur la premiere donc nos sources ne risquent pas d'etre les memes.
FeelCode
Messages postés278Date d'inscriptionvendredi 16 avril 2004StatutMembreDernière intervention27 avril 20061 15 mars 2005 à 17:52
ben dans mon source il y en a plus que 3 :)
la j'en suis a 12 mai si tu pouvai plutot t'ocupper du menu demarer sa m'arrangerais histoire qu'on fasse pas la meme chose enfin presque lol
draluorg
Messages postés625Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention25 novembre 2010 15 mars 2005 à 17:48
salut,
Oui pour la methde pour trouver le path g fais le pourris
mais je l'ai preciser dans la presentation..
Sinon je viens seulement de comprendre ce que tu ce que tu voulais dire ds "bug1"
oui en effet j'avais deja constate mais bon me suis dit que c'etait pas si important pcq il y a pas bcp de risque qu'un dossier s'y mette
donc se serait "bete" d'allourdir le code pour gerer ca
a la limite une ptite gestion d'erreur derriere delefile
qui verifiera l'atribut renvoi sur un removefolder si c'est un dossier
Tu as aussi raison pour la faille qui consisterai
a suppimer une cle et d'ajouter directement une autre
j'aurais mieux fais de verifier la cle manquante
ah oui en fait je me suis deja penche sur la methode
RegNotifyChangeKEY mais comme tu le dis il faut travailer en multithread et vb6 est pas tres fort dans ce domaine j'arrive pas a lancer plus de 3 threads
a moin que tu connaisse une aure methode que le createThread pour lancer plusieurs verifications simultanees
merci pour tes remarques et conseils
bonne prog @+
FeelCode
Messages postés278Date d'inscriptionvendredi 16 avril 2004StatutMembreDernière intervention27 avril 20061 14 mars 2005 à 17:29
je me suis peut être mal exprimé :)
--> GetPath = disk & "Documents and Settings" & user & "\Menu Démarrer\Programmes\Démarrage\
si tu tombe sur un win en anglais sa marchera pas :)
disont que tu a un autre mode d'acès que le mien, moi je me fie a l'api qui me dis si la clef a changer.
Alors que toi tu dois utiliser une boucle pour virifier ce qui fait des acès sans arret aux registre. donc c est pas très bon.
encore que je ne sais pas ce que fait exactement l'api mai bon bref par contre sa detecte les sous clé
BruNews Merci :)
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 14 mars 2005 à 09:07
Utiliser ExpandEnvironmentStrings() pour obtenir le path en clair.
draluorg
Messages postés625Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention25 novembre 2010 14 mars 2005 à 06:52
re,
eeh bein j'avou que je comprends pas trop ce que tu veux dire
Mon prog sert a surveiller les cles de demarrage de Windows
tu me parle d'utiliser les apis ehhh ??? le code ne contient quasiement que des apis !
je precise que je n'ai pas mis ds le titre "logiciel de securite optimal"
c'est juste un code qui verifie si un prog veut se lancer au demarrage...
tu me dis aussi que windows ne se trouve po tjs sur C:\
ou ? as tu vu que j'utilisais un C:\ ?
sinon pour les 30 cles a surveiller bein c'est facile le code est prevu pour pouvoir en ajouter facilement
sinon je viens d'en faire un module de class bcp plus simple a utiliser et plus leger je le termine et je mets le code a jour...
bonne prog @+
FeelCode
Messages postés278Date d'inscriptionvendredi 16 avril 2004StatutMembreDernière intervention27 avril 20061 14 mars 2005 à 05:14
Tu peux utiliser les api windows come dans le mien plus lourd puisqu'il te faut utiliser des constante de type long
De plus il te faudra crée un tread donc plus lourd mai + rapide pour ne pas dire instantaner
rapelle les api sont fait en C et son donc integrer avec windows et donc optimisée :)
Bug 1:
j'ai tester pour voir cree un dossier dans le menu demarage et répond par non :)
Bug 2:
Ensuite tout les windows ne sons pas forcement enregistrer sur le disque c:\
Bug 3:
Ensuite dans le registre le tien ne detecte pas les nouvelles clef mai uniquement les valeur voila pourquoi je passe par les apis
le risque de supprimer une valeur c est qu'elle disparaisse avant ou que d'autre ne ce rajoute droit deriere, Et oui sa mai déjà arriver :)
ensuite il y a plus de 30 clef a suiveillier dans le registre j'en suis a 8 lol
voila j'ai fait le tour je croit
merci pour l'info :)
bon coding et bon courage :)
draluorg
Messages postés625Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention25 novembre 2010 14 mars 2005 à 04:55
Salut,
Bein j'ai po trouve de code qui faisait la meme chose sur le site donc desole si ton code fait la meme chose
mais si tu as lu le mien tu verra que je n'ai absolument rien copie du tien
sinon pour menu demarrage de tous les utilisateurs c''est assez facile,
il y a les api "GetDirectory"
je crois que c'est GetAllUserDirectory ou truc du genre
sinon que veux tu dire quand tu dis que la mienne est moin performante ?
si tu parle de la vitesse de detection c'est pas dutout important le but est que le prog prenne le moins de ressource systeme possible
bonne prog @+
FeelCode
Messages postés278Date d'inscriptionvendredi 16 avril 2004StatutMembreDernière intervention27 avril 20061 14 mars 2005 à 04:39
Je dirait que tu a repris mon idée et donc une partie de mon code et que tu as en plus fait les même erreur que moi :) par contre tu la gere d'une autre maniere plus facile
et donc plus légère mai moin performante :)
22 sept. 2006 à 23:10
En fait j'utilise CreateEvent, RegNotifyChangeKeyValue et WaitForMultipleObjects.
Je recois donc un evenement lorsqu'une cle est modifiee, je n'ai donc pas besoin de verifier a interval si il y a eu modification.
Seul probleme WaitForMultipleObjects ne gere que 64 objet(cles dans ce cas) et donc il faut creer un thread par bloc de 64 cles.
J'utilise une dll en C++ pour les threads, c'est relativement stable mais ca reste delicat.
++
22 sept. 2006 à 22:48
Je ne connais pas la méthode que tu as employée, mais elle est efficace au niveau du ratio performance/nombre de clés vérifiées, vraiment.
@+
22 sept. 2006 à 18:57
Merci, @+ (et il est vrai que cette source date un peu ;)
22 sept. 2006 à 14:29
Erf wai c'est vieux ce code, j'en ai refais un depuis, base sur RegNotifyChangeKeyValue en multithread, avec sauvegarde des cles et comparaisons au demarrage et a l'arret de Windows etc...
Par defaut il a une centaine de cles, mais on peut lui en ajouter soit une par une soit depuis un liste, possibilite aussi de verouiller des cles etc...
Tu peux le voir ici: http://systemzeb.free.fr/ZebRegNotify.zip
++
22 sept. 2006 à 13:36
Pour le nombre de clé et valeurs de clé à checker, c'est bien plus que 8 ou 30 (en comptant tout les modules démarrant au démarrage de Windows, par exemple avec l'explorateur). Faut ajouter à çà les dossiers "Demarrage" et les tasks Windows.
J'ai fait le même genre de code pour mon projet, et l'utilisation CPU pour checker toutes les clés (peut être 200) bouffe pas moins de 10% de CPU...alors si on prend une intervalle assez importante (5000 ms), çà passe, mais c'est pas fameux pour un prog. d'arrière plan. Faudrait pouvoir hooker tout çà (à la manière de Regmon, mais çà nécessite d'installer un driver, et c'est plus de mon niveau).
Voilà ! @+
16 mars 2005 à 11:26
bein c'est un code qui travail en arriere plan et il envoi juste une petite fenetre d'alerte lorsque un programme a ete ajoute
donc il n'y a pas de systray et pas de fenetre ds la barre des taches sauf au moment de l'alerte
sinon pq a tu marque les cles run ? elle sont deja ds le code
Bonne prog @+
16 mars 2005 à 10:44
sympa pour le coup j'aime bien l'idée... j'ai pas vraiment regardé le code mais ça doit etre bien.
pour les run multi-users :
run pour TOUS : HKLM/SOFTWARE/MICROSOFT/WINDOWS/CURRENTVERSION/RUN & RUNONCE & RUNONCEEX
run pour le user en cours :
HKCU/soft/ms/win/currentversion/run&runonce
run pour les autres users :
HKusers/[no du user]/soft/ms/win/currentversion/run&runonce
je voudrais savoir (n'ayant pas trop regardé le code) si le prog se mettait comme un grand dans le systray :) ou s'il nous prend comme les autres un espace fou dans la barre des taches...?
15 mars 2005 à 18:28
eeh bein moi perso j'ai fais ce code au depart en voulant me faire une version personnalisee du programme StartUpMonitor qui fait exactement la meme chose que mon code (mais en mieux) donc vais pas aller enlever des fonctions...!
Puisy a pas 30 sources qui font ca sur le site et on utilise des methodes differentes
Apres c'est aux autres programmeurs de choisir entre
soit aller constamant interroger la BDR
soit creer plusieurs processus
sachant la fiabilite du MultiThread sous VB je crois que je vais rester sur la premiere donc nos sources ne risquent pas d'etre les memes.
15 mars 2005 à 17:52
la j'en suis a 12 mai si tu pouvai plutot t'ocupper du menu demarer sa m'arrangerais histoire qu'on fasse pas la meme chose enfin presque lol
15 mars 2005 à 17:48
Oui pour la methde pour trouver le path g fais le pourris
mais je l'ai preciser dans la presentation..
Sinon je viens seulement de comprendre ce que tu ce que tu voulais dire ds "bug1"
oui en effet j'avais deja constate mais bon me suis dit que c'etait pas si important pcq il y a pas bcp de risque qu'un dossier s'y mette
donc se serait "bete" d'allourdir le code pour gerer ca
a la limite une ptite gestion d'erreur derriere delefile
qui verifiera l'atribut renvoi sur un removefolder si c'est un dossier
Tu as aussi raison pour la faille qui consisterai
a suppimer une cle et d'ajouter directement une autre
j'aurais mieux fais de verifier la cle manquante
ah oui en fait je me suis deja penche sur la methode
RegNotifyChangeKEY mais comme tu le dis il faut travailer en multithread et vb6 est pas tres fort dans ce domaine j'arrive pas a lancer plus de 3 threads
a moin que tu connaisse une aure methode que le createThread pour lancer plusieurs verifications simultanees
merci pour tes remarques et conseils
bonne prog @+
14 mars 2005 à 17:29
--> GetPath = disk & "Documents and Settings" & user & "\Menu Démarrer\Programmes\Démarrage\
si tu tombe sur un win en anglais sa marchera pas :)
disont que tu a un autre mode d'acès que le mien, moi je me fie a l'api qui me dis si la clef a changer.
Alors que toi tu dois utiliser une boucle pour virifier ce qui fait des acès sans arret aux registre. donc c est pas très bon.
encore que je ne sais pas ce que fait exactement l'api mai bon bref par contre sa detecte les sous clé
BruNews Merci :)
14 mars 2005 à 09:07
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
valueName = "Common Start Menu"
Utiliser ExpandEnvironmentStrings() pour obtenir le path en clair.
14 mars 2005 à 06:52
eeh bein j'avou que je comprends pas trop ce que tu veux dire
Mon prog sert a surveiller les cles de demarrage de Windows
tu me parle d'utiliser les apis ehhh ??? le code ne contient quasiement que des apis !
je precise que je n'ai pas mis ds le titre "logiciel de securite optimal"
c'est juste un code qui verifie si un prog veut se lancer au demarrage...
tu me dis aussi que windows ne se trouve po tjs sur C:\
ou ? as tu vu que j'utilisais un C:\ ?
sinon pour les 30 cles a surveiller bein c'est facile le code est prevu pour pouvoir en ajouter facilement
sinon je viens d'en faire un module de class bcp plus simple a utiliser et plus leger je le termine et je mets le code a jour...
bonne prog @+
14 mars 2005 à 05:14
De plus il te faudra crée un tread donc plus lourd mai + rapide pour ne pas dire instantaner
rapelle les api sont fait en C et son donc integrer avec windows et donc optimisée :)
Bug 1:
j'ai tester pour voir cree un dossier dans le menu demarage et répond par non :)
Bug 2:
Ensuite tout les windows ne sons pas forcement enregistrer sur le disque c:\
Bug 3:
Ensuite dans le registre le tien ne detecte pas les nouvelles clef mai uniquement les valeur voila pourquoi je passe par les apis
le risque de supprimer une valeur c est qu'elle disparaisse avant ou que d'autre ne ce rajoute droit deriere, Et oui sa mai déjà arriver :)
ensuite il y a plus de 30 clef a suiveillier dans le registre j'en suis a 8 lol
voila j'ai fait le tour je croit
merci pour l'info :)
bon coding et bon courage :)
14 mars 2005 à 04:55
Bein j'ai po trouve de code qui faisait la meme chose sur le site donc desole si ton code fait la meme chose
mais si tu as lu le mien tu verra que je n'ai absolument rien copie du tien
sinon pour menu demarrage de tous les utilisateurs c''est assez facile,
il y a les api "GetDirectory"
je crois que c'est GetAllUserDirectory ou truc du genre
sinon que veux tu dire quand tu dis que la mienne est moin performante ?
si tu parle de la vitesse de detection c'est pas dutout important le but est que le prog prenne le moins de ressource systeme possible
bonne prog @+
14 mars 2005 à 04:39
et donc plus légère mai moin performante :)
http://www.vbfrance.com/codes/API_PROCESSUS__ET_XP_SURVEILLIANCE/22004.aspx
Mai bon je t'en veux pas pour autemps :)
Et puis je suis toujours entrin de l'ameliorier donc je suis pour le no limite.
je cherche comment aceder aux menu demarage pour tout les utilisateur si qu'elqu'un a une idée je suis preneur :)
voila je ne te mai pas de note pour le moment j'attent de voire l'évolution de ton code :)