vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Anzeigengröße des Bildschirms auslesen 
Autor: Kalli
Datum: 28.08.20 10:35

Hi - nach langer Zeit mal wieder.
Ich habe mir einen 4K 32 Zoll - Bildschirm zugelegt. Damit ich bei dieser Auflösung überhaupt noch etwas lesen kann, musste ich die Anzeigengröße auf 150% festlegen. Dadurch traten in einer selbstprogrammierten Hardcopyroutine Schwierigkeiten mit dem Abgreifen des Bildschirms auf. Ich musste das Rechteck, welches mir durch screen.primaryscreen.bounds geliefert wurde, genau um den Faktor 1,5 vergrößern um per CopyFromScreen wirklich den gesamten Bildschirm geliefert zu bekommen. Ich konnte dieses Problem bisher nur dadurch regeln, dass ich in die Hardcopyroutine eine Möglichkeit einbaute, diese 150% per Hand einzugeben, was ja nicht gerade die eleganteste Lösung ist.
Die Frage lautet also, wie komme ich an diese Anzeigengröße per VB-Net heran, oder wie komme ich an die tatsächlichen physikalischen Pixelmaße des Bildschirms heran. Wenn ich die durch die über screen.primaryscreen.bounds gelieferten dividiere, bekomme ich auch 1,5 heraus.
Die Registry lieferte mir nur einen Eintrag über alle möglichen Auflösungen und DpiX, DpiY liefern immer 96 DPI trotz 4K.
Vielleicht hat sich jemand von Euch schon intelligenter mit diesem Problem beschäftigt und kann mir helfen.
Kalle

Dont debug, because there will allways be one more bug

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Anzeigengröße des Bildschirms auslesen 
Autor: HenryV
Datum: 21.09.20 14:52

Ich habe zu Windows 7-Zeiten die Klasse "DpiAwareScreen" von hier verwendet.
Screen resolution not correct -> Beitrag von IronRazerz
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Anzeigengröße des Bildschirms auslesen 
Autor: Kalli
Datum: 21.09.20 22:19

Danke! Ich habe mir schon gedacht, dass da API im Spiel sein muss. Ich schau mir das morgen genau an und versuche es mal mit dem Codebeispiel. (Bin gerade dabei auf meinen neuen PC umzuzuiehen. Das ist etwas zeitaufwändig.)
Ich melde mich, wenn's klappt.
Kalle

Dont debug, because there will allways be one more bug

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Anzeigengröße des Bildschirms auslesen 
Autor: Kalli
Datum: 19.10.20 09:40

Hallo HenryV,
endlich bin ich wieder dazu gekommen ein Wenig am Programm herum zu basteln.
Der Code in Deinem Link funktioniert einwandfrei (Win 10 Pro 19041).

Also vereinfacht für Interessenten:

1. Desktopprojekt mit Richtextbox und Button erstellen und für das Button_Click - Ereignis den dafür vorgesehenen Code aus dem Link in die Form1-Klasse einfügen.

2. Den im Link enthaltenen Code für die neue Klasse aufsuchen und die Klasse in das eigene Projekt kopieren.

Um an den Veregrößerungsfaktor für eine vergrößerte Anzeige auf einem 4K-Bildschirm zu kommen, genügt es "dpiScrn.Scale" abzufragen, oder man teilt dpiScrn.Bounds.Width durch Screen.Primaryscreen.Bounds.Width, wobei das Erstere die Maße des physikalischen Bildschirms liefert und das zweite die Maße der vergrößerten Anzeige.

Dont debug, because there will allways be one more bug

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel