RUN-CONTROL VOUS ALERTE DES QU'UN PROGRAMME S'ENREGISTRE POUR SE LANCER AU DEMAR

FeelCode Messages postés 278 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 27 avril 2006 - 14 mars 2005 à 04:39
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 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.

https://codes-sources.commentcamarche.net/source/30084-run-control-vous-alerte-des-qu-un-programme-s-enregistre-pour-se-lancer-au-demarrage-de-windows-xp

draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 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és 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
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és 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
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és 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 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...

Tu peux le voir ici: http://systemzeb.free.fr/ZebRegNotify.zip

++
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
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és 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 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és 28 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 19 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és 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 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és 278 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 27 avril 2006 1
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és 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 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és 278 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 27 avril 2006 1
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és 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 mars 2005 à 09:07
Menu démarrer pour tous:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
valueName = "Common Start Menu"

Utiliser ExpandEnvironmentStrings() pour obtenir le path en clair.
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 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és 278 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 27 avril 2006 1
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és 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 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és 278 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 27 avril 2006 1
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 :)

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 :)
Rejoignez-nous