2012-04-11 7 views
3

Ich versuche Aero für meine Anwendung zu ermöglichen (eine Firefox-Plugin „single process“ mit dem Browser ausgeführt wird), aber ich bin nicht zu tun. Das Betriebssystem ist Windows 7 64bit. DieseDwmEnableComposition ermöglicht Aero nicht

ist der Code:

BOOL bEnabled = FALSE; 
if(SUCCEEDED(DwmIsCompositionEnabled(&bEnabled)) && !bEnabled){   
    HRESULT hres = DwmEnableComposition(DWM_EC_ENABLECOMPOSITION); 
} 

DwmEnableComposition Zusammensetzung ermöglichen sollte, aber es funktioniert nicht, auch die Funktion zurückgibt:

S_OK 

Jede Hilfe würde geschätzt, danke!

Antwort

2

DwmEnableComposition() hat keine Wirkung, wenn sie weit deaktiviert System ist. Der einzige Zweck besteht darin, Windows mitzuteilen, dass Sie einen Vorgang starten oder beenden, der nicht mit DWM kompatibel ist.

Darüber hinaus liegt es an den Benutzer, was ihre OS aussehen, ist es nicht zu einem Programm, um es zu konfigurieren.

+0

Danke für Ihre Antwort, das Programm fragt den Benutzer, ob er Aero auf dem Rechner aktivieren möchte. Die MSDN sagt, es wird * aktivieren * oder * deaktivieren * Aero, ich kann Aero nur deaktivieren, aber nicht mit dieser Methode aktivieren; Also habe ich das getan, indem ich in den uxsms-Dienst geschaut habe, zuerst das Windows 7 Basic-Thema eingeschaltet und dann den Dienst gestartet. –

4

Sie können nicht DWM Zusammensetzung ermöglichen; Sie können nur anfordern, dass es deaktiviert ist. Wenn Sie fertig sind es, um ausgeschaltet zu sein, rufen Sie

DwmEnableComposition(DWM_EC_ENABLECOMPOSITION); 

Von MSDN:

DWM Zusammensetzung automatisch aktiviert wird, wenn alle Prozesse, die behinderte Zusammensetzung haben DwmEnableComposition genannt es zu aktivieren oder zu haben wurde beendet.

Sie erhalten nicht zu es ermöglichen, Ihnen nur mitteilen, dass Sie nicht mehr deaktiviert brauchen. (Der Grund Microsoft nicht, dass Sie Zusammensetzung nicht lassen ermöglichen, dass you can't be trusted to not try to do it.)

Sie sollten auch nach oben geben, während Sie hinter sind. Wieder von MSDN:

Hinweis Diese Funktion wird als der Windows 8 Consumer Preview veraltet. DWM kann nicht mehr programmatisch deaktiviert werden.