Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Manifeste et DLL

8 réponses
Avatar
driss hanib
Bonjour à tous

j'utilise une fichier "manifest" pour pouvoir donner un aspect XP à mes
controles dans un exe.
Cet exe utilise une DLL qui affiche des controles également, notamment des
boutons "command". Est ce que le manifeste de l'exe va aussi permettre le
style XP à ces boutons ou y a t'il un moyen de produire cet aspect ?
Aujourd'hui j'utilise des ocx "particuliers" trouvés sur le net pour
produire l'affichage type XP, mais je voudrai supprimer l'ocx pour de
problèmes d'installation.

Merci pour vos réponses

Driss

8 réponses

Avatar
Jacques93
Bonjour driss hanib,
Le 21/03/2010 12:31, driss hanib a écrit :
Bonjour à tous

j'utilise une fichier "manifest" pour pouvoir donner un aspect XP à mes
controles dans un exe.
Cet exe utilise une DLL qui affiche des controles également, notamment des
boutons "command". Est ce que le manifeste de l'exe va aussi permettre le
style XP à ces boutons ou y a t'il un moyen de produire cet aspect ?
Aujourd'hui j'utilise des ocx "particuliers" trouvés sur le net pour
produire l'affichage type XP, mais je voudrai supprimer l'ocx pour de
problèmes d'installation.




Concernant les contrôles de base de VB (TextBox, CheckBox, OptionButton,
CommandButton, etc...), le look est affecté autant dans l'exécutable
concerné par le manifeste, que dans les feuilles de la DLL (je n'ai
essayé qu'avec une DLL ActiveX).

Une précision toutefois : les contrôles communs (Treeview, Listview,
StausBar, TabStrip, etc ...) ne seront concernés dans l'exe comme dans
la DLL, que si c'est la version 5.0 (comctl32.dll) qui a été utilisée.
Cela ne fonctionne pas avec la version 6.0 (mscomctl.dll)

Pour l'exe, tu as les sources, donc pas de problème. Pour la DLL si tu
n'as pas les sources et que des contrôles communs 6.0 sont utilisés, je
ne connais pas de solutions.

Petit rappel pour ceux que ça intéresse, au lancement du programme, par
exemple :

Private Declare Function InitCommonControls Lib "comctl32.dll" () _
As Long

Private Sub Form_Initialize()
Dim lResult As Long

' Initialise les contrôles pour leur donner le style
' Windows XP / Vista / Seven
lResult = InitCommonControls
End Sub



Un exemple de fichier manifeste :

' ----------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Editeur"
processorArchitecture="X86"
version="4.4.0.0"
/>
<description>Mes logiciels </description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
language="*"
processorArchitecture="X86"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
/>
</dependentAssembly>
</dependency>
</assembly>
'-----------------------------------------------------------------------

Petit détail, l'exe doit avoir une date/heure postérieure à celle du
manifeste. Cela ne pose pas de problème quand on compile un programme
VB, par contre si on veut avoir le look de l'OS dans l'IDE VB, il faut
changer la date de VB6.exe (sauf si on a les sources de VB6 ;-) )

--

Cordialement,

Jacques.
Avatar
at
driss hanib a pensé très fort :
Bonjour à tous

j'utilise une fichier "manifest" pour pouvoir donner un aspect XP à mes
controles dans un exe.
Cet exe utilise une DLL qui affiche des controles également, notamment des
boutons "command". Est ce que le manifeste de l'exe va aussi permettre le
style XP à ces boutons ou y a t'il un moyen de produire cet aspect ?
Aujourd'hui j'utilise des ocx "particuliers" trouvés sur le net pour produire
l'affichage type XP, mais je voudrai supprimer l'ocx pour de problèmes
d'installation.

Merci pour vos réponses

Driss



Pour compléter la réponse de jacques, il y a un site qui explique en
détail toutes les opérations possibles

http://www.atlence.com/index.php?page=prg_winxp

A+
Avatar
Driss HANIB
Bonjour Jacques

Effectivement j'utilise des controles 5.0 dans l'exe et la DLL est de moi
même donc j'ai les sources.
Je mets à jour tout cela

Merci
Driss
"Jacques93" a écrit dans le message de news:
%
Bonjour driss hanib,
Le 21/03/2010 12:31, driss hanib a écrit :
Bonjour à tous

j'utilise une fichier "manifest" pour pouvoir donner un aspect XP à mes
controles dans un exe.
Cet exe utilise une DLL qui affiche des controles également, notamment
des
boutons "command". Est ce que le manifeste de l'exe va aussi permettre le
style XP à ces boutons ou y a t'il un moyen de produire cet aspect ?
Aujourd'hui j'utilise des ocx "particuliers" trouvés sur le net pour
produire l'affichage type XP, mais je voudrai supprimer l'ocx pour de
problèmes d'installation.




Concernant les contrôles de base de VB (TextBox, CheckBox, OptionButton,
CommandButton, etc...), le look est affecté autant dans l'exécutable
concerné par le manifeste, que dans les feuilles de la DLL (je n'ai essayé
qu'avec une DLL ActiveX).

Une précision toutefois : les contrôles communs (Treeview, Listview,
StausBar, TabStrip, etc ...) ne seront concernés dans l'exe comme dans la
DLL, que si c'est la version 5.0 (comctl32.dll) qui a été utilisée.
Cela ne fonctionne pas avec la version 6.0 (mscomctl.dll)

Pour l'exe, tu as les sources, donc pas de problème. Pour la DLL si tu
n'as pas les sources et que des contrôles communs 6.0 sont utilisés, je ne
connais pas de solutions.

Petit rappel pour ceux que ça intéresse, au lancement du programme, par
exemple :

Private Declare Function InitCommonControls Lib "comctl32.dll" () _
As Long

Private Sub Form_Initialize()
Dim lResult As Long

' Initialise les contrôles pour leur donner le style
' Windows XP / Vista / Seven
lResult = InitCommonControls
End Sub



Un exemple de fichier manifeste :

' ----------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Editeur"
processorArchitecture="X86"
version="4.4.0.0"
/>
<description>Mes logiciels </description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
language="*"
processorArchitecture="X86"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
/>
</dependentAssembly>
</dependency>
</assembly>
'-----------------------------------------------------------------------

Petit détail, l'exe doit avoir une date/heure postérieure à celle du
manifeste. Cela ne pose pas de problème quand on compile un programme VB,
par contre si on veut avoir le look de l'OS dans l'IDE VB, il faut changer
la date de VB6.exe (sauf si on a les sources de VB6 ;-) )

--

Cordialement,

Jacques.
Avatar
Driss HANIB
Salut at

Merci pour tes précisions.
Je regarde ton lien

Driss
"at" a écrit dans le message de news:
4ba642e9$0$15815$
driss hanib a pensé très fort :
Bonjour à tous

j'utilise une fichier "manifest" pour pouvoir donner un aspect XP à mes
controles dans un exe.
Cet exe utilise une DLL qui affiche des controles également, notamment
des boutons "command". Est ce que le manifeste de l'exe va aussi
permettre le style XP à ces boutons ou y a t'il un moyen de produire cet
aspect ?
Aujourd'hui j'utilise des ocx "particuliers" trouvés sur le net pour
produire l'affichage type XP, mais je voudrai supprimer l'ocx pour de
problèmes d'installation.

Merci pour vos réponses

Driss



Pour compléter la réponse de jacques, il y a un site qui explique en
détail toutes les opérations possibles

http://www.atlence.com/index.php?page=prg_winxp

A+


Avatar
Jacques93
Bonjour at,
Le 21/03/2010 17:03, at a écrit :
driss hanib a pensé très fort :



[...]

Pour compléter la réponse de jacques, il y a un site qui explique en
détail toutes les opérations possibles

http://www.atlence.com/index.php?page=prg_winxp




Merci de ton lien, qui indique dans la dernière partie comment intégrer
ce fichier manifeste à l'exécutable.

N'ayant pas Visual C sous la main, j'ai essayé avec Resource Hacker et
ça marche nickel :

Action -> Add a new Resource ...

-> Indiquer le chemin du manifeste

Resource Type = 24
Resource Name = 1
Resource Language = 1036

-> Sauvegarder

Il faut répéter cette manip après chaque compilation, le fichier
resource n'étant pas intégré au .vbp, mais ce n'est pas une grosse
contrainte.

<http://www.cijoint.fr/cj201003/cijhKYStkx.png>


--

Cordialement,

Jacques.
Avatar
Vincent Guichard
Le 21/03/2010 13:43, Jacques93 a écrit :
Petit détail, l'exe doit avoir une date/heure postérieure à celle du
manifeste. Cela ne pose pas de problème quand on compile un programme
VB, par contre si on veut avoir le look de l'OS dans l'IDE VB, il faut
changer la date de VB6.exe (sauf si on a les sources de VB6 ;-) )




C'est quand même plus simple de changer la date du fichier manifeste, n on?

Vincent Guichard
Avatar
Jacques93
Bonjour Vincent Guichard,
Le 22/03/2010 18:04, Vincent Guichard a écrit :
Le 21/03/2010 13:43, Jacques93 a écrit :
Petit détail, l'exe doit avoir une date/heure postérieure à celle du
manifeste. Cela ne pose pas de problème quand on compile un programme
VB, par contre si on veut avoir le look de l'OS dans l'IDE VB, il faut
changer la date de VB6.exe (sauf si on a les sources de VB6 ;-) )




C'est quand même plus simple de changer la date du fichier manifeste, non?




Changer la date de l'un ou de l'autre, de mémoire, a de l'importance
dans la mesure où il y a un gestion d'un cache des .exe. Et dans ce cas,
je ne sais plus à partir de quel version d'OS, changer la date du
.manifest.exe, par quelque moyen que ce soit, n'a pas d'effet.

J'avais trouvé cela bizarre aussi :-) ,je ne retouve pas les infos
d'époque, juste ceci :

<http://msdn.microsoft.com/en-us/library/acz3y3te(VS.80).aspx>

voir aussi ce fil :


<http://groups.google.fr/group/microsoft.public.fr.vb/browse_thread/thread/eb7e5321444a924c/fd5062ba780b5e4f?hl=fr&ie=UTF-8&q=manifest+kiriasse+jacques93+group:microsoft.public.fr.vb#fd5062ba780b5e4f>



--

Cordialement,

Jacques.
Avatar
Jacques93
Le 22/03/2010 22:37, Jacques93 a écrit :
[...]

voir aussi ce fil :


<http://groups.google.fr/group/microsoft.public.fr.vb/browse_thread/thread/eb7e5321444a924c/fd5062ba780b5e4f?hl=fr&ie=UTF-8&q=manifest+kiriasse+jacques93+group:microsoft.public.fr.vb#fd5062ba780b5e4f>




Plus précisément :


<http://blogs.developpeur.org/coq/archive/2006/10/28/Manifest-d_2700_application-sous-Vista-_3A00_-m_E900_fiez-vous-du-cache.aspx>

--

Cordialement,

Jacques.