Seite 1 von 1

Primärer Monitor

Verfasst: Samstag 5. April 2008, 11:32
von lordmyder
Hallo,
ich habe an meinem Computer mehrere Monitore angeschlossen.
Ich möchte jetzt bei beiden Monitoren die Auflösung ändern.
Mit den Code-Snippes die ich hier im Forum gefunden habe, lässt sich immer nur die des Primären Monitors ändern, kann mir jemand sagen, wie ich die anderen anspreche? Ist das überhaupt möglich?
Danke im Voraus
LordMyder

Verfasst: Samstag 5. April 2008, 11:36
von BlackJack
Welches Betriebssystem denn?

Verfasst: Samstag 5. April 2008, 18:07
von lordmyder
sry, hab ich vergessen:
Windows XP Media Center Edition

Verfasst: Sonntag 6. April 2008, 10:48
von HWK

Verfasst: Sonntag 6. April 2008, 12:05
von lordmyder
Danke schonmal!

Code: Alles auswählen

    global status,dem
    display_modes = {} 
    n = 0
    while True: 
      try: 
        devmode = win32api.EnumDisplaySettings (None, 0)
      except pywintypes.error: 
        break 
      else: 
        key = ( 
          devmode.BitsPerPel, 
          devmode.PelsWidth, 
          devmode.PelsHeight, 
          devmode.DisplayFrequency 
        ) 
        display_modes[key] = devmode 
        n += 1 
      
    mode_required = (32, 1024, 768, 70) 
    devmode = display_modes[mode_required] 
    win32api.ChangeDisplaySettings (devmode, 0) 
Ich habe diesen Code hier im Forum gefunden, und laut der Anleitung, die du mir geschickt hast müsste der doch alle Monitore skalieren, oder verstehe ich da was falsch?
Kann mir jemand sagen, warum er das bei mir nicht macht?

Verfasst: Sonntag 6. April 2008, 12:24
von HWK
Wozu verwendest Du das n?
EnumDisplaySettings(None, 0) liest immer Setting 0 des Standardbildschirms aus. Du musst Dir also erst die DeviveNames mit EnumDisplayDevices für das erste Argument holen und statt 0 als zweiten Parameter Dein n verwenden. Außerdem ist ChangeDisplaySettingsEx notwendig.
MfG
HWK

Verfasst: Sonntag 6. April 2008, 12:32
von lordmyder
sorry, dass ich mich so dämlich anstelle.
Aber wenn ich folgendes eingebe:

dev=win32api.EnumDisplayDevices(None,1)

Dann gibt er mir ein Objekt und keinen Namen zurück.
Was mache ich denn falsch?

Verfasst: Sonntag 6. April 2008, 12:56
von HWK
Das hier gibt aber einen Namen zurück:

Code: Alles auswählen

win32api.EnumDisplayDevices(None, 1).DeviceName
Und das solltest Du Dir auch noch anschauen:
http://aspn.activestate.com/ASPN/docs/A ... EVICE.html
http://msdn2.microsoft.com/en-us/librar ... S.85).aspx

MfG
HWK