2010-09-07 66 views
2

HIAide s'il vous plaît - Message WM_SYSCOMMAND de Aero Shake/flip 3D

J'ai une application écrite en Delphi 2006. J'ai remarqué que lors de l'exécution sous Windows 7 l'application ne reçoit pas le message WM_SYSCOMMAND de Aero Shake. Toutefois, si j'exécute l'application en tant qu'administrateur, il reçoit WM_SYSCOMMAND lors de l'exécution de Aero Shake.

J'ai essayé d'appeler ChangeWindowMessageFilter pour WM_SYSCOMMAND et obtenir un résultat de True indiquant que l'appel a réussi mais je ne peux toujours pas obtenir le message WM_SYSCOMMAND frmo Aero Shake.

Est-ce que quelqu'un sait pourquoi et comment je peux résoudre ce problème?

Merci

+0

Vous ne recevez pas de WM_SYSCOMMAND ou vous en obtenez un, mais vous ne parvenez pas à tester une commande particulière, c'est-à-dire SC_MINIMIZE? –

+0

Je ne reçois pas le WM_SYSCOMMAND. Fondamentalement, j'essaie d'obtenir mon application Delphi 2006 SDI pour répondre correctement à secouer Aero, en secouant, par exemple, le bloc-notes. Tout fonctionne correctement lorsqu'il est exécuté en tant qu'administrateur, c'est-à-dire que le flip 3D envoie WM_SYSCOMMAND avec SC_MINIMIZE/SC_RESTORE. Cependant, lorsqu'il n'est pas exécuté en tant qu'administrateur, le flip 3D n'envoie pas WM_SYSCOMMAND, ou il est filtré par les fenêtres. Je suppose qu'il n'est simplement pas envoyé par 3D flip, parce que, en utilisant une application de test, j'envoie WM_SYSCOMMAND à mon application principale, et il a été reçu. Que puis-je faire à ce sujet? Puis-je démarrer par programme mon application en tant qu'administrateur? –

Répondre

0

J'ai résolu ceci, afin d'obtenir le message WM_SYSCOMMAND dont vous avez besoin pour élever l'application au moins plus haut disponible en utilisant un manifeste d'application. Après cela, tout fonctionne parfaitement sauf que vous obtenez maintenant la boîte de dialogue de confirmation d'élévation au démarrage de l'application.

+0

http://msdn.microsoft.com/fr-fr/library/bb756929.aspx –