Freigeben über


Szenarien des Programmkompatibilitäts-Assistenten für Windows 8

Plattformen

Clients – Windows XP | Windows Vista | Windows 7 | Windows 8

BESCHREIBUNG

Der Programmkompatibilitäts-Assistent (Program Compatibility Assistant, PCA) ist ein Feature in Windows 8, mit dem Endbenutzer Desktop-Apps ausführen können, die für frühere Windows-Versionen entwickelt wurden. Windows 8 verfügt über eine hervorragende integrierte App-Kompatibilität, die es Apps ermöglicht, die für Windows 7 oder frühere Windows-Versionen entwickelt wurden, automatisch auf Windows 8 zu funktionieren. Es gibt jedoch eine kleine Anzahl von Apps, die Probleme beim Ausführen ohne Eingriff haben können.

Wenn ein Benutzer eine App ausführt, verfolgt PCA die App nach und identifiziert alle Symptome bestimmter bekannter Kompatibilitätsprobleme in Windows 8. Wenn Probleme erkannt werden, bietet es dem Benutzer die Möglichkeit, eine empfohlene Korrektur anzuwenden, mit der die App auf Windows 8 besser ausgeführt werden kann.

Szenarien

PCA verfolgt Apps auf eine Reihe bekannter Kompatibilitätsprobleme in Windows 8 nach. PCA verfolgt die Probleme, identifiziert die Korrekturen und stellt dem Benutzer ein Dialogfeld mit Anweisungen zum Anwenden einer empfohlenen Korrektur bereit. Der Benutzer kann entscheiden, die empfohlenen Korrekturen anzuwenden, oder nichts tun und die Empfehlung abbrechen. Wenn der Benutzer abbricht, verfolgt PCA diese App nicht mehr.

PCA wendet in der Regel einen von drei Windows-Kompatibilitätsmodi an: Windows XP SP3, Windows Vista SP2 oder Windows 7, je nachdem, wann das Programm (oder dessen Einrichtung) erstellt wurde. PCA verwendet die Attribute LINK_DATE- und SUBSYSTEMVERSION des Programms und die Abschnitte TRUSTINFO und COMPATIBILITY des ausführbaren Dateimanifests, um zu bestimmen, welcher der Modi relevant ist und Windows XP SP3 (einschließlich Administratorrechten), Windows Vista SP2 bzw. Windows 7 anwendet. Ein Glossar am Ende des Dokuments listet jeden der von PCA angewendeten Kompatibilitätsmodi und seine Beschreibung auf.

Für alle unten aufgeführten Szenarien verfolgt PCA Apps ein zweites Mal nach, nachdem ein Fix angewendet wurde. Wenn die App auch nach dem Anwenden eines Kompatibilitätsfixes weiterhin auf die gleiche Weise fehlschlägt, rückgängig machen PCA den Fix. PCA beendet dann dauerhaft die Nachverfolgung der spezifischen App, bei der ein Fehler aufgetreten ist.

Während PCA viele potenzielle Probleme nachverfolgt, führen nicht alle Probleme tatsächlich zu App-Fehlern. PCA empfiehlt Korrekturen nur in Situationen, in denen eine hohe Wahrscheinlichkeit besteht, dass der App-Fehler auf Windows-Kompatibilitätsgründe zurückzuführen ist. In den folgenden Abschnitten werden die einzelnen PCA-Szenarien erläutert, die in Windows 8 entwickelt wurden. In jedem Abschnitt werden das Problemszenario und die Empfehlungen von PCA beschrieben, damit die App weiterhin ordnungsgemäß auf Windows 8 arbeiten kann.

Weitere Informationen zu Kompatibilitätsänderungen in Windows 8 finden Sie in den anderen Themen im Windows 8 Kompatibilitäts-Cookbook.

Die Szenarien, für die PCA nachzeichnet und Für die Korrekturen empfiehlt, sind:

  • App kann nicht installiert oder deinstalliert werden
  • Die App kann nicht mit einer Meldung zur Überprüfung der Windows-Version ausgeführt werden.
  • App kann aufgrund von Administratorrechten nicht gestartet werden
  • App stürzt aufgrund spezifischer Speicherprobleme ab
  • Die App schlägt aufgrund nicht übereinstimmender Systemdateien fehl
  • Fehler bei der App aufgrund nicht behandelter Fehler unter 64-Bit-Windows
  • Die App schlägt beim Löschen geschützter Nicht-Windows-Dateien fehl
  • Fehler bei der App beim Ändern von Windows-Dateien
  • App schlägt aufgrund der Verwendung von 8- oder 16-Bit-Farbmodi fehl
  • Fehler bei der App aufgrund von Grafik- und Anzeigeproblemen
  • App kann DPI-Bewusstsein nicht deklarieren
  • App schlägt aufgrund fehlender Windows-Features fehl
  • Fehler bei der App aufgrund von nicht signierten Treibern auf 64-Bit-Windows 8
  • Nachverfolgen installierter Apps über Kompatibilitätseinstellungen
  • App kann Installationsprogramme oder Updater nicht starten
  • App-Installationsprogramme, die mit Administratorrechten ausgeführt werden müssen
  • Legacy-Systemsteuerung Applets, die mit Administratorrechten ausgeführt werden müssen

Jedes dieser Szenarien wird im Folgenden erweitert:

App kann nicht installiert oder deinstalliert werden

Einer der häufigsten Arten von App-Fehlern tritt während der Installation der App auf. Bei älteren Setupprogrammen treten am häufigsten zwei Fehler auf:

  • Das Setupprogramm kennt die Features der Benutzerkontensteuerung (User Account Control, UAC) in Windows 8 nicht, sodass es möglicherweise nicht mit den vollständigen Berechtigungen ausgeführt wird, die zum Vornehmen von Systemänderungen an den geschützten Bereichen von Windows 8
  • Das Setupprogramm überprüft die Windows-Version und blockiert die Ausführung selbst, wenn die Version höher als erwartet ist.

Diese Fehlerbedingungen sind zwei der häufigsten Arten von Kompatibilitätsfehlern beim Setup. PCA erkennt mit Hilfe verschiedener anderer Windows-Komponenten wie UAC Setup-Programme beim Start und verfolgt sie bis zum Ende der Installation. Wenn das Setup-Programm entweder keine Dateien hinzufügen oder einen gültigen Eintrag im Bereich "Programme hinzufügen" der Windows-Systemsteuerung hinzufügen kann, betrachtet PCA das Setup als fehlgeschlagen.

In diesem Fall empfiehlt PCA einen für die App geeigneten Kompatibilitätsmodus. Der Kompatibilitätsmodus ermöglicht die Ausführung des Setupprogramms in dem Windows-Modus, für den es konzipiert wurde, und stellt außerdem sicher, dass die App mit Administratorrechten ausgeführt wird. PCA wendet den RUNASADMIN-Kompatibilitätsmodus zusammen mit dem entsprechenden Windows XP-, Windows Vista- oder Windows 7-Kompatibilitätsmodus an. Der Benutzer wird am Ende der fehlgeschlagenen Installation ein Dialogfeld mit der PCA-Empfehlung angezeigt:

Das Dialogfeld

Der Benutzer kann dann Folgendes auswählen:

  • Führen Sie das Programm mithilfe der Kompatibilitätseinstellungen (empfohlene Option) aus, danach wendet PCA die empfohlene Einstellung an (Kompatibilitätsmodus), startet das Setupprogramm neu und verfolgt es, bis das Setup erfolgreich abgeschlossen ist.
  • Geben Sie an, dass das Programm ordnungsgemäß installiert ist. In diesem Fall fügt PCA keine Einstellungen hinzu und beendet die Nachverfolgung des Setups.
  • Klicken Sie auf Schließen. In diesem Fall fügt PCA keine Einstellungen hinzu und beendet die Nachverfolgung dieses Setups.

Der gleiche Mechanismus wird verwendet, um die Deinstallation der App zu unterstützen, wenn ein Benutzer versucht, die App entweder über den Abschnitt "Programme hinzufügen" in Windows oder über die Deinstallationsverknüpfung der App zu deinstallieren.

Die App kann nicht mit einer Meldung zur Überprüfung der Windows-Version ausgeführt werden.

Einer der häufigsten Kompatibilitätsfehler in der App-Runtime ist auf die Windows-Versionsprüfung zurückzuführen. Viele Apps überprüfen nach dem Start die Windows-Version. wenn sie die Version nicht erkennen, blockieren sie sich selbst, auch wenn die App ohne Probleme ausgeführt werden könnte.

Im Allgemeinen sind solche Überprüfungen mit zwei Bedingungen verknüpft, die vom PCA nachverfolgt werden:

Die App zeigt ein Meldungsfeld an, das den Benutzer warnt. Ein Beispiel finden Sie unten:

Die App kann nicht mit einem Dialogfeld zur Überprüfung der Windows-Version ausgeführt werden.

  • Die App wird sofort beendet oder stürzt ab.

Wenn PCA beide Bedingungen für eine App identifiziert, wird dem Benutzer eine Empfehlung bereitgestellt. PCA ermöglicht es dem Benutzer, die App mit Kompatibilitätseinstellungen erneut auszuführen. PCA wendet basierend auf der App den entsprechenden Windows XP-, Windows Vista- oder Windows 7-Kompatibilitätsmodus an. Wie in jedem der Szenarien kann der Benutzer PCA mitteilen, dass die App ordnungsgemäß ausgeführt wurde, oder die empfohlenen Einstellungen deaktivieren, indem er auf die Schaltfläche schließen klickt. Ein Beispieldialogfeld wird wie folgt bereitgestellt:

Die App kann nicht mit dem Dialogfeld

App kann aufgrund von Administratorrechten nicht gestartet oder ausgeführt werden

Einige Apps benötigen Administratorrechte, um ihre Funktionalität auszuführen und auszuführen. In Windows 8 werden Apps jedoch, ähnlich wie Windows 7 und Windows Vista, aufgrund von UAC standardmäßig in niedrigeren Berechtigungsstufen ausgeführt. Neuere Apps, die für Windows Vista und höher entwickelt wurden, deklarieren im Allgemeinen die Berechtigungsstufe, auf der sie ausgeführt werden müssen, über den ABSCHNITT TRUSTINFO des EXE-Manifests. Bei älteren Apps gibt es jedoch in der Regel zwei Fehler:

  • Die App zeigt dem Benutzer eine Meldung an, dass administratorrechte erforderlich sind, wie im folgenden Beispiel:

Fehler beim Starten oder Ausführen der App aufgrund des Dialogfelds für Administratorrechte

  • Die App wird entweder sofort beendet oder stürzt ab.

Wenn PCA beide Bedingungen für eine App identifiziert, wird dem Benutzer eine Empfehlung bereitgestellt. PCA ermöglicht es dem Benutzer, die App mit Administratorrechten erneut auszuführen (PCA wendet den RUNASHIGHEST-Kompatibilitätsmodus an). Der Benutzer erhält eine UAC-Eingabeaufforderung, wenn die App erneut ausgeführt wird. Wie in jedem der Szenarien kann der Benutzer die empfohlene Einstellung erneut ausführen oder die empfohlenen Einstellungen deaktivieren, indem er auf Schließen klickt. Ein Beispieldialogfeld wird wie folgt bereitgestellt:

Die App kann aufgrund des Dialogfelds

App stürzt aufgrund spezifischer Speicherprobleme ab

Einige Apps stürzen aufgrund eines bekannten Speicherproblems ab. Die App entfernt den Verweis auf eine DLL aus dem Arbeitsspeicher und ruft dann eine Funktion auf, um Code in derselben DLL auszuführen. Dies führt zu einem sofortigen Absturz der App. Dieses Problem ist zwar nicht auf Windows 8 Kompatibilitätsänderungen zurückzuführen, es ist jedoch ein relativ häufiges Problem, das in einer Vielzahl von Apps auftritt. PCA verfolgt dieses Problem, um Benutzern die Möglichkeit zu geben, ihre App zuverlässiger auszuführen.

Für diese Apps wendet PCA automatisch den PINDLL-Kompatibilitätsmodus im Hintergrund an. Der von PCA aufgerufene Kompatibilitätsmodus verhindert, dass die App die DLL aus dem Arbeitsspeicher freigibt. Der Funktionsaufruf in die DLL durch die App funktioniert also, sodass die App nicht abstürzt und weiterhin ordnungsgemäß funktioniert.

App schlägt aufgrund von nicht übereinstimmenden Systemdateien fehl

Einige Apps, die für Windows XP und frühere Versionen entwickelt wurden, enthalten Kopien von Windows-System-DLLs zusammen mit ihren Installationsprogrammen. Wenn solche Apps installiert sind, verfügt die App sowohl über eine ältere Kopie der DLL in ihrem eigenen Ordner als auch über die neueste Version der DLL, die sich in den Windows-Systemordnern befindet.

Unter Windows Vista und höher kann diese Bedingung dazu führen, dass die App fehlschlägt, wenn sie versucht, die lokale DLL zu laden, da diese DLL mit den restlichen Windows-System-DLLs nicht gut funktioniert. Da die App die neueren Versionen dieser DLL im Allgemeinen nicht kennt, funktioniert sie nicht ordnungsgemäß.

Wenn pcA erkennt, dass die DLL nicht ordnungsgemäß geladen werden konnte, wendet sie eine Kompatibilitätseinstellung an, die es Windows ermöglicht, die neueste Version der DLL aus dem Windows-Systemordner zu laden, damit die App ordnungsgemäß ausgeführt werden kann.

Am Ende der ersten fehlgeschlagenen Ausführung der App wird benutzern das PCA-Dialogfeld angezeigt, in dem sie wie folgt über die angewendete Einstellung benachrichtigt werden:

Fehler bei der App aufgrund eines nicht übereinstimmenden Dialogfelds für Systemdateien

App schlägt aufgrund von nicht behandelten Fehlern unter 64-Bit-Windows fehl

In der 64-Bit-Version von Windows 8 wurde eine neue Ausnahme für den Rückrufmechanismus der Nachrichtenschleife aktiviert. Obwohl diese Ausnahme erstmals in Windows 7 eingeführt wurde, war es nicht zwingend erforderlich, diesen Fehler zu behandeln. In Windows 8 müssen Apps, die Nachrichtenschleifen verwenden, diese neue Ausnahme behandeln. Andernfalls stürzen sie ab. Apps, die für ältere Windows-Versionen entwickelt wurden, kennen diese Ausnahme möglicherweise nicht und behandeln daher diesen Fehler (Ausnahme) möglicherweise nicht ordnungsgemäß.

PCA erkennt Apps, die aufgrund dieses nicht behandelten Fehlers fehlschlagen, und wendet automatisch den Kompatibilitätsmodus DISABLEUSERCALLBACKEXCEPTION für die App an. Nachdem die Einstellung am Ende der Ausführung angewendet wurde, wird der Benutzer wie folgt benachrichtigt. Die App ruft den Modus bei der nächsten Ausführung ab und kann diesen Fehler vermeiden.

Fehler bei der App aufgrund von nicht behandelten Fehlern im 64-Bit-Fensterdialogfeld

App schlägt fehl, wenn versucht wird, geschützte Nicht-Windows-Dateien zu löschen

Einige Apps, die für Windows XP und früher entwickelt wurden, gehen davon aus, dass sie in der Regel mit vollständigen Administratorrechten ausgeführt werden. Im Rahmen des normalen App-Verhaltens versuchen sie möglicherweise, geschützte Nicht-Windows-Dateien (entweder in Programmdateien oder Windows-Ordnern) zu löschen. Wenn der Löschvorgang fehlschlägt, können viele solcher Apps abstürzen.

PcA erkennt diese Apps, die geschützte Dateien nicht löschen und abstürzen, und gibt dem Benutzer eine Empfehlung. PcA ermöglicht es dem Benutzer, die App mit Kompatibilitätseinstellungen erneut auszuführen. Wie in jedem der Szenarien kann der Benutzer pcA mitteilen, dass die App ordnungsgemäß ausgeführt wurde, oder die empfohlenen Einstellungen deaktivieren, indem er auf die Schaltfläche zum Schließen klickt. In diesem Fall wendet PCA den VIRTUALIZEDELETE-Kompatibilitätsmodus an. Ein Beispieldialogfeld wird wie folgt bereitgestellt:

App schlägt fehl, wenn versucht wird, geschützte Nicht-Windows-Dateien zu löschen Dialogfeld

Fehler bei der App beim Ändern von Windows-Dateien oder Registrierungsschlüsseln

Einige Apps, die für Windows XP und früher entwickelt wurden, gehen davon aus, dass sie in der Regel mit vollständigen Administratorrechten ausgeführt werden. Im Rahmen des normalen App-Verhaltens versuchen sie möglicherweise, windowsgeschützte Dateien (entweder in Programmdateien oder Windows-Ordnern) oder Registrierungsschlüssel im Besitz von Windows zu ändern, zu löschen oder zu schreiben. Wenn einer der Schreib-, Lösch- oder Änderungsvorgänge für eine Datei oder einen Registrierungsschlüssel fehlschlägt, können viele dieser Apps abstürzen oder fehlschlagen.

PcA erkennt diese Apps, die nicht in geschützte Windows-Dateien oder Registrierungsschlüssel schreiben können, und gibt dem Benutzer eine Empfehlung aus, wenn die App beendet wird. PcA ermöglicht es dem Benutzer, die App mit Kompatibilitätseinstellungen erneut auszuführen. Wie in jedem der Szenarien kann der Benutzer pcA mitteilen, dass die App ordnungsgemäß ausgeführt wurde, oder die empfohlenen Einstellungen deaktivieren, indem er auf die Schaltfläche Schließen klickt. In diesem Fall wendet PCA den WRPMITIGATION-Kompatibilitätsmodus an. Ein Beispieldialogfeld wird wie folgt bereitgestellt:

Fehler bei der App beim Ändern des Dialogfelds für Windows-Dateien oder Registrierungsschlüssel

App schlägt aufgrund der Verwendung des 8- oder 16-Bit-Farbmodus fehl

Im Rahmen der Neugestaltung Windows 8 für Windows Store-Apps ist eine der wichtigsten Änderungen, dass der Desktopfenster-Manager (DWM) jetzt nur noch 32-Bit-Farben in Windows 8 unterstützt. Niedrigere Farbmodi werden jetzt simuliert.

Viele ältere Apps und Spiele, die für Windows XP oder früher entwickelt wurden, verwenden 8-Bit- oder 16-Bit-Farbmodi. Ohne Entschärfung können diese Apps unter Windows 8 nicht ausgeführt werden. Wenn diese Apps jedoch einen der 8-Bit- oder 16-Bit-Farbmodi für die Anzeige aufzählen oder verwenden, erkennt PCA das Problem sofort und stellt mithilfe von DWM sicher, dass die App ordnungsgemäß mit dem simulierten Farbmodus funktioniert.

Beachten Sie, dass dies geschieht, sobald die App die Low-Color-Modi anfordert und für den Benutzer transparent ist. Der Benutzer muss die App nicht neu starten, um diese Entschärfung zu erhalten, da diese Korrektur immer erforderlich ist, um sicherzustellen, dass die App ordnungsgemäß funktioniert.

Fehler bei der Anwendung aufgrund von Grafik- und Anzeigeproblemen

Da der Desktopfenster-Manager (DWM) in Windows 8 immer aktiviert ist, können einige ältere Apps aus der Windows XP-Ära fehlschlagen, wenn die App Grafik-APIs im gemischten Modus verwendet, z. B. die Verwendung von GDI- und DirectX-APIs zum Zeichnen auf den Bildschirm (meist ältere Spiele) und versucht, den Vollbildmodus zu verwenden:

  • DWM verhindert, dass das Zeichnen direkt auf dem Desktop erfolgt, und das Spiel oder die App schlägt entweder fehl oder zeichnet einen schwarzen Bildschirm auf dem Desktop, und keine der Grafiken ist sichtbar.
  • In solchen Fällen erkennt Windows, wenn die App beendet wird, dass die App oder das Spiel ein Problem mit dem Vollbildmodus hat, und wendet den DXMAXIMIZEDWINDOWEDMODE-Kompatibilitätsmodus an, der die Ausführung der App oder des Spiels in einem maximierten Fenstermodus anstelle eines Vollbildmodus ermöglicht.
  • Nachdem die Einstellung am Ende der Ausführung angewendet wurde, wird der Benutzer von PCA wie unten dargestellt benachrichtigt. Die App erhält bei der nächsten Ausführung den Kompatibilitätsmodus und kann ordnungsgemäß ausgeführt werden.

Fehler bei der Anwendung aufgrund von Grafik- und Anzeigeproblemen (Dialogfeld)

App kann dpi-Erkennung nicht deklarieren

Ein weiteres typisches Anzeigeproblem bei vielen älteren Apps tritt auf, wenn Windows und die App im Modus mit hohem DPI-Wert ausgeführt werden, die App jedoch nicht über ihr EXE-Manifest die Erkennung von hoher DPI deklariert. Zu den häufigen Problemen, die aufgrund dieses Konflikts in den Einstellungen auftreten können, gehören beschnittene UI-Elemente oder Text und ein falscher Schriftgrad. Weitere Informationen zu den Problemen finden Sie hier.

In solchen Fällen erkennt Windows, dass die App hohe DPI-fähig ist, und wendet den HIGHDPIAWARE-Kompatibilitätsmodus am Ende der ersten Ausführung auf die App an. PcA informiert den Benutzer dann darüber, wie unten gezeigt:

Fehler beim Deklarieren des Dpi-Erkennungsdialogfelds

Fehler bei der Anwendung aufgrund fehlender Windows-Features

Einige Apps hängen von Windows-Features ab, die seit Windows Vista entfernt wurden. Wenn diese Apps versuchen, die fehlenden DLLs oder COM-Komponenten zu laden, funktionieren sie nicht.

PCA erkennt Apps, wenn sie versuchen, die fehlenden Windows-Features zu laden, und gibt eine Empfehlung an, diese Komponenten herunterzuladen und zu installieren, nachdem die App beendet wurde. Der Benutzer kann auf "Hilfe online abrufen" klicken, um entweder eine Alternative zu finden oder das Feature herunterzuladen und zu installieren. Bei Bedarf kann der Benutzer nichts tun, indem er auf Schließen klickt.

Anwendung schlägt aufgrund fehlender Windows-Features fehl

Fehler bei der App aufgrund von nicht signierten Treibern in 64-Bit-Windows 8

64-Bit-Windows erfordert digital signierte Treiber (SYS-Dateien) seit Windows Vista. Ältere Apps, die vor der Veröffentlichung von Windows Vista entwickelt wurden, wurden jedoch nicht digital signiert. Wenn ein solcher nicht signierter Treiber installiert ist, lädt Windows diese nicht. In seltenen Fällen ist es möglich, dass Windows nicht gestartet wird, wenn solche Treiber als Startzeittreiber gekennzeichnet sind.

Einige ältere Apps installieren Treiber, die nicht unter 64-Bit-Windows signiert sind. Jedes Gerät oder jede App, die versucht, diesen Treiber zu verwenden, kann ausfallen oder zu einem Systemabsturz führen. Um ein solches Szenario zu verhindern, erkennt PCA Apps, wenn sie nicht signierte Treiber installieren, und deaktiviert den Treiber, der als Startzeittreiber markiert ist.

Außerdem wird der Benutzer angewiesen, einen digital signierten Treiber zu erwerben, damit die App ordnungsgemäß funktioniert. Die Meldung wird als Ergebnis der Installation des Treibers und als Ergebnis der Installation der App angezeigt. Wenn eine andere App denselben Treiber installiert, erhält diese App ebenfalls die gleiche Meldung.

App schlägt aufgrund von nicht signierten Treibern im 64-Bit-Windows 8-Dialogfeld fehl

Nachverfolgen von installierten Apps über Kompatibilitätseinstellungen

Wenn ein Installationsprogramm fehlschlägt, unterstützt PCA das Installationsprogramm mit verschiedenen Kompatibilitätsmodi, je nach Art des Fehlers. Sobald das Installationsprogramm die Kompatibilitätseinstellungen erfolgreich ausgeführt hat, verfolgt PCA die Verknüpfungen, die das Installationsprogramm hinzugefügt hat. Dies erfolgt, um nachzuverfolgen, ob die installierten Apps möglicherweise auch die auf ihr Installationsprogramm angewendeten Kompatibilitätseinstellungen benötigen.

Wenn ein Benutzer eine solche App startet, fordert PCA den Benutzer auf, zu fragen, ob die App ordnungsgemäß funktioniert hat. Wenn der Benutzer mit "Ja" antwortt, beendet die PCA die Nachverfolgung der App. Wenn der Benutzer mit "Nein" antwortt, wendet er den gleichen Kompatibilitätsmodus an, der auf das Installationsprogramm der App angewendet wurde, und führt die App mit angewendetem Kompatibilitätsmodus erneut aus.

App kann Installationsprogramme oder Updater nicht starten

Apps starten manchmal untergeordnete Programme, die als Administratoren ausgeführt werden müssen. Dies ist in der Regel der Fall, wenn eine App versucht, ihre Updater-Software zu starten, um neue Updates für die App zu überprüfen und zu installieren. Wenn Apps solche untergeordneten Programme direkt ausführen, kann das untergeordnete Programm nicht gestartet werden, weil die App selbst über keine Administratorrechte verfügte oder weil das untergeordnete Programm nicht ordnungsgemäß mit dem UAC-Manifest zur Erhöhung markiert wurde.

PCA verfolgt diese Fehler nach, und wenn die primäre App geschlossen wird, wird automatisch der ElevateCREATEPROCESS-Kompatibilitätsmodus angewendet, der die ordnungsgemäßen Ausführung der untergeordneten Programme unterstützt. Wenn die App die untergeordnete App bei nachfolgenden Ausführungen startet, wird dem Benutzer ein UAC-Dialogfeld für das untergeordnete Programm angezeigt.

Ein Beispiel für das PCA-Dialogfeld ist unten dargestellt:

App kann das Dialogfeld

App-Installationsprogramme, die mit Administratorrechten ausgeführt werden müssen

Installer von Windows-Desktop-Apps erfordern Administratorrechte, da sie Dateien, Ordner und Registrierungseinträge in geschützte Systembereiche schreiben. Windows (UAC) verfügt über Erkennungslogik, um zu erkennen, wann ein Installationsprogramm ausgeführt wird, und fordert den Benutzer sofort auf, Administratorrechte über das UAC-Dialogfeld bereitzustellen. In einigen Fällen kann diese Logik jedoch nicht feststellen, dass eine App tatsächlich ein Installationsprogramm war, und erhält möglicherweise keine Administratorrechte. Dies sind im Allgemeinen maßgeschneiderte Installationsprogramme, die keine bekannten Installationstechnologien wie Windows Installer oder Install Shield verwenden.

In solchen Fällen erkennt PCA, dass das Installationsprogramm seine Dateien nicht schreiben konnte. Wenn die Installation fehlschlägt, gibt PCA am Ende eine Empfehlung zum Anwenden von Kompatibilitätseinstellungen aus. Wenn der Benutzer auf "Programm ausführen" klicken möchte, wendet PCA den RUNASADMIN-Kompatibilitätsmodus an, und führt das Installationsprogramm erneut aus. Wenn der Benutzer sich für das Schließen entscheidet, wird keine Einstellung angewendet. Im Folgenden sehen Sie ein Beispiel für das PCA-Dialogfeld:

Screenshot: Beispiel eines Dialogfelds für ein App-Installationsprogramm, das mit Administratorrechten ausgeführt werden muss

Legacy-Systemsteuerung Applets, die mit Administratorrechten ausgeführt werden müssen Systemsteuerung-Applets ändern in der Regel systemeinstellungen und benötigen die Möglichkeit, Anzeigenadministrator auszuführen. Diejenigen, die vor Windows Vista geschrieben wurden, verfügen jedoch entweder nicht über ein EXE-Manifest oder nicht über den Abschnitt TRUSTINFO, der die erforderliche Berechtigungsstufe deklariert. Wenn solche Applets ausgeführt werden, erkennt PCA sie und gibt am Ende der ersten Ausführung eine Empfehlung für die Ausführung mit administrativen Einstellungen. Wenn der Benutzer auf "Programm ausführen" klicken möchte, wendet PCA den RUNASADMIN-Kompatibilitätsmodus an und führt das Installationsprogramm erneut aus. Wenn der Benutzer sich für das Schließen entscheidet, werden keine Einstellungen angewendet. Im Folgenden sehen Sie ein Beispiel für das PCA-Dialogfeld:

App-Installationsprogramme, die mit Administratorrechten ausgeführt werden müssen

Überprüfen der empfohlenen Einstellungen durch Benutzerfeedback

Am Ende jedes Szenarios (nachdem die App mit den empfohlenen Kompatibilitätseinstellungen ausgeführt wurde) stellt PCA dem Benutzer eine einfache Frage:

Überprüfen der empfohlenen Einstellungen über das Dialogfeld

Der Benutzer kann Feedback geben, wenn die App mit der Kompatibilitätseinstellung funktioniert hat oder fehlgeschlagen ist. Diese Daten werden anonym an Microsoft gesendet. Dadurch wird sichergestellt, dass solche Korrekturen über den Windows-Updateprozess in Windows 8 integriert werden können, sodass zukünftige Benutzer von Windows 8 nicht mehr auf den App-Fehler stoßen und PCA die App nicht mehr auf den Fehler nachverfolgen muss.

Nachverfolgungsprobleme ohne Empfehlungen

Apps können aus Kompatibilitätsgründen auf viele verschiedene Arten fehlschlagen. PCA verfolgt viel mehr Kompatibilitätsprobleme als in den oben genannten Szenarien aufgeführt. In diesen Fällen hängt die Problemerscheinung häufig von der App ab. Dies bedeutet, dass einige Apps solche Probleme ordnungsgemäß behandeln und davon wiederhergestellt werden, während andere möglicherweise nicht. Für solche Probleme bietet PCA zwar weiterhin die App, aber keine direkte Empfehlung für eine Korrektur.

Zu den Problemen, die VON PCA nachverfolgt werden, die weder über eine empfohlene Einstellung noch über ein Dialogfeld verfügen, gehören Apps, die:

  • Sehr kurze Laufzeit – Apps werden nicht mehr als drei Sekunden ausgeführt
  • Erstellen von globalen Speicherobjekten ohne Administratorrechte
  • Fehler (Win32-Ausnahme) beim Start
  • Überprüfen sie auf Administratorrechte (schlägt aber möglicherweise nicht fehl)
  • Verwenden von Indeo-Codecs (ab Windows Vista veraltet)
  • Versuchen Sie, Schlüssel aus geschützten Registrierungsspeicherorten wie HKLM zu schreiben oder zu löschen.
  • Absturz beim Start

Anwenden von Korrekturen über die Registerkarte "Kompatibilität" und "Kompatibilitätsproblembehandlung"

Wie oben erwähnt, können Apps aus verschiedenen Kompatibilitätsgründen fehlschlagen. Nicht alle davon haben eine eindeutige PCA-Empfehlung, da die Einstellungen appabhängig sind. Benutzer können jedoch zur Kompatibilitätsproblembehandlung oder zur Registerkarte "Kompatibilität" bestimmte allgemeine Korrekturen anwenden, um zu versuchen, dass ihre fehlerhafte App auf Windows 8 ordnungsgemäß funktioniert. In solchen Fällen verfolgt PCA die App weiterhin auf Kompatibilitätsprobleme vor und nach dem Anwenden des Fixs. Nachdem die App mit angewendetem Fix ausgeführt wurde, fragt PCA den Benutzer, ob der Fix funktioniert hat. Sobald der Benutzer die Frage beantwortet hat, werden die Daten anonym über Telemetriedaten an Microsoft gesendet. Diese Daten werden von vielen Benutzern gesammelt und analysiert, und die qualifizierten Korrekturen werden dann über Windows Update an alle Windows 8 Benutzer verteilt.

Verwenden der Kompatibilitätsproblembehandlung

Die Kompatibilitätsproblembehandlung ist ein Mechanismus in Windows, mit dem Sie Probleme mit Apps diagnostizieren und empfohlene Korrekturen anwenden können, damit sie ordnungsgemäß funktionieren. Dies ist nur erforderlich, wenn PCA keine Empfehlung für die App bereitstellt.

Die Problembehandlung ermöglicht es Benutzern, eine Reihe von Fragen zu durchlaufen und zu beantworten. Basierend auf den Antworten wendet er eine Reihe von Korrekturen an und ermöglicht es den Benutzern, ihre Apps zu testen und die Korrekturen zu überprüfen. Nach der Überprüfung werden die Korrekturen dauerhaft auf die Apps angewendet, damit sie auf Windows 8 besser funktionieren.

Die Problembehandlungsbenutzeroberfläche wird unten als Referenz gezeigt:

Verwenden des Dialogfelds zur Kompatibilitätsproblembehandlung

Sie können die Kompatibilitätsproblembehandlung auf zwei Arten starten:

Auf dem Startbildschirm:

  1. Typ: Kompatibilitätsproblembehandlung
  2. Klicken Sie im Abschnitt Einstellungen auf die Kachel "Programme ausführen, die für frühere Windows-Versionen erstellt wurden".

Über die App-Kachel:

  1. Klicken Sie auf dem Startbildschirm mit der rechten Maustaste auf die App-Kachel.
  2. Klicken Sie auf "Dateispeicherort öffnen" (nur Desktop-Apps).
  3. Klicken Sie im Explorer Menüband auf die Registerkarte "App".
  4. Wählen Sie "Problembehandlung für Kompatibilität" aus.

Verwenden der Registerkarte "Kompatibilität"

Beachten Sie, dass dies nur für Benutzer empfohlen wird, die sich mit verschiedenen Kompatibilitätseinstellungen auskennen. Diese Methode enthält keine Empfehlung für den Typ der Korrektur, die auf Apps angewendet werden soll. Hier wird vom Benutzer erwartet, dass er weiß, welche Korrekturen angewendet werden können, damit die App funktioniert. Wenn Sie sich der Fehlerbehebung nicht sicher sind, verwenden Sie die Kompatibilitätsproblembehandlung, um einen Fix für die App zu finden.

So greifen Sie auf die Registerkarte Kompatibilität zu:

Auf dem Startbildschirm:

  1. Klicken Sie mit der rechten Maustaste auf die App-Kachel.
  2. Dateispeicherort öffnen (nur Desktop-Apps)

Über das menüband Explorer:

  1. Klicken Sie auf Eigenschaften.

  2. Navigieren Sie zur Registerkarte Kompatibilität.

  3. Auswählen der Kompatibilitätsfixes

  4. Erneutes Ausführen der App

    Hinweis

    Sie können erneut an die gleiche Stelle zurückkehren, um auch die Korrekturen zu ändern oder zu entfernen. Sie können die Korrekturen auch auf alle Benutzer auf dem Computer anwenden, indem Sie die Schaltfläche auf der Registerkarte verwenden.

     

Verwenden der Registerkarte

Apps mit bekannten Kompatibilitätsproblemen

Abgesehen von den oben aufgeführten Szenarien zur Erkennung von Laufzeitproblemen informiert PCA benutzer auch beim App-Start, wenn die App bekannte Kompatibilitätsprobleme aufweist. Die Liste wird in der System-App-Kompatibilitätsdatenbank gespeichert. Es gibt zwei Arten dieser Meldungen:

  • Hard Block Messages: Wenn die App bekannt ist, dass sie inkompatibel ist und wenn die Ausführung der App zu schwerwiegenden Auswirkungen auf das System führt (z. B. ein Windows-Absturz oder der Start nach der Installation nicht möglich), wird eine Blockierungsmeldung wie unten gezeigt angezeigt angezeigt.

Apps mit bekannten Kompatibilitätsproblemen – Dialogfeld

  • Vorläufiges Blockieren von Nachrichten: Wenn die App ein bekanntes Kompatibilitätsproblem aufweist und möglicherweise nicht ordnungsgemäß funktioniert, wird die folgende Meldung angezeigt:

Apps mit bekannten Kompatibilitätsproblemen – Dialogfeld für vorläufiges Blockieren von Nachrichten

In beiden Fällen sendet die Option "Hilfe online abrufen" einen Windows-Fehlerbericht, um eine Onlineantwort von Microsoft abzurufen und dem Benutzer anzuzeigen. In der Regel verweisen die Antworten den Benutzer auf eine von drei Arten von Ressourcen:

  • Ein Update vom App-Anbieter
  • Website eines App-Anbieters für weitere Informationen
  • Weitere Informationen finden Sie in einem Microsoft Knowledge Base-Artikel.

Telemetriedaten für PCA

Nachdem PCA alle App-Probleme auf einem Windows 8 Computer behoben und das gesamte Benutzerfeedback erhalten hat, sammelt es anonyme Daten über die App, das Installationsprogramm, die erkannten Probleme und die auf die App angewendeten Kompatibilitätseinstellungen und sendet sie zurück an Microsoft. Diese Daten werden von jedem Benutzer gesammelt, der bereit ist, solche anonymen Daten bereitzustellen (über das Programm zur Verbesserung der Benutzerfreundlichkeit - CEIP). Sobald diese Daten gesammelt wurden, werden die App-Fehler und -Korrekturen analysiert, und die Fixes werden dann über den Windows Update Mechanismus an das gesamte Windows-Ökosystem verteilt, sodass jeder Benutzer der App in Zukunft automatisch von der Korrektur profitiert.

Verwaltungskontrollen und Verwalten von PCA-Einstellungen

IT-Administratoren können das PCA-Verhalten auf zwei Arten steuern:

  • PcA deaktivieren : Mit dieser Einstellung können IT-Administratoren die Dialoge deaktivieren, die von PCA für die Benutzer angezeigt werden. PCA verfolgt und erkennt weiterhin Probleme und sendet Telemetriedaten zurück

  • Deaktivieren der App-Telemetriedaten : Mit dieser Einstellung werden die Sammlung und das Senden von Telemetriedaten durch PCA deaktiviert.

    Hinweis

    Wenn CEIP deaktiviert ist, hat diese Einstellung keine Auswirkungen.

     

Entwerfen von Apps für die Verwendung mit PCA

Entwickler müssen sicherstellen, dass ihre Apps in allen oben beschriebenen Kompatibilitätsszenarien gut funktionieren. Entwickler müssen ihre Apps für jedes der oben genannten Szenarien testen und überprüfen und sicherstellen, dass keine Kompatibilitätsprobleme vorliegen. Wenn Kompatibilitätsprobleme erkannt werden, sollten Entwickler die erforderlichen Korrekturen für ihre Apps vornehmen, um sicherzustellen, dass das Kompatibilitätsproblem behoben wird. Zu den allgemeinen Fehlerbehebungen, die Entwickler vornehmen sollten, gehören:

  • Entfernen von Windows-Betriebssystemversionsüberprüfungen bei Installation und Runtime
  • Entfernen der Berechtigungsprüfung (Überprüfung auf Administratorzugriff); Verwenden des EXE-Manifests zum Deklarieren der erforderlichen Berechtigungsstufe
  • Stellen Sie sicher, dass Windows-Binärdateien nicht innerhalb des App-Installationsprogramms ausgeliefert werden.
  • Entfernen des Schreibens in geschützte Bereiche (Registrierung, Ordner) oder Schreiben über geschützte Dateien
  • Digitales Signieren aller Binärdateien (EXE, DLL, SYS-Dateien)
  • Stellen Sie für Installationsprogramme sicher, dass der richtige Eintrag "Programme hinzufügen/entfernen" hinzugefügt wird. Dieser App-Metadateneintrag sollte mindestens den App-Namen, den Herausgeber, die Versionszeichenfolge und die unterstützte Sprache enthalten. Dies gibt dem PCA an, dass das Installationsprogramm erfolgreich abgeschlossen wurde, und bietet benutzern auch eine bequeme Möglichkeit, die App zu deinstallieren.

Wenn Sie sicherstellen, dass der Abschnitt TRUSTINFO und COMPATIBILITY des App-Manifests (ausführbare Datei) wie im Windows 8 Kompatibilitäts-Cookbook aufgeführt aktualisiert wird, informiert PCA, dass die App für Windows 8 entwickelt wurde, und stellt außerdem sicher, dass die App immer nativ ohne darauf angewendete Kompatibilitätsmodi ausgeführt wird.

So stellen Sie sicher, dass die PcA die App als für Windows 8 konzipiert betrachtet:

  • Alle EXEs (Installer oder Runtime) müssen für die Abschnitte TRUSTINFO und COMPATIBILITY für Windows 8
  • Das Installationsprogramm sollte den Eintrag "Programme hinzufügen/entfernen" hinzufügen.

Glossar

Die von PCA verwendeten Kompatibilitätsmodi sind unten mit einer kurzen Beschreibung der Möglichkeiten des Modus aufgeführt.

Mode BESCHREIBUNG
Windows7RTM Dieser Modus emuliert das allgemeine Windows 7-Verhalten, einschließlich der Versionsnummer des Betriebssystems 6.1.
WindowsVistaSP2 Dieser Modus emuliert das allgemeine Windows 7-Verhalten, einschließlich der Versionsnummer des Betriebssystems 6.1.
WindowsXPSp3 Dieser Modus emuliert das allgemeine Verhalten von Windows XP SP3, einschließlich der Versionsnummer 5.1 des Betriebssystems. Dazu gehört auch der RUNASHIGHEST-Modus.
RUNASHIGHEST In diesem Modus wird der Benutzer aufgefordert, die App mit den höchsten verfügbaren Berechtigungen auszuführen. Benutzern mit Administratorrechten wird eine UAC-Aufforderung zur Erhöhung der App angezeigt.
RUNASADMIN In diesem Modus wird der Benutzer immer aufgefordert, die App mit Administratorrechten auszuführen. Apps mit diesem Modus erhalten immer die Eingabeaufforderung zur Erhöhung der UAC.
ELEVATECREATEPROCESS In diesem Modus werden untergeordnete Prozesse der Standard App mit Administratorrechten ausgeführt. Die untergeordneten Prozesse erhalten ein UAC-Rechteerweiterungsdialogfeld.
PINDLL Dieser Modus erzwingt, dass sich eine DLL für eine App im Arbeitsspeicher befindet, auch wenn die App die DLL entlädt.
DISABLEUSERCALLBACKEXCEPTION Dieser Modus fängt Benutzerrückrufausnahmen ab und ermöglicht es der App, weiter zu aktivieren, ohne die Ausnahme behandeln zu müssen.
VIRTUALIZEDELETE Dieser Modus fängt Löschvorgänge für geschützte Dateien ab und verhindert, dass Apps aufgrund nicht behandelter Ausnahmen vom Löschvorgang fehlschlagen.
WRPMITIGATION Dieser Modus gibt erfolglos zurück, wenn eine App versucht, windowsgeschützte Dateien oder Registrierungseinträge zu schreiben, zu ändern oder zu löschen (ohne den Vorgang tatsächlich abzuschließen).
DXMAXIMIZEDWINDOWEDMODE Dieser Modus identifiziert Apps, die in den Vollbildmodus wechseln, und leitet sie in einen maximierten Fenstermodus um.
HIGHDPIAWARE Dieser Modus gibt dem Rest von Windows bekannt, dass die App hohe DPI-fähig ist, und unterstützt das ordnungsgemäße Rendern von UI-Elementen, Text, Schriftart usw.