A lire...les bases des registre ? - VB/VBA/VBS - Programmation
Marsh Posté le 17-02-2003 à 21:44:41
je suis sûr que la réponse à ta question se trouve quelque part ici: http://forum.hardware.fr/forum2.ph [...] subcat=385
Marsh Posté le 17-02-2003 à 21:48:08
Merci, beaucoup, sinon de ton coté tu n'y a jamais touché ou tu n'as pas de connaissance, même un tout petit peu !
Marsh Posté le 17-02-2003 à 21:51:22
cvb a écrit : Merci, beaucoup, sinon de ton coté tu n'y a jamais touché ou tu n'as pas de connaissance, même un tout petit peu ! |
disons qu'en recherchant une seule instruction de l'API (puisqu'il faut obligatoirement passer par l'API), je devrais être à même de retrouver les autres.
Sinon en fait non, je n'ai pas encore exploité la chose, et je comptais le faire en créant une classe par exemple, histoire de me simplifier un peu les choses
Bouge pas je cherche ça.
Marsh Posté le 17-02-2003 à 21:53:34
|
Voilà, en gros c'est une synthèse de ce que j'ai glâné à propos de la registry. Pour l'aide, je te suggère de consulter MSDN ou Google pour voir ce que les VB'ers en font
Marsh Posté le 17-02-2003 à 21:56:38
EXcellent, merci, je vais étudier le code de plus prés, merci beaucoup !
Marsh Posté le 18-02-2003 à 02:20:49
Citation : Savez par quel moyen les programmes d?installation référence t-il les fichiers tel que les librairies dynamiques ou les contrôles active X, dans la base de registre ? les clés qui sont-elles crées dynamiquement lors des programmes d?installation ? |
les dll qu'on utilise de manière classique, en tant que dll quoi, ne sont pas référencées dans la BDR. Un programme l'appelle par son nom (ex : "kernel32.dll" ) et Windows la recherche dans le répertoire courant, dans le rep Windows ou dans system32.
A moins que le prog s'y lie a l'execution en spécifiant un chemin.
Avec WinXP, il est possible de faire cohabiter des dll portant le même nom. Dans ce cas, la dll chargée par défaut doit etre dans windows ou system32. Pour en utiliser une autre, un exe doit posséder un manifest qui indique à WinXP d'aller chercher dans windows\WinSxS.
C'est comme cela qu'un prog fait pour bénéficier des styles visuels d'XP. Le manifest est là pour dire d'utiliser comctl32.dll version 6 qui se trouve dans ce répertoire et qui est responsable des nvx styles au lieu de la version classique (5.8) qui se trouve dans system32.
Maintenant les ActiveX ...
Les ActiveX, comme tous les autres composants COM/OLE, doivent s'enregistrer dans la BDR pour etre utilisables.
Chaque composant se voit associé par son créteur un numéro d'identification unique. C'est ce numéro qu'on utilise et non plus un nom en clair.
Un composant s'enregistre dans la bdr à l'aide de regsrv32.exe.
Le numéro en question, appelé GUID (Globally Unique IDentifier) ou UUID (Universally Unique IDentifier) est généré à l'aide de UUIDGEN.exe.
regsrv32.exe va en fait associer ce numéro au composant (=> l'enregistrer).
Cette association se fait dans HKEY_CLASSES_ROOT.
Apres la liste des extensions, tu as la liste des composants enregistrés.
Le GUID se trouve à la clé CLSID (CLaSs IDentifier).
exemple :
le CLSID de Excel.Application est {00024500-0000-0000-C000-000000000046}.
Donc quand tu veux te lier à Excel.Application, OLE récupère son CLSID à HKCR\Excel.Application.
Puis il va à HKCR\CLSID\{00024500-0000-0000-C000-000000000046}
et la clé LocalServer32 lui indique le fichier dll/exe/ocx... à lancer.
Pour un ocx, c'est la clé InprocServer32 qu'il faut regarder.
Y'a plusieurs autres clés.
Marsh Posté le 18-02-2003 à 09:39:15
cvb a écrit : |
T'as pas honte de quoter tout son post juste pour ça
Marsh Posté le 18-02-2003 à 12:18:09
antp a écrit : |
escuse mon ignorance mais ca veut dire quoi ? sinon, je n'ai pas honte plus que sa d'avoir poster un post pareil.
Tu m'escusera, mais sa change des titres de m... et comme sujet, sans aucune indication...
Code :
|
surtout toi qui est modo. t'as du en voir des chose belle, tien. Ah la, là !
Allez
@+ ANTP
Marsh Posté le 18-02-2003 à 12:20:10
cvb a écrit : |
quoter = citer (en anglais, 'to quote'
drashe fait un super long post, et toi tu réinclus l'intégralité de son post pour répondre, ça prend de la place pour rien (dans la base de données du forum, et surtout visuellement pour les forumeurs)
Marsh Posté le 18-02-2003 à 12:32:08
antp a écrit : |
A si c'est que ca, je l'enlève ! fallait le dire, je vais l'alléger, pas souci !
Marsh Posté le 17-02-2003 à 21:39:37
Salut,
Je vous écris à propos de la base de registre. Non, ne fuyez pas, car vous connaissait peut-être la réponse à ma questions. Tout d?abord j?expose, cette interrogation, car depuis plusieurs mois que je cherche, je ne trouve rien. Je ne pense pas avoir de la m?. au yeux, donc?
Je ne vais pas vous détailler toutes la base de registre de Windows, car depuis 1995, il y a trop de chose à dire même si le principe reste. Le principe, parlons-en, cette base de registre crée après la version de win3.1, permet d?enregistrer toutes les données utilisateurs, application, ect et cache parfois même des mouchard dont ne nous connaissons pas l?existence. Elle remplaça les fichiers *.ini de Windows 3.11. Enfin bref, mon problème n?est pas là.
Je fais de la programmation depuis cinq ans, je touche au noyau des différents Windows, en touchant aux propres fonctions de Windows alias les API Windows dont on soupçonne même pas la puissance . Puissance qui peut s?avérer destructrice, si des individus mal intentionnés en faisaient état. Bref, c?est pas le sujet?
Depuis six mois maintenant, je cherche à faire mes propres programmes d?installation en VB. Sa paraît idiot mais le but c?est de faire tourner un programme correctement, ou plutôt de faire tourner un fichier *.exe. A faire tourner, ce n?est pas si simple que ça ! Très vite, car vous allez être souller, un *.exe dépend la plupart du temps de fichier tel que des librairie dynamique appeler communément des *.dll et parfois de contrôle active X (ocx). Il y a deux manière de les installer ? je parle des exe ?
1- On mets tous les fichiers dont le fichier exécutif dépend (dll et ocx) à la racine de l?exe. C?est une manière cavalière et impropre, mais le programme fonctionnera quand même. Il fonctionnera si le programmeur à prévu ne pas faire intervenir le base de registre ou de la faire intervenir en dynamique, bref...
2- On mets l?exe dans un répertoire, et tous les fichiers dont il dépend (dll et ocx) dans des répertoire spécifique, en l?occurrence le répertoire système d?exploitation que l?on à faire. Problème, et il est de taille, c?est que toutes les *.dll et *.ocx sont répertorié dans la base de registre, ce qui n?est pas le cas lors de la première méthode. C?est pour cette raison que la nommé méthode cavalière.
Ma questions est finalement très simple et à la fois compliqué. Savez par quel moyen les programmes d?installation référence t-il les fichiers tel que les librairies dynamiques ou les contrôles active X, dans la base de registre ? les clés qui sont-elles crées dynamiquement lors des programmes d?installation ?
Voilà, j?ai fini de poser ma questions, je me suis pas trop étendu, sinon, j?en n?aurais eue pour un dizaine de page et sa aurait été trop long à lire !
Merci des réponses que vous allez pouvoir m?apportez. Svp, ne me dîtes pas Google est ton ami, je l?ai déjà testé depuis six mois maintenant, à part des banalités, il n?y a rien d?autre que je sache déjà.
Merci
@+
CVB