Re-bonjour,
J'ai en fait un nouveau problème.
Comme c'est mon programme qui crée le fichier MonAppli.exe.manifest, à la
fin de la procédure de création, j'ajoute des lignes de code utilisant la
fonction SetFileTime de l'API Windows. Ce code modifie la date de création,
la date de dernière modification et la date du dernier accès. Je donne une
date antérieure à la date de la compilation de l'EXE, par exemple le 1er
janvier 2007 à 0 H.
Quand je lance l'appli depuis Visual Basic, les choses se passent comme je
m'y attends.
Mais, quand j'utilise l'EXE, la date de création devient la suivante :
lundi 1 janvier 1601, 01:14:18
En l'occurrence, cela n'a pas vraiment d'importance puisque la date qui est
prise en compte par MonAppli est la date de la dernière modification qui est
bien devenue le 1er janvier 2007 à 0 H.
Et, de toute façon, l'an 1 du XVIIe siècle est sans conteste antérieure à la
date de compilation de l'EXE.
Mais j'aimerais comprendre d'où sort cette date étrange du lundi 1 janvier
1601, 01:14:18.
Re-bonjour,
J'ai en fait un nouveau problème.
Comme c'est mon programme qui crée le fichier MonAppli.exe.manifest, à la
fin de la procédure de création, j'ajoute des lignes de code utilisant la
fonction SetFileTime de l'API Windows. Ce code modifie la date de création,
la date de dernière modification et la date du dernier accès. Je donne une
date antérieure à la date de la compilation de l'EXE, par exemple le 1er
janvier 2007 à 0 H.
Quand je lance l'appli depuis Visual Basic, les choses se passent comme je
m'y attends.
Mais, quand j'utilise l'EXE, la date de création devient la suivante :
lundi 1 janvier 1601, 01:14:18
En l'occurrence, cela n'a pas vraiment d'importance puisque la date qui est
prise en compte par MonAppli est la date de la dernière modification qui est
bien devenue le 1er janvier 2007 à 0 H.
Et, de toute façon, l'an 1 du XVIIe siècle est sans conteste antérieure à la
date de compilation de l'EXE.
Mais j'aimerais comprendre d'où sort cette date étrange du lundi 1 janvier
1601, 01:14:18.
Re-bonjour,
J'ai en fait un nouveau problème.
Comme c'est mon programme qui crée le fichier MonAppli.exe.manifest, à la
fin de la procédure de création, j'ajoute des lignes de code utilisant la
fonction SetFileTime de l'API Windows. Ce code modifie la date de création,
la date de dernière modification et la date du dernier accès. Je donne une
date antérieure à la date de la compilation de l'EXE, par exemple le 1er
janvier 2007 à 0 H.
Quand je lance l'appli depuis Visual Basic, les choses se passent comme je
m'y attends.
Mais, quand j'utilise l'EXE, la date de création devient la suivante :
lundi 1 janvier 1601, 01:14:18
En l'occurrence, cela n'a pas vraiment d'importance puisque la date qui est
prise en compte par MonAppli est la date de la dernière modification qui est
bien devenue le 1er janvier 2007 à 0 H.
Et, de toute façon, l'an 1 du XVIIe siècle est sans conteste antérieure à la
date de compilation de l'EXE.
Mais j'aimerais comprendre d'où sort cette date étrange du lundi 1 janvier
1601, 01:14:18.
Merci pour cette nouvelle réponse.
Si je peux me permettre, je vous demanderais bien de jeter un oeil sur le
code que j'utilise (je l'ai récupéré pour l'essentiel sur Internet et je n'y
ai pas trouvé d'erreur -- mais je ne suis pas un professionnel de la
programmation).
Vous pouvez le récupérer en cliquant sur :
http://www.kiriasse.fr/doc_tmp/setfiletime.txt
ou bien sur
http://www.kiriasse.fr/doc_tmp/setfiletime.zip
Ce qui m'étonne, c'est que ma procédure marche bien quand on l'utilise
depuis VB alors qu'il produit ce que je vous ai expliqué quand on utilise
l'EXE après compilation.
Merci pour cette nouvelle réponse.
Si je peux me permettre, je vous demanderais bien de jeter un oeil sur le
code que j'utilise (je l'ai récupéré pour l'essentiel sur Internet et je n'y
ai pas trouvé d'erreur -- mais je ne suis pas un professionnel de la
programmation).
Vous pouvez le récupérer en cliquant sur :
http://www.kiriasse.fr/doc_tmp/setfiletime.txt
ou bien sur
http://www.kiriasse.fr/doc_tmp/setfiletime.zip
Ce qui m'étonne, c'est que ma procédure marche bien quand on l'utilise
depuis VB alors qu'il produit ce que je vous ai expliqué quand on utilise
l'EXE après compilation.
Merci pour cette nouvelle réponse.
Si je peux me permettre, je vous demanderais bien de jeter un oeil sur le
code que j'utilise (je l'ai récupéré pour l'essentiel sur Internet et je n'y
ai pas trouvé d'erreur -- mais je ne suis pas un professionnel de la
programmation).
Vous pouvez le récupérer en cliquant sur :
http://www.kiriasse.fr/doc_tmp/setfiletime.txt
ou bien sur
http://www.kiriasse.fr/doc_tmp/setfiletime.zip
Ce qui m'étonne, c'est que ma procédure marche bien quand on l'utilise
depuis VB alors qu'il produit ce que je vous ai expliqué quand on utilise
l'EXE après compilation.
Merci. Cette fois, effectivement, la procédure fonctionne et mon EXE modifie
bien correctement les 3 dates du fichier manifest.
MAIS je suis déçu car :
- L'utilisateur de mon logiciel m'avait dit qu'en donnant à l'EXE (tel qu'il
était initialement), à l'aide de l'utilitaire que vous m'aviez indiqué, des
dates postérieures à celle de la création du fichier manifest, il obtenait
bien le look Vista.
- Sans modifier les dates de l'EXE avec l'utilitaire, avec le nouvel EXE que
je lui ai envoyé qui change les dates du fichier manifest, il n'obtient pas
le look Vista.
Pourtant, dans les deux cas, les dates du fichier manifest sont antérieures
à celles de l'EXE. Il semblerait donc que, pour obtenir le look Vista, on
doive changer la date de l'EXE et non celle du manifest.
Peut-être me faudra-t-il créer un sous-programme EXE qui modifiera les dates
de MonAppli.exe.
Diable ! Tout cela est bien tracassier...
Je me demande si joindre le fichier manifest au programme d'installation ne
serait pas la meilleure solution.
À moins de mettre ce fichier dans le fichier RES (de ressources). Mais
peut-on récupérer un fichier inclus dans le fichier de ressources sans
recréer ce fichier (ce qui ferait renaître le même problème) ?
Merci. Cette fois, effectivement, la procédure fonctionne et mon EXE modifie
bien correctement les 3 dates du fichier manifest.
MAIS je suis déçu car :
- L'utilisateur de mon logiciel m'avait dit qu'en donnant à l'EXE (tel qu'il
était initialement), à l'aide de l'utilitaire que vous m'aviez indiqué, des
dates postérieures à celle de la création du fichier manifest, il obtenait
bien le look Vista.
- Sans modifier les dates de l'EXE avec l'utilitaire, avec le nouvel EXE que
je lui ai envoyé qui change les dates du fichier manifest, il n'obtient pas
le look Vista.
Pourtant, dans les deux cas, les dates du fichier manifest sont antérieures
à celles de l'EXE. Il semblerait donc que, pour obtenir le look Vista, on
doive changer la date de l'EXE et non celle du manifest.
Peut-être me faudra-t-il créer un sous-programme EXE qui modifiera les dates
de MonAppli.exe.
Diable ! Tout cela est bien tracassier...
Je me demande si joindre le fichier manifest au programme d'installation ne
serait pas la meilleure solution.
À moins de mettre ce fichier dans le fichier RES (de ressources). Mais
peut-on récupérer un fichier inclus dans le fichier de ressources sans
recréer ce fichier (ce qui ferait renaître le même problème) ?
Merci. Cette fois, effectivement, la procédure fonctionne et mon EXE modifie
bien correctement les 3 dates du fichier manifest.
MAIS je suis déçu car :
- L'utilisateur de mon logiciel m'avait dit qu'en donnant à l'EXE (tel qu'il
était initialement), à l'aide de l'utilitaire que vous m'aviez indiqué, des
dates postérieures à celle de la création du fichier manifest, il obtenait
bien le look Vista.
- Sans modifier les dates de l'EXE avec l'utilitaire, avec le nouvel EXE que
je lui ai envoyé qui change les dates du fichier manifest, il n'obtient pas
le look Vista.
Pourtant, dans les deux cas, les dates du fichier manifest sont antérieures
à celles de l'EXE. Il semblerait donc que, pour obtenir le look Vista, on
doive changer la date de l'EXE et non celle du manifest.
Peut-être me faudra-t-il créer un sous-programme EXE qui modifiera les dates
de MonAppli.exe.
Diable ! Tout cela est bien tracassier...
Je me demande si joindre le fichier manifest au programme d'installation ne
serait pas la meilleure solution.
À moins de mettre ce fichier dans le fichier RES (de ressources). Mais
peut-on récupérer un fichier inclus dans le fichier de ressources sans
recréer ce fichier (ce qui ferait renaître le même problème) ?