AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Betriebssysteme Auflösung 800x480 auf zweitem Monitor einstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Auflösung 800x480 auf zweitem Monitor einstellen

Ein Thema von Martin K · begonnen am 28. Nov 2008 · letzter Beitrag vom 29. Nov 2008
Antwort Antwort
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#1

Auflösung 800x480 auf zweitem Monitor einstellen

  Alt 28. Nov 2008, 20:25
Hallo,

wie kann ich auf meinem zweiten Monitor eine Auflösung von 800x480 einstellen? Bei mir kann ich als kleinste Auflösung 800x600 einstellen, das ist aber nicht die native Auflösung meines neuen 7-Zoller Zweitmonitor. Er kann die zwar auch darstellen, allerdings kann man Schrift nicht mehr so gut lesen (weil das Bild eben in der Höhe verkleinert wird) und das Seitenverhältnis stimmt auch nicht.

Ich habe schon eine Delphi Lösung gefunden, allerdings weiß ich nicht, wie ich hier festlägen kann, dass nur die Auflösung des zweiten Monitors geändert werden soll. Die Auflösung des ersten Monitors soll ja nicht geändert werden!
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#2

Re: Auflösung 800x480 auf zweitem Monitor einstellen

  Alt 28. Nov 2008, 20:31
Abend!

Falls Du eine nVidia GraKa hast kannst Du im nVidia Control Panel Benutzerdefinierte Auflösungen erstellen, ob das anderer Hersteller haben weiß ich nich.

Machste jetzt auf Deinem Avatar auch nen Zweitbildschirm?
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Auflösung 800x480 auf zweitem Monitor einstellen

  Alt 28. Nov 2008, 20:46
Zitat von Sunlight7:
Abend!

Falls Du eine nVidia GraKa hast kannst Du im nVidia Control Panel Benutzerdefinierte Auflösungen erstellen, ob das anderer Hersteller haben weiß ich nich.
Ne, ist ne ATI-Karte. Ich weiß, da gibts so nen ATI-Catalyst Center, aber den will ich ned installieren, weil der dann auch neue Treiber mit drauf macht und damit hatte ich nur Probleme (Bild friert kurzzeitig ein, etc.) Mit den Windows-Standardtreibern funzt es am besten!
Wäre gut wenns da ne Windows-Lösung gibt, evtl. mit dem Delphi-Code, vielleicht kann man da irgendwie als Parameter festlegen, welcher Bildschirm es ist?

Zitat von Sunlight7:
Machste jetzt auf Deinem Avatar auch nen Zweitbildschirm?

Mal sehen, der ist ja uralt, noch nicht einmal Breitbild
Den muss ich wirklich mal aktualisieren ...
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Auflösung 800x480 auf zweitem Monitor einstellen

  Alt 28. Nov 2008, 20:51
Naja, ich hab jetzt nur drüber geschaut bei der MSDN aber du kannst ja mal schauen, was du bei der Funktion rausbekommst. Da müssten ja deine Devices dann abgelegt werden.
Und in dem Beispiel-Code den du verlinkt hast, wird ja lpszDeviceName mit nil übergeben. Wenn du danach die passende DISPLAY_DEVICE.DeviceName übergibst könntest du speziell deinen 2ten Monitpr ansprechen.

Müsstest dir mal diese Structure anschauen.
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#5

Re: Auflösung 800x480 auf zweitem Monitor einstellen

  Alt 28. Nov 2008, 20:56
Guck Dir das an:

MSDN-Library durchsuchenChangeDisplaySettingsEx

Zitat:
dmPosition Position of the device in a multi-monitor configuration.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#6

Re: Auflösung 800x480 auf zweitem Monitor einstellen

  Alt 28. Nov 2008, 21:07
[quote="Martin K"]
Zitat von Sunlight7:
da gibts so nen ATI-Catalyst Center, aber den will ich ned installieren, weil der dann auch neue Treiber mit drauf macht und damit hatte ich nur Probleme (Bild friert kurzzeitig ein, etc.) Mit den Windows-Standardtreibern funzt es am besten!
Scheinbar nicht?
Die Standardtreiber sind da wirklich etwas unflexibel, mit den Treibern der Grafikkarten-Hersteller hat man aber deutlich mehr Möglichkeiten.
Wenn da das Bild einfriert, hast du wohl entweder eine sehr neue oder sehr alte Grafikkarte? Ansonsten werden solche Bugs doch eigentlich schnell behoben, hast du die aktuellste (ggf Beta-) Version schon ausprobiert?
Florian Heft
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Auflösung 800x480 auf zweitem Monitor einstellen

  Alt 28. Nov 2008, 22:28
Ich benutze das Tool UltraMon und bin super zufrieden damit. Müsste GraKa-unabhängig sein!!!
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Auflösung 800x480 auf zweitem Monitor einstellen

  Alt 28. Nov 2008, 23:50
Danke erstmal für eure Antworten.
Leider bekomme ich es nicht gebacken:
Egal ob ich ChangeDisplaySettings oder ChangeDisplaySettingsEx nehme, ich erhalte immer: DISP_CHANGE_BADMODE (The graphics mode is not supported.)
Folgender Code:
Delphi-Quellcode:
function SetResolution(DeviceName: PChar; Width, Height: Word; Freq :Cardinal): String;
var lpDevMode: TDeviceMode;
begin
  if EnumDisplaySettings(DeviceName, 0, lpDevMode) then
  begin
    lpDevMode.dmFields := DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_DISPLAYFREQUENCY;
    lpDevMode.dmPelsWidth := Width;
    lpDevMode.dmPelsHeight := Height;
    lpDevMode.dmDisplayFrequency := Freq;
    case ChangeDisplaySettingsEx(DeviceName, lpDevMode, 0, CDS_UPDATEREGISTRY, nil) of
      DISP_CHANGE_SUCCESSFUL: Result := 'DISP_CHANGE_SUCCESSFUL';
      DISP_CHANGE_BADFLAGS: Result := 'DISP_CHANGE_BADFLAGS';
      DISP_CHANGE_BADMODE: Result := 'DISP_CHANGE_BADMODE';
      DISP_CHANGE_BADPARAM: Result := 'DISP_CHANGE_BADPARAM';
      DISP_CHANGE_FAILED: Result := 'DISP_CHANGE_FAILED';
      DISP_CHANGE_NOTUPDATED: Result := 'DISP_CHANGE_NOTUPDATED';
      DISP_CHANGE_RESTART: Result := 'DISP_CHANGE_RESTART';
    end;
  end;
end;

procedure TForm5.FormCreate(Sender: TObject);
var Device: TDisplayDevice;
begin
  Device.cb := SizeOf(Device);
  if EnumDisplayDevices(nil, 1, Device, 1) then
    Caption := SetResolution(Device.DeviceName, 800, 480, 60);
  // Caption := Device.DeviceName;
end;
Komischerweise, als ich es mit 800x600 probiert habe, wurde die Auflösung des ersten Monitors geändert. Hier macht es auch durchaus Sinn, wenn 800x480 "not supported" ist, da dieser über DVI angeschlossen ist und hier übertragen wird, welche Auflösungen gültig sind. Bei dem Zweitmonitor (über VGA) aber anscheinend nicht, hier müsste 800x480 ja gehen, aber komischerweise ändert dieser Code ja die Auflösung des ersten Monitors...
Wenn ich Device.DeviceName ausgebe, erhalte ich aber: \\.\DISPLAY2
Also müsste es doch der zweite sein?

Zitat von Florian H:
Zitat von Martin K:
da gibts so nen ATI-Catalyst Center, aber den will ich ned installieren, weil der dann auch neue Treiber mit drauf macht und damit hatte ich nur Probleme (Bild friert kurzzeitig ein, etc.) Mit den Windows-Standardtreibern funzt es am besten!
Scheinbar nicht?
Die Standardtreiber sind da wirklich etwas unflexibel, mit den Treibern der Grafikkarten-Hersteller hat man aber deutlich mehr Möglichkeiten.
Wenn da das Bild einfriert, hast du wohl entweder eine sehr neue oder sehr alte Grafikkarte? Ansonsten werden solche Bugs doch eigentlich schnell behoben, hast du die aktuellste (ggf Beta-) Version schon ausprobiert?
Also ich will da nix mehr mit dem ATI-Zeugs rumprobieren (schlechte Erfahrungen). Meine Karte ist wohl eher etwas älter (ATI Radeon X300 SE) und ich hatte immer das Gefühl, dass es bei jeder neuen Treiberversion von ATI immer schlimmer wurde (mit dem Einfrieren), kann aber auch sein dass das Einfrieren erst kam, seit dem ich den (ersten) Monitor mit einer relativ hohen Auflösung (1920x1200) hatte. Jedenfalls gabs bei den Windows-Standardtreibern nie Probleme diesbezüglich, alles läuft flüssig (okay, das mit der Auflösung geht halt ned )
War nicht nur das Einfrieren sondern noch andere Sachen, z.B. Scrollen bei großen Dokumenten war viel langsamer, etc...


Zitat von scrat1979:
Ich benutze das Tool UltraMon und bin super zufrieden damit. Müsste GraKa-unabhängig sein!!!
Hier kann ich immerhin auch andere Auflösungen einstellen, aber 800x480 ist nicht dabei...
640x480 oder 720x480 geht, wobei meiner 720x480 nicht unterstützt.
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#9

Re: Auflösung 800x480 auf zweitem Monitor einstellen

  Alt 29. Nov 2008, 02:41
Da es mich selbst interessiert hat, wie ich Delphitechnisch den 2. Moni umschalten kann hab ich etwas rumgebastelt.

Zitat von Martin K:
... aber komischerweise ändert dieser Code ja die Auflösung des ersten Monitors...
Wenn ich Device.DeviceName ausgebe, erhalte ich aber: \\.\DISPLAY2
Also müsste es doch der zweite sein?
Nicht unbedingt, mein zweiter Monitor hat die ID 3 und den Namen \\.\DISPLAY4
ID 1 und 2 sind Anschlüsse für TV/Video Ausgabe.
Siehe Link oben, da hab ichs etwas beschrieben.

Ich habs versucht, 800 x 480 zu setzen, ging nicht, erst als ich diesen Benutzer def. Modus im nVidia Control Panel erstellt habe gings dann.
Sieht so aus, als würdest Du um das, Zitat "ATI-Zeugs" net drumrum kommen.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Auflösung 800x480 auf zweitem Monitor einstellen

  Alt 29. Nov 2008, 15:51
Danke, Sunlight.
Ich werde mir deinen Code auf jeden Fall noch mal anschauen und ausprobieren.
Letztendlich habe ich es jetzt mit PowerStrip hinbekommen.
Ich weiß nur ned, ob die Auflösung auch noch "hält", wenn ich das Programm wieder runterschmeiße. Ich würde da auf jeden Fall eine selbst programmierte Lösung bevorzugen, wenns klappt
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:06 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