Einzelnen Beitrag anzeigen

Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Screenshot machen (zum 125.000sten Mal *gg*)

  Alt 13. Aug 2012, 09:43
So, inzwischen ist doch noch ein Problemchen aufgetaucht: Ich habe mich als gewohnheitsmäßiger Multimonitor-User an das MSDN gehalten. Zitat:
Zitat:
If there are multiple monitors on the system, calling CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL) will create a DC covering all the monitors.
Und was ist? Nischt ist! Platziert man ein Fenster über der Schnittlinie zweier Monitore, dann grabbt die Routine nur den Teil des Fensters, der auf dem primären Bildschirm liegt. Der Teil außerhalb wird zwar von den Dimensionen des Bitmaps her richtig erfasst, ist aber schön weiß eingefärbt.

Liegt das Fenster gänzlich auf einem sekundären Bildschirm, dann ist der Screenshot komplett weiß.

Hat jemand eine Idee woran das nun wieder liegt?

EDIT: *Kopfklatsch* - Das war mal wieder ein zu niedriger Kaffeepegel *gg* Ich habe mit GetDeviceCaps die Auflösung geholt und da scheints etwas inkonsequent zu werden beim Win32API. Zwar habe ich den DC für den kompletten Desktop über alle Bildschirme richtig geholt, aber GetDeviceCaps liefert trotzdem nur den primären Monitor:
Zitat:
On a multiple monitor system, if hdc is the desktop, then GetDeviceCaps returns the capabilities of the primary monitor.
Also habe ich stattdessen Screen.DesktopHeight bzw. Screen.DesktopWidth verwendet und schon gehts.
Miniaturansicht angehängter Grafiken
image2.png  

Geändert von Codehunter (13. Aug 2012 um 09:53 Uhr)
  Mit Zitat antworten Zitat