Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wie kann ich beim Installieren die DPI Eigenschaften setzen? (https://www.delphipraxis.net/214844-wie-kann-ich-beim-installieren-die-dpi-eigenschaften-setzen.html)

TigerLilly 18. Mär 2024 17:00

Wie kann ich beim Installieren die DPI Eigenschaften setzen?
 
Ich habe eine Legacy App, die nicht DPI aware ist + auf hochauflösenden Bildschirmen mit >100% Skalierung uU winzig klein angezeigt wird. Über Anklicken des Programm-Icons/Eigenschaften/Kompatibilität/Hohe DPI EInstellungen ändern - auf System(erweitert) setzen kann man das entschärfen.

Meine Frage: Wie kann ich das schon beim Installieren setzen oder kann ich das in der EXE selbst schon festlegen?

Danke jede Antwort!

himitsu 18. Mär 2024 17:05

AW: Wie kann ich beim Installieren die DPI Eigenschaften setzen?
 
Was hast du denn in den Projektoptionen eingestellt?

Optionen -> Anwendung -> Manifest

TigerLilly 18. Mär 2024 17:12

AW: Wie kann ich beim Installieren die DPI Eigenschaften setzen?
 
"Legacy" = Delphi 2006, da gibt es das leider noch nicht.

Uwe Raabe 18. Mär 2024 17:40

AW: Wie kann ich beim Installieren die DPI Eigenschaften setzen?
 
Zitat:

Zitat von TigerLilly (Beitrag 1534796)
Ich habe eine Legacy App, die nicht DPI aware ist + auf hochauflösenden Bildschirmen mit >100% Skalierung uU winzig klein angezeigt wird.

Das ist aber ungewöhnlich, denn:
Zitat:

By default, the system considers desktop applications DPI unaware
Insofern muss ja irgendetwas dem Windows sagen, dass die App eben nicht als DPI unaware angesehen werden soll. Das würd ich erstmal versuchen herauszufinden.

TigerLilly 18. Mär 2024 17:51

AW: Wie kann ich beim Installieren die DPI Eigenschaften setzen?
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1534800)
Zitat:

Zitat von TigerLilly (Beitrag 1534796)
Ich habe eine Legacy App, die nicht DPI aware ist + auf hochauflösenden Bildschirmen mit >100% Skalierung uU winzig klein angezeigt wird.

Das ist aber ungewöhnlich, denn:
Zitat:

By default, the system considers desktop applications DPI unaware
Insofern muss ja irgendetwas dem Windows sagen, dass die App eben nicht als DPI unaware angesehen werden soll. Das würd ich erstmal versuchen herauszufinden.

Das verstehe ich nicht. Vielleicht verwende ich die Vokabel falsch. Die App wird auch einem 4k Monitor mit 150% Skalierung winzig klein angezeigt. Das hätte ich als DPI unaware bezeichnet.
Deshalb der Workaround mit den Einstellungen und "Hohe DPI Skalierung überschreiben" auf "System (erweitert)" stellen. Dann wird die App vom System auf 150% skalierte, zwar unscharf, aber lesbar.
Und ja: Genau diesen Schritt würde ich gern automatsieren bzw der App schon mitgeben. Ich hätte da das Manifest als Ausgangspunkt gesehen.

Uwe Raabe 18. Mär 2024 17:58

AW: Wie kann ich beim Installieren die DPI Eigenschaften setzen?
 
Zitat:

Zitat von TigerLilly (Beitrag 1534801)
Die App wird auch einem 4k Monitor mit 150% Skalierung winzig klein angezeigt. Das hätte ich als DPI unaware bezeichnet.

Das ist es ja auch. Allerdings sorgt Windows von Haus aus für diese Skalierung, wenn die Applikation sich nicht als DPI aware ausgibt. Das geht entweder durch ein Manifest oder per Programmcode. Wenn beides nicht vorliegt, dann betrachtet Windows die Applikation als DPI unaware und kümmert sich selbst um die Skalierung. In deinem Fall ist das offenbar nicht so und man muss herausfinden warum.

Es gibt unzählige dieser alten Anwendungen und alle laufen auf 4k Monitoren ohne Probleme - wenn auch etwas unscharf. Man muss also diese Einstellung nicht bei jeder dieser Apps machen. Warum dann in deinem Fall?

TigerLilly 18. Mär 2024 18:28

AW: Wie kann ich beim Installieren die DPI Eigenschaften setzen?
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1534802)
Man muss also diese Einstellung nicht bei jeder dieser Apps machen. Warum dann in deinem Fall?

Gute Frage. Keine Ahnung. Was mache ich: D2006 kompilieren und signieren. Installation mit Inno-Setup.

himitsu 18. Mär 2024 19:18

AW: Wie kann ich beim Installieren die DPI Eigenschaften setzen?
 
Grundsätzlich kann man sich das Manifest auch selbst erstellen und als Ressource einbinden.

So alte Delphis kennen viele Dinge noch nicht.
Seit XP gibt es zwar dieses Manifest, aber es hat über die Jahre viele Funktionen dazu bekommen.
* Kontrolle über DPI und Skalierung
* Angabe, zu welcher Windows-Version dein Programm kompatibel ist. Ansonsten entscheidet Windows, ob und welche Virtualisierungen/Umleitungen/Funktionen deinem Programm zur Verfügung stehen.
* uvm.

https://learn.microsoft.com/de-de/wi...at-windows-8-1
https://learn.microsoft.com/de-de/wi...tion-manifests

Uwe Raabe 18. Mär 2024 21:14

AW: Wie kann ich beim Installieren die DPI Eigenschaften setzen?
 
Zitat:

Zitat von TigerLilly (Beitrag 1534805)
Gute Frage. Keine Ahnung. Was mache ich: D2006 kompilieren und signieren. Installation mit Inno-Setup.

Du könntest prüfen, ob deine Anwendung eine Manifest-Ressource enthält und was da drin steht. Das Manifest kann auch als eigenständige Datei mit Endung .manifest neben der exe liegen. Hier gibt's mehr Informationen dazu: https://learn.microsoft.com/en-us/wi...tion-manifests

Führt das nicht zum Erfolg müssen weitersuchen.

Hast du mal versucht, die Anwendung umzubenennen?

Michael II 19. Mär 2024 00:33

AW: Wie kann ich beim Installieren die DPI Eigenschaften setzen?
 
Wie erwähnt wurde: Wenn deine App alt ist, dann ist sie DPI unaware und dann skaliert Windows die Fenster gemäss der eingestellten Skalierung. Ändere doch diese und prüfe was passiert.

Via Windows Task Manager siehst du, welcher DPI Mode verwendet wird. Dort unter Details, Spalte DPI hinzufügen; deine .exe suchen.

Eventuell hast du irgendwann einmal nach Rechtsklick auf die .exe unter Eigenschaften die DPI Einstellungen verändert (?).

Es wäre sicher auch nützlich zu prüfen, ob doch ein Mainfest eingebaut ist.
Dies kannst du (falls in .exe eingebaut) zum Beispiel via Sysinternals
sigcheck -m <deine.exe> tun.
Mehr Infos dazu findest du hier.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:38 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz