TaskDialog sous Vista

Résolu
maitredede Messages postés 153 Date d'inscription vendredi 9 août 2002 Statut Membre Dernière intervention 18 septembre 2009 - 13 nov. 2007 à 10:35
maitredede Messages postés 153 Date d'inscription vendredi 9 août 2002 Statut Membre Dernière intervention 18 septembre 2009 - 13 nov. 2007 à 12:12
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é

11 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
13 nov. 2007 à 12:09
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]
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
13 nov. 2007 à 10:47
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]
0
maitredede Messages postés 153 Date d'inscription vendredi 9 août 2002 Statut Membre Dernière intervention 18 septembre 2009
13 nov. 2007 à 11:17
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...
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
13 nov. 2007 à 11:20
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]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maitredede Messages postés 153 Date d'inscription vendredi 9 août 2002 Statut Membre Dernière intervention 18 septembre 2009
13 nov. 2007 à 11:22
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 ?
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
13 nov. 2007 à 11:29
il faut que tu le builds dans l'exe...

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
maitredede Messages postés 153 Date d'inscription vendredi 9 août 2002 Statut Membre Dernière intervention 18 septembre 2009
13 nov. 2007 à 11:37
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...
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
13 nov. 2007 à 11:42
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]
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
13 nov. 2007 à 11:42
NomApplication.vshost.exe.manifest biensûr

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
maitredede Messages postés 153 Date d'inscription vendredi 9 août 2002 Statut Membre Dernière intervention 18 septembre 2009
13 nov. 2007 à 12:03
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...
0
maitredede Messages postés 153 Date d'inscription vendredi 9 août 2002 Statut Membre Dernière intervention 18 septembre 2009
13 nov. 2007 à 12:12
J'avais espéré que cette solution n'était pas la seule... J'avais le droit d'y croire

Merci
0
Rejoignez-nous