Primärer Monitor

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
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
BlackJack

Welches Betriebssystem denn?
lordmyder

sry, hab ich vergessen:
Windows XP Media Center Edition
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

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?
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

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
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?
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

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
Antworten