TaskDialog sous Vista [Résolu]

Signaler
Messages postés
153
Date d'inscription
vendredi 9 août 2002
Statut
Membre
Dernière intervention
18 septembre 2009
-
Messages postés
153
Date d'inscription
vendredi 9 août 2002
Statut
Membre
Dernière intervention
18 septembre 2009
-
Bonjour,

Je souhaite utiliser l'api TaskDialog de la lib comctl32.dll. Pour ça, j'ai trouvé des tutos expliquant qu'il fallait ajouter un manifest à l'application pour pouvoir utiliser cette api (rapport à la version de comctl32).

Sachant que ces tutos ne sont pas parfaits, est-ce que quelqu'un aurai une solution pratique, pour pouvoir non seulement utiliser cette api sans avoir à faire un manifest pour chaque appli que développe, mais en plus pouvoir débugger le code qui tourne autour de cette api dans Visual Studio... (l'application lancée depuis VS ne prend pas en compte le manifest)

Mici d'avance

Dédé
A voir également:

11 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
sinon... la solution :

- Tu compiles
- Tu exécutes via l'explorateur ton programme...
- Tu vas dans Menu Debug / Processes et tu t'attaches à ton programme...

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
hum... dans le flux RSS de CodeProject ce matin : http://www.codeproject.com/useritems/Vista_TaskDialog_Wrapper.asp

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
153
Date d'inscription
vendredi 9 août 2002
Statut
Membre
Dernière intervention
18 septembre 2009

Effectivement, c'est un début de solution. Mais je ne pense pas que ça nous affranchisse du manifest si on veut utiliser nativement la fonction.
J'ai aussi ça :
http://www.danielmoth.com/Blog/2006/06/vista-taskdialog.html
http://www.danielmoth.com/Blog/2006/06/vista-taskdialogindirect.html
http://www.codeproject.com/useritems/vdialog.asp

Il y a aussi un exemple de wrapper complet sur MSDN :

http://msdn2.microsoft.com/en-us/library/ms756482.aspx

Mais dans tout les cas, il faut quand même avoir un manifest pour utiliser la version 6.0 de la lib comctl32. Sinon, par défaut, il prend la version 5.80. (Pour info, je travaille sous VS2008 avec des projets en .NET 2.0)

Donc, j'arrive à lancer mon appli seule avec le manifest, mais je n'arrive pas à debugger mon appli comme je le ferai avec une autre parce que le manifest n'est pas pris en compte dans VS...
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
ouaip... mais de toute façon, tu n'auras pas d'autres solutions que d'utiliser le manifest...
(ca me rappelle l'époque de VB et de Windows XP)

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
153
Date d'inscription
vendredi 9 août 2002
Statut
Membre
Dernière intervention
18 septembre 2009

Yep, j'approuve le fait que je sois obligé d'utiliser le manifest, mais comment puis-je faire pour que VS2008 le prenne en compte quand je veux debugger mon appli ?
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
il faut que tu le builds dans l'exe...

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
153
Date d'inscription
vendredi 9 août 2002
Statut
Membre
Dernière intervention
18 septembre 2009

Donc, si je rammène ton expliquation à un niveau débutant, je crée mon manifest, et dans la fenêtre de propriété du projet, onglet Application, zone Resouces, je choisis "Icon and manifest" et je sélectionne le manifest de mon projet...

C'est ce que j'ai fait, mais le manifest n'est pas pris en compte, alors que si je le lance à la main, il est pris en compte...
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
ou alors tu crées un second manifest pour les tests que tu nommeras comme ceci :

NomApplication.vshost.exe

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
NomApplication.vshost.exe.manifest biensûr

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
153
Date d'inscription
vendredi 9 août 2002
Statut
Membre
Dernière intervention
18 septembre 2009

J'ai créé le manifest NomApplication.vshost.exe.manifest.
Je l'ai mis en "Copy Always" à la compilation.
Je recompile mon projet, il apparait bien dans le bin/debug.

Je kill le process (pour le relancer) mais le manifest est supprimé.

Sinon, j'ai trouvé ça : http://www.professionalvisualstudio.com/blog/2007/10/05/enabling-your-application-for-uac-on-vista/
Ca concerne les manifest pour l'UAC, mais ça ne m'aide en rien dans mon problème...

Le sort s'acharne contre moi... snif...
Messages postés
153
Date d'inscription
vendredi 9 août 2002
Statut
Membre
Dernière intervention
18 septembre 2009

J'avais espéré que cette solution n'était pas la seule... J'avais le droit d'y croire

Merci