Notice: This forum has been recovered from an old backup, so some content, links, and dates may be outdated. The forum is currently read-only while we restore sign-in and registration functionality. Details
If you find this forum valuable and would like to help keep it online, donations to help cover hosting and domain costs are greatly appreciated, but never expected. You can support the forum through Buy Me a Coffee or Ko-fi. Thank you for helping preserve the EventGhost community.
If you find this forum valuable and would like to help keep it online, donations to help cover hosting and domain costs are greatly appreciated, but never expected. You can support the forum through Buy Me a Coffee or Ko-fi. Thank you for helping preserve the EventGhost community.
Windows-Bildschirmaufl├Âsung auslesen ?
Windows-Bildschirmaufl├Âsung auslesen ?
Hallo,
Wiedermal eine kurze Frage: Kann man in Python die aktuell eingestellte Windows-Bildschirmaufl├Âsung auslesen, um sie in eg.globals-Variablen zu speichern ?
Danke,
Dieter
Wiedermal eine kurze Frage: Kann man in Python die aktuell eingestellte Windows-Bildschirmaufl├Âsung auslesen, um sie in eg.globals-Variablen zu speichern ?
Danke,
Dieter
- Bitmonster
- Site Admin
- Posts: 2239
- Joined: Mon Feb 06, 2006 10:28 pm
Code: Select all
from eg.WinAPI.Display import GetDisplays
display = GetDisplays()[0]
mode = display.GetCurrentMode()
width, height = mode[0]
print width, height
- Bitmonster
- Site Admin
- Posts: 2239
- Joined: Mon Feb 06, 2006 10:28 pm
Wenn "i" die Nummer des Bildschirms (ausgehend von 0) ist, dann kannst du sowas machen:
Code: Select all
import wx
print wx.Display(i).GetGeometry()mir ist grade aufgefallen, dass die Aufl├Âsungen und Position gar nicht ge├ñndert werden, solange man EG nich neustartet
Folgendes gibt bei mir immer das gleich aus, auch wenn ich die Aufl├Âsung ├ñndere.
Folgendes gibt bei mir immer das gleich aus, auch wenn ich die Aufl├Âsung ├ñndere.
Code: Select all
import wx
import eg
from win32ui import CreateWindowFromHandle
from eg.WinAPI.Utils import GetTopLevelWindowOf
from win32gui import IsWindow
import win32gui
import win32con
#get dimensions of target Monitor
screen = 0
display = wx.Display(screen)
print "moving window to screen", screen
display.GetCurrentMode()
screenTop = display.GetGeometry().GetY()
screenLeft = display.GetGeometry().GetX()
screenWidth = display.GetGeometry().GetWidth()
screenHeight = display.GetGeometry().GetHeight()
screenBottom = display.GetGeometry().GetBottomRight().y
screenRight = display.GetGeometry().GetBottomRight().x
print "Screen", screenTop, screenLeft, screenBottom, screenRight, screenWidth, screenHeight- Bitmonster
- Site Admin
- Posts: 2239
- Joined: Mon Feb 06, 2006 10:28 pm
- Bitmonster
- Site Admin
- Posts: 2239
- Joined: Mon Feb 06, 2006 10:28 pm
Code: Select all
from eg.WinAPI.Display import GetDisplays
display = GetDisplays()[0]
print display.GetRectangle()
Code: Select all
def GetRectangle(self):
"""
Returns the displays position and size as a tuple.
The fields are: (left, top, width, height)
"""
funktioniert bei mir immer noch nicht zuverlässig, aber anscheinend liegt das Problem wo anders.
Wenn ich mit EG die Aufl├Âsung ├ñndere und die ├änderungen nicht in die Registry geschrieben werden, dann wird die alte Aufl├Âsung ausgelesen. Das geht dann aber sogar so weit, dass in den Anzeigeeigenschaften noch die alte Aufl├Âsung drin steht. Aber auch irgendwie nicht immer-
*gr├╝bel*
Also:
EG neustarten
Aufl├Âsung auslesen geht
Mit Eventghost Aufl├Âsung ├ñndern ohne in die Registry zu schreiben
Aufl├Âsung auslesen gibt alte Werte aus
Mit Eventghost Aufl├Âsung ├ñndern mit in Registry schreiben
Aufl├Âsung auslesen geht
Mit Eventghost Aufl├Âsung ├ñndern ohne in die Registry zu schreiben
Aufl├Âsung auslesen gibt alte Werte aus
Wenn ich mit EG die Aufl├Âsung ├ñndere und die ├änderungen nicht in die Registry geschrieben werden, dann wird die alte Aufl├Âsung ausgelesen. Das geht dann aber sogar so weit, dass in den Anzeigeeigenschaften noch die alte Aufl├Âsung drin steht. Aber auch irgendwie nicht immer-
*gr├╝bel*
Also:
EG neustarten
Aufl├Âsung auslesen geht
Mit Eventghost Aufl├Âsung ├ñndern ohne in die Registry zu schreiben
Aufl├Âsung auslesen gibt alte Werte aus
Mit Eventghost Aufl├Âsung ├ñndern mit in Registry schreiben
Aufl├Âsung auslesen geht
Mit Eventghost Aufl├Âsung ├ñndern ohne in die Registry zu schreiben
Aufl├Âsung auslesen gibt alte Werte aus
- Bitmonster
- Site Admin
- Posts: 2239
- Joined: Mon Feb 06, 2006 10:28 pm
Hmm, versuch noch mal die 708. Die Doku zu EnumDisplaySettingsEx sagt:
Ich hab jetzt mal einen Aufruf von EnumDisplaySettingsEx mit iModeNum = 0 vorgesetzt.
Das ist nat├╝rlich besonders sinnig, wenn man f├╝r iModeNum auch noch die Konstante ENUM_CURRENT_SETTINGS (Retrieve the current settings for the display device) definiert.When you call EnumDisplaySettingsEx with iModeNum set to zero, the operating system initializes and caches information about the display device. When you call EnumDisplaySettingsEx with iModeNum set to a nonzero value, the function returns the information that was cached the last time the function was called with iModeNum set to zero.
Ich hab jetzt mal einen Aufruf von EnumDisplaySettingsEx mit iModeNum = 0 vorgesetzt.
Ändert nicht wirklich etwas
So krieg ich unter Umständen auch solche Ausgaben, wonach der zweite Monitor zur Hälfte im ersten liegen würde.
(0, 0, 1920L, 1200L)
(1280, 176, 1280L, 1024L)
Wenn die Werte in die Registry geschrieben werden sollen, dann stimmt zwar die Aufl├Âsung, aber die Position ist falsch. Ohne Schreiben in die Registry ├ñndert sich gar nichts an der Ausgabe.
Der "Change Display Settings" Dialog w├ñhlt ├╝brigens auch die falsche Aufl├Âsung. Die Position kann man da ja leider nicht angeben oder einsehen.
Wenn ich die Einstellungen per Anzeigeeigenschafte ändere, dann passt es bei beiden Monitoren
So krieg ich unter Umständen auch solche Ausgaben, wonach der zweite Monitor zur Hälfte im ersten liegen würde.
(0, 0, 1920L, 1200L)
(1280, 176, 1280L, 1024L)
Wenn die Werte in die Registry geschrieben werden sollen, dann stimmt zwar die Aufl├Âsung, aber die Position ist falsch. Ohne Schreiben in die Registry ├ñndert sich gar nichts an der Ausgabe.
Der "Change Display Settings" Dialog w├ñhlt ├╝brigens auch die falsche Aufl├Âsung. Die Position kann man da ja leider nicht angeben oder einsehen.
Wenn ich die Einstellungen per Anzeigeeigenschafte ändere, dann passt es bei beiden Monitoren
- Bitmonster
- Site Admin
- Posts: 2239
- Joined: Mon Feb 06, 2006 10:28 pm