Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: Windows Kompatibilitätsmodus verbieten

  Alt 6. Jan 2023, 17:18
Verbieten geht nicht, aber man kann verhindern, dass durch Windows es automatisch aktiviert wird.

Du könntest GetSystemInfo mit GetNativeSystemInfo vergleichen und versuchen zu erkennen, ob der Kompatibilitätsmodus aktiv ist und dann den Nutzer warnen informieren.



"Automatisch" geht der Kompatibilitätsmodus eigentlich nur an, wenn die ID der jeweiligen Windows-Version nicht in der Liste der supportedOS enthalten ist.
Es wird dann davon ausgegangen daß die Anwendung nicht kompatibel ist und über eine Heuristik oder Sonstwas wird dann versucht zu erkennen was vermutlich nötig ist.
z.B. wird über Keywords im Dateinamen, wie z.B. "setup" oder "install", davon ausgegangen, dass es ein "Installer" ist und demnach Adminrechte benötigt.

Manuell kann man aber dennoch daran etwas verändern.



Delphi 11.2 sieht diesbezüglich OK aus.
Code:
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
   <application>
      <!--The ID below indicates app support for Windows Vista -->
      <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
      <!--The ID below indicates app support for Windows 7 -->
      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
      <!--The ID below indicates app support for Windows 8 -->
      <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
      <!--The ID below indicates app support for Windows 8.1 -->
      <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
      <!--The ID below indicates app support for Windows 10 -->
      <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>         
   </application>
</compatibility>
Ja, Windows 11 fehlt scheinbar, aber auch nur, wenn man nicht bedenkt, dass Windows 11 keine neue ID bekommen hat und immernoch die Windows 10-ID benutzt.
$2B or not $2B

Geändert von himitsu ( 6. Jan 2023 um 17:23 Uhr)
  Mit Zitat antworten Zitat