Hallo,
ich habe folgendes Problem:
Nach der Eingabe eines Dateinamens im Savedialog will ich einen Screenshot von der gesamten Arbeitsfläche machen.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| function CaptureScreen:TBitmap; var DC : HDC; ABitmap:TBitmap; begin DC := GetDC (GetDesktopWindow); ABitmap:=TBitmap.Create; try ABitmap.Width := GetDeviceCaps (DC, HORZRES); ABitmap.Height := GetDeviceCaps (DC, VERTRES); BitBlt(ABitmap.Canvas.Handle, 0, 0, ABitmap.Width, ABitmap.Height,DC, 0, 0, SRCCOPY); finally ReleaseDC (GetDesktopWindow, DC); end; Result:=ABitmap; end; |
Dabei wird die Arbeitsfläche jedoch nur teilweise angezeigt, oder aber ein Teil vom Savedialog ist noch sichtbar (bei 2 unterschiedlichen Rechnern)?
Hat jemand schon einmal dieses Problem, und wie kann man dies umgehen ?
Ein sleep(...) oder form1.show hilgft da nicht!
