Question

Mon application ne screenshots automatisée de plusieurs formes créées dynamiquement. Cela fonctionne parfaitement sous Windows XP, mais ne fonctionne pas bien sous Vista Aero. La plupart des formes apparaissent dans les captures d'écran semi-transparent. Le problème réside dans l'animation de la fenêtre de Aero.

Comment puis-je vérifier / désactiver / activer cette animation à l'intérieur d'un programme Delphi (2007+)?

Ou comme alternative: Comment puis-je assurer que le formulaire est affiché correctement avant de faire la capture d'écran

Était-ce utile?

La solution 2

Le lien dans le commentaire de Shoban m'a conduit dans la bonne direction. Une vérification rapide a montré une enveloppe pour le DwmApi dans la VCL et de ce qu'il est allé tout droit. Voici le code que j'utilise avec succès maintenant:

uses DwmApi;
...
  SaveDwmCompositionEnabled := DwmCompositionEnabled;
  if SaveDwmCompositionEnabled then
    DwmEnableComposition(DWM_EC_DISABLECOMPOSITION);
...
  if SaveDwmCompositionEnabled then
    DwmEnableComposition(DWM_EC_ENABLECOMPOSITION);

Autres conseils

Aero serait La désactivation de dommage -. En général, il est pas une bonne idée de changer le choix du style de l'interface utilisateur de l'utilisateur

Vous pouvez être en mesure de tirer la forme d'une autre manière. Une chose qui vient à l'esprit utilise le PaintTo méthode pour peindre sur une toile. (En fait, si vous prenez des captures d'écran des formes comme un moyen d'obtenir ce que il semble que vous n'avez pas besoin probablement montrer les formes du tout - les créés avec VISIBLE false et les peindre à un bitmap uniquement. leur montrer si l'utilisateur a besoin d'interagir avec eux.)

Vous pouvez ajouter une ressource manifeste dans le fichier exe, de notifier Vista que vous voulez que l'application fonctionne sans Aero http://www.google.be/search?q=vista+ manifeste + ressource + delphi

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top