Isolation d'application par manifest (winxp)

Soyez le premier à donner votre avis sur cette source.

Vue 12 610 fois - Téléchargée 1 527 fois

Description

Cette application écrit des fichiers '.manifest' qui remplacent la base de registre.

Source / Exemple :


Voilà le principe:

Une appli dépend (presque) toujours de fichiers externes tels que des DLL ou des OCX (généralement appelés Dependency Files ou Dependencies en anglais). Généralement, ces dépendances doivent être placées dans le dossier System de la machine ou inscrites dans la base de registre. 

Grâce à un fichier Manifest (XML, donc parfaitement lisible avec IE) on peut assez facilement se débarrasser de la base de registre: il suffit de placer le fichier de dépendance (par ex. un OCX) dans le dossier de l'appli qui en a besoin et de placer deux fichier Manifest dans ce même dossier.
Le premier Manifest est spécifique à l'appli et porte son nom avec l'extention .manifest; ce fichier contient toutes les références de l'appli à des fichiers dépendants.
Le deuxième fichier contient toutes les clés de registre du composant OCX, soit 'clsid', 'tlbid', 'progid' et éventuellement 'description'.

----------------------------
Les avantages de cette méthode:

Si la base de registre est vérouillée par l'administrateur, il devient presque impossible d'installer quoi que ce soit sur une machine sans avoir des privilèges particuliers. Cette méthode permet de contourner cette restriction dans pas mal de cas.

On peut sans aucun probléme utiliser différentes versions du même composant sur la même machine.

----------------------------
Les inconvénients:

Il faut être capable de créer des fichiers Manifest.

Attention:

Un fichier Manifest ne peut être créé que sur une machine où l'application à isoler est installé normalement (où tous les composants sont inscrits dans la base de registre).

----------------------------
L'interface:

Trois Tabs ou onglets:

Le premier (Application) permet de créer tous les fichiers Manifest nécessaire à une appication entière
1. Ouvrir l'appli à isoler
2. Extraire les infos concernant les dépendances -> bouton 'Get Dependencies'
3. Ecrire le paquet de fichiers Manifets -> bouton 'Write Isolation Package'
	Le bouton 'Add from file' permet d'ajouter une dépendance à la liste.
	Le bouton 'Add names': idem
	Le bouton 'Scan Registry' permet de récupérer toutes les infos registre des composants, sans écrire de fichier Manifest.
	L' option 'Write Application Manifest only' permet, si elle est cochée, de n'écrire que le premier fichier Manifest: celui spécifique à l'appli.

Le deuxième Tab (Single) permet de rédiger les fichiers Manifest spécifiques à des dépendances.
Utilisation similaire au premier Tab.

Le troisième Tab (Common Dependencies) permet de créer une liste de dépendances standard pour lesquelles aucun fichier Manifest ne doit être écrit (p. ex. vba6.dll, vb6fr.dll, etc...)

Conclusion :


merci à ebartsoft pour la classe CommonDialog

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
Messages postés
200
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
18 novembre 2005

Excellent source, magnifique devrais-je dire !

J'ai cependant quelques difficultés avec le composant DbGrid32.ocx qui semble etre un peu plus trapu que d'autres ocx. Auriez vous quelques pistes que je pourais explorer ?
Messages postés
1
Date d'inscription
lundi 30 octobre 2006
Statut
Membre
Dernière intervention
31 octobre 2006

Nous avons teste votre outil qui est excellent neanmoins petite remarque, vous avez code en dur dans les sources le numero de version pour chaque dll (a chaque fois la version 1.0.0.1 est specifiee), est ce que cela ne peut pas poser de problemes lors des evolutions futures des versions des dll ?

SPOT Team K.R.D
Messages postés
4
Date d'inscription
mercredi 21 décembre 2005
Statut
Membre
Dernière intervention
25 avril 2007

Excellente source!!! cela me permet de conserver le travail sur mes sources sans les brider face à des restrictions. Bon boulot et merci!
Messages postés
4
Date d'inscription
samedi 18 février 2006
Statut
Membre
Dernière intervention
11 avril 2006

je suis désolé mais je suis débutant sur VB6..
Je cherche pas à isoler VB6.. dnc je vais pas touché a ces DLL..!
Windasm me signale tous les dll il me semble, et les programme de PHILHEINZ permet d'excule les DLL qui font partis du système

Juste domage de ne pas pouvoir le compliler pour l'utiliser, puisqu'il y a cette erreur que je ne sais pas règler!!
Afficher les 15 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.