Seite 1 von 1

Kompatibilitätsmodus feststellen

Verfasst: 26.12.2016 19:47
von Lord
Hallo!

Wie kann ich feststellen, ob mein Programm z.B mit
Win10 im Kompatibilitätsmodus gestartet wird?

Re: Kompatibilitätsmodus feststellen

Verfasst: 26.12.2016 20:08
von RSBasic
Du musst zwei Abfragen erstellen und diese miteinander vergleichen.
1. Einmal mit OSVersion(): Damit kannst du herausfinden, welches Betriebssystem simuliert wurde.
2. Und dann musst du in der Registry das tatsächliche Betriebssystem ermitteln. Z.B. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName oder HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CurrentVersion

Re: Kompatibilitätsmodus feststellen

Verfasst: 26.12.2016 21:15
von _JON_
Programme die im Kompatibilitätsmodus laufen haben eine Environmentvariable namens "__COMPAT_LAYER"

Re: Kompatibilitätsmodus feststellen

Verfasst: 27.12.2016 14:12
von Lord
Hallo RSBasic und _JON_!

Danke für eure Antworten.

Ich habe mich für _JON_s Variante entschieden.
Gibt es bei dieser irgendwelche Besonderheiten, die noch zu beachten sind?
Welche Werte nimmt die Variable an für Win8 bis Win10?

Re: Kompatibilitätsmodus feststellen

Verfasst: 27.12.2016 14:19
von RSBasic
Wenn Windows 8 ausgewählt wurde: Win8RTM
Wenn nichts, also das aktuelle Betriebssystem, ist die Umgebungsvariable leer.
Ansonsten für alle älteren Betriebssysteme: WIN95, WIN98, WIN4SP5, WIN2000, WINXPSP2, WINXPSP3, VISTARTM, VISTASP1, VISTASP2, WIN7RTM, WINSRV03SP1, WINSRV08SP1

Re: Kompatibilitätsmodus feststellen

Verfasst: 27.12.2016 14:42
von Lord
Hallo RSBasic!

Danke für die ausführliche Auflistung.
Das hilft mir schon mal sehr viel weiter.