[C#2005]Bitmap van een form

Pagina: 1
Acties:

  • dafz0r
  • Registratie: April 2003
  • Laatst online: 12-02 12:50
De titel zegt het zelf: ik moet een screenshot maken van een form. Dit lukt vrij aardig met gdi calls etc maar volgens mij zou dit beter moeten kunnen.
Nu zoek ik de bounds van een window en neem dan een screendump van die coordinaten. Dit werkt dus niet als het form minimized is en als er wat voor staat, capture je dat ook gewoon mee.

Eigenlijk heb ik twee versies nodig, ik moet 1 maal telkens een screenshot nemen van een form dat ik zelf maak, en 1 maal van een window dat niet door mij gestuurd wordt.

Bestaat er een form to bitmap functie achtig iets?
Kan ik op één of andere manier de titelbar en zijranden van een windowed scherm weglaten?

  • Serpie
  • Registratie: Maart 2005
  • Laatst online: 05-02 21:24

  • dafz0r
  • Registratie: April 2003
  • Laatst online: 12-02 12:50
was ik net zelf ook achter :)
Blijft er nog het probleem van het andere window dat ik ook moet hebben, en zonder caption en windowed bars

  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

dafz0r schreef op maandag 02 oktober 2006 @ 11:09:
was ik net zelf ook achter :)
Blijft er nog het probleem van het andere window dat ik ook moet hebben, en zonder caption en windowed bars
Misschien heb je hier wat aan:
http://www.microsoft.com/...MitPatrick1.mspx?mfr=true
Is wel duits btw maar denk ik wel nuttig aangezien hij iets met een hWnd IntPtr doet.

[ Voor 7% gewijzigd door MTWZZ op 02-10-2006 11:37 ]

Nu met Land Rover Series 3 en Defender 90


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 03-02 12:37

pjvandesande

GC.Collect(head);

dafz0r schreef op maandag 02 oktober 2006 @ 11:09:
was ik net zelf ook achter :)
Blijft er nog het probleem van het andere window dat ik ook moet hebben, en zonder caption en windowed bars
Je kunt toch gewoon de client rectangle pakken? Die snij je gewoon uit de capture.

  • dafz0r
  • Registratie: April 2003
  • Laatst online: 12-02 12:50
questa schreef op maandag 02 oktober 2006 @ 11:42:
[...]


Je kunt toch gewoon de client rectangle pakken? Die snij je gewoon uit de capture.
doe ik nu ja, maar als er dan een ander venster een stukje voorstaat neem je dat ook mee en dat wil ik dus niet :)

  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

Redelijk quick-n-dirty:
C#:
1
2
3
4
5
6
public void ObtainScreenShot(IntPtr handleForOtherWindow)
{
    Form otherWindow = Form.FromHandle(handleForOtherWindow);
    Bitmap bmp = new Bitmap(@"c:\temp\output.bmp");
    otherWindow.DrawToBitmap(bmp, otherWindow.ClientRectangle);
}


Method evt static maken aangezien er geen this nodig is.

[ Voor 14% gewijzigd door MTWZZ op 02-10-2006 11:57 ]

Nu met Land Rover Series 3 en Defender 90

Pagina: 1