Wie löse ich zuverlässig das Popup "Farbschema-Leistung" in Windows 7 aus?

586
Will Nightingale

Diese Frage bezieht sich speziell auf Windows Embedded Standard 7, ich glaube jedoch, dass sie auch für nicht eingebettetes Windows 7 relevant ist. Ich verwende einen i7-2600 / i7-2600K mit Intel HD2000 / HD3000-Grafik.

In Windows 7 (möglicherweise auch anderen?) Kann ein Popup mit der Frage "Möchten Sie das Farbschema ändern, um die Leistung zu verbessern?" Angezeigt werden. Einige Details in dieser Frage .

Was mich interessiert, ist keine Methode, um das Popup zu unterdrücken, sondern eine Möglichkeit, das Popup bei Bedarf auszulösen. Hören Sie mir zu: Wir verwenden WES7 für ein eingebettetes Produkt, für das keine Popups akzeptabel sind (der Benutzer hat möglicherweise keine Maus, um sie zu schließen, und muss den Computer möglicherweise neu starten), und es wurde gelegentlich berichtet, dass dieses Popup auftritt . Der Plan ist, das zu beheben, was das Popup verursacht, und auch das Popup selbst zu unterdrücken, selbst wenn ein Problem vorliegt. Um das zugrunde liegende Problem zu beheben (einiger Fehler in unserer App - fehlende Ressource? Unangemessene Verwendung von GPU?), Ist es hilfreich zu wissen, welche Zustände das Popup verursachen können. Und um absolut sicher zu sein, dass das Popup unterdrückt wird, wäre es sinnvoll, es zuverlässig auslösen zu können.

Welcher Zustand löst also genau dieses Popup aus? Es wurde vorgeschlagen, dass es direkt mit dem GPU-Speicher zusammenhängt. In diesem Link gibt es ein Experiment, bei dem viele Anwendungen geöffnet werden und der Aufstieg des (dynamischen) gpu-Speichers beobachtet wird. Sie erwähnen jedoch auch, dass Windows in diesem Fall anstelle des Popup-Fensters automatisch das grundlegende Farbschema ohne Warnung ändert. Als ich das Experiment reproduzierte, fand ich dasselbe - Windows schaltete Aero ohne Warnung oder Popup aus.

Ich habe auch eine kleine WPF-App geschrieben, mit der dynamischer GPU-Speicher aufgefressen werden kann, der viele Fenster mit Bitmaps öffnet und schließt. Sicher, der dynamische GPU-Speicher steigt stetig an, bis Windows schließlich Aero ohne Warnung oder Popup ausschaltet. Dies geschah in meinem Fall, als ich die Höchstgrenze erreichte (~ 1650MB).

Ich konnte dedizierten GPU-Speicher auffressen, indem ich Bildschirme anschloß und auf eine sehr hohe Auflösung eingestellt habe. Der dedizierte Speicher würde wieder ansteigen, und Windows würde Aero automatisch ohne Warnung oder Popup deaktivieren, wenn es nahe am Limit war. (64MB in meinem Fall)

Ich weiß, dass das Pop - up kann auf dieser Kombination aus Hardware und WES7 Bild auftreten, aber ich bin nicht in der Lage, um sie geschieht. In meinen Experimenten scheint es nicht direkt mit einem Schwellenwert im GPU-Speicher (dediziert oder dynamisch) zu tun zu haben, es scheint ein anderer Faktor zu sein.

Wir hatten auch eine Instanz, in der ein Teil unserer App gleichzeitig mit dem Erscheinen des Popup-Fensters nicht mehr reagierte. Alle Informationen zu den Bedingungen, die das Popup-Fenster verursachen können, können Anhaltspunkte dafür sein, was den Hang verursacht hat. Möglicherweise.

Hat jemand eine zuverlässige Methode, um das Popup auf ihrem Computer auszulösen, anstatt Windows Aero automatisch zu deaktivieren? Weiß jemand genau, welche Bedingungen das Popup verursachen, im Unterschied zur automatischen Aero-Deaktivierung?

2
Eine allgemeinere Lösung für Ihr Problem könnte die Verwendung von SetWinEventHook sein, um zu erkennen, wenn neue Vordergrundfenster geöffnet sind, diese programmatisch auszublenden und den Fokus für Ihre Anwendung wiederherzustellen. Auf diese Weise behandeln Sie nicht nur diesen speziellen Dialog, sondern auch alle anderen fehlerhaften Fenster, die aus irgendeinem Grund die Kontrolle über Ihre App verlieren könnten. Timothy Fries vor 9 Jahren 0

0 Antworten auf die Frage