AJOUT ET SUPPRESSION DE FICHIER REG AU REGISTRE WINDOWS (AVEC MODULE LINEINPUT A

XelectroX Messages postés 209 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 6 novembre 2009 - 2 août 2006 à 01:26
XelectroX Messages postés 209 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 6 novembre 2009 - 10 août 2006 à 18:09
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/38888-ajout-et-suppression-de-fichier-reg-au-registre-windows-avec-module-lineinput-ameliore

XelectroX Messages postés 209 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 6 novembre 2009
10 août 2006 à 18:09
Draluorg, en fait j'ai créé cette source pour supprimer un FICHIER .REG contenant les clés et je me suis dit d'utiliser un shell pour la plus haute compatibilité en versions Windows.
XelectroX Messages postés 209 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 6 novembre 2009
10 août 2006 à 18:02
Le bug est corrigé dans la nouvelle importation.
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
3 août 2006 à 23:48
Rey & EB : dur dur de choisir.
Rey : "je prefere un If ... Then [....] End If qu'un Exit Sub"
certaine fois, avec GoTo ou Exit Sub, j'arrive à faire ce que je souhaite (je pense à ma source doublons, et les Tables Systems d'access) et quand j'utilise le 'If IsNot' pour cette recherche, il ne me le prend pas...
Je m'efforcerai pourtant de passer par cette façon là (mais le GoTo ou Exit Sub est mine de rien appréciable et facile à utiliser)

XelectroX : Ok, je sais ce que c'est de piocher un code (et je ne le modifie pas ou peu moi-même).
(ps : profite des comm, tu as 2 experts (et ils sont de bons conseils !)

Merci à tous

++ ;)
XelectroX Messages postés 209 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 6 novembre 2009
3 août 2006 à 18:23
Mortalino, mes modules Split et Replace ne sont pas vraiment les miens. Je les ais trouvés sur ce site car je n'ai que VB5.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
3 août 2006 à 16:47
pure 'convention' que de bannir l'utilisation de Goto...

une fois arrivé en ASM, tout est question de saut a telle ou telle adresse...
pourquoi donc s'en priver :p

(reste que je prefere un If ... Then [....] End If qu'un Exit Sub)
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
3 août 2006 à 03:23
Salut EB,

et bien tes explications ont le mérite d'être très clair. Là, c'est compris (et je ne dirais plus cette bétise ^^) lol

Concernant un de tes paragraphes, on m'a effectivement souvent indiqué d'éviter l'utilisation des "GoTo" et "Exit Sub", pourtant plus à l'aise avec ces termes que ces boucles 'inversées'.

** "Alors faitent vous plaisir en codant selon vos envies le meilleurs code c'est celui que vous comprenez"
> bah je sais ce que tu vaux, donc ce n'est pas tombé dans l'oreille d'un sourd. ;)

++ & merci
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
2 août 2006 à 16:31
Mortalino> c'est tres simple, VB est basé sur un moteur de srcipt c'est a dire que pour pourvoir lancer le programme/stopper/debugger/recommencer il faut pouvoir compilé a la volé et surtout il faut que le moteur (machine virtuel) puisse savoir ou il ce trouve a tout moment. C'est pour cela qu'avant et apres chaque appel de fonction VB stock des informations sur l'etat de la pile. Des que la fonction ce termine que ce soit une sub une function ou une API vb compare les informations sauvegarder avec les nouvelles informations. Cela permet par exemple en cas de mauvaise declaration d'API de ne pas planter l'IDE, vb affichera un message du genre "Convention d'appel de la DLL incorrect".

Par contre une fois compilé et selon les options de compilation ce test disparait et est remplacer par un "On Error goto" generalisé. C'est a dire que meme si vous n'avez pas explicitement ecris "On error goto" dans votre code vb va le rajouter dans toute les fonctions. donc vous obtenez un code d'initialisation et de terminaisons a chque Sub, Exit Sub et End Sub.

Bref VB à un mode de fonctionnement tres special mais il ne faut pas tombé dans le piege des fausses rumeurs. Par exemple je precaunise l'emploi de "Goto" et de "Exit Sub" dans le code critique car ils sont bcp plus rapide que des boucles impriqués. Pourtant certaines personnes disent le contraire mais l'examen des listing asm généré par le compilateur ne laisse aucun doute.

Alors faitent vous plaisir en codant selon vos envies le meilleurs code c'est celui que vous comprenez (et avec le temps vous finirez par recommencer tout ce que vous avez fait dans le passé mais ça ... c'est une autre galere lol)

Bonne prog ;)
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
2 août 2006 à 14:58
Salut EB,

Ben en fait j'employé souvent dans mes sources des Exit Sub et d'après mes "informations", le test de "la pile", comme tu l'emploies, utiliserait apparemment des ressources supplémentaires. Certe, dans cette source, il n'y a l'appel à la fonction Exit qu'une fois mais de ce que j'ai compris, s'il y en a plusieurs...

Bref, j'ai du mal comprendre une chose que tu pourras eclairer : qu'est ce que tu appelles Test de la Pile ?

Merci EB
++
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
2 août 2006 à 14:49
Comment ça "Exit sub" et "Exit function" font appel a une API tu a vue joué ça ou ?

Arrentons les fausses informations !

Exit sub/function/property peut etre employé n'importe ou sans contraite il crée un RET tout comme End Sub/function/property.
Si par API tu veux dire que VB va faire un test de la pile alors la je suis d'accord mais c'est valable aussi pour "End Sub" donc pas de panique c'est juste une question de lisibilité. Biensur il faut compilé en code natif (depuis VB5) ça va de soit !

@+
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
2 août 2006 à 12:48
Salut a tous,

Eh pour la base de registre je te conseillerais plutot d'utiliser les api prevu a cet effet....

Voici un exemple: http://www.vbfrance.com/codes/GESTION-BASE-REGISTRE-PRESQUE-COMPLETE_34202.aspx

++
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
2 août 2006 à 02:11
Salut,
*juste pour pinailler :

dans "If Find = vbNullString Then Exit Function" (ligne 58, module Replace)
pourquoi n'utilises-tu pas "If Find IsNot(ou <>) vbNullString Then"
+ "End If" avant le "End Function" ?
Exit Function fait appel à une API, tout comme Exit Sub

Sinon, le code est clair.
@++
XelectroX Messages postés 209 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 6 novembre 2009
2 août 2006 à 01:26
Désolé mais il y a un bug :

buff = ReplaceT(buff, "HKEY_USERS", "HKLU") ERREUR
-
buff = ReplaceT(buff, "HKEY_USERS", "HKU") CORRECTIF
Rejoignez-nous