Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Win 10 + DPI Skalierung + WinExec() (https://www.delphipraxis.net/197924-win-10-dpi-skalierung-winexec.html)

TigerLilly 19. Sep 2018 07:29

Win 10 + DPI Skalierung + WinExec()
 
Folgendes Problem:
Ein Kunde hat Win10, einen Bildschirm mit 3400x1980 und die Skalierung auf 250%.
Unsere Legacy App wird mit "Hohe DPI Skalierung überschreiben" betrieben, damit sie sinnvoll groß dargestellt wird.
Die App erzeugt uA ein RTF und startet für deren Ansicht Word mit ShellOpenFile + gibt dabei die DPI Einstellungen weiter. Das führt dazu, dass Word winzigklein dargestellt wird + nicht mehr zu benutzen ist.
Startet man Word normal, dann wird es auch wie erwartet dargestellt + diese Instanz wird dann für die Ansicht benutzt + alles ist gut.

Der Workaround für unseren Kunden besteht also darin, vor dem Ausdruck/Preview Word manuell zu starten.

Aber trotzdem: Gibt es eine Möglichkeit, Word (wobei das sicher alle so aufgerufenen Programme betrifft) zu sagen, dass es seine eigene DPI Einstellung nutzen soll?

Der schöne Günther 19. Sep 2018 08:51

AW: Win 10 + DPI Skalierung + WinExec()
 
Ich musste erst einmal nachschlagen was
Delphi-Quellcode:
WinExec(..)
ist, noch nie gehört :freak:

Zitat:

This function is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function.
(docs.microsoft.com)


Probier doch mal ShellExecute(..)/ShellExecuteEx(..) oder schlimmstenfalls CreateProcess(..)

TigerLilly 19. Sep 2018 09:11

AW: Win 10 + DPI Skalierung + WinExec()
 
WinExec sollte richtigerweise ShellOpenFile (so wie es im Text beschrieben ist) heißen.

Der schöne Günther 19. Sep 2018 09:20

AW: Win 10 + DPI Skalierung + WinExec()
 
Ich finde in der Winapi-Doku sowie in allen .pas-Dateien von Delphi kein "ShellOpenFile", was soll das sein?

Ok, ich hatte meinen Kaffee noch nicht, vielleicht ist es einfach nur das...

Uwe Raabe 19. Sep 2018 09:28

AW: Win 10 + DPI Skalierung + WinExec()
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1413564)
Ich finde in der Winapi-Doku sowie in allen .pas-Dateien von Delphi kein "ShellOpenFile", was soll das sein?

Geht mir genauso.

TigerLilly 19. Sep 2018 09:33

AW: Win 10 + DPI Skalierung + WinExec()
 
Ja, ok, ich kann auch mehr Kaffee brauchen: ShellOpenFile maskiert
Code:
ShellExecute(0, nil, PChar(FileName), nil, nil, ShowCmd);
Delphi2006


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:57 Uhr.

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