Screensoht ohne TImage?



  • Wie kann man eigentlich einen screenshot machen, und diesen speichern, ohne ihn vorher in ein TImage einzufügen? 😕



  • Also ich habe jetzt selbst probiert das problem zu lösen, aber es funktioniert nicht. was ist der fehler?

    Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
      TCanvas* canvas = new TCanvas();
      canvas->Handle = GetWindowDC(0);
      TRect Dest   = Rect(0, 0, 1024, 768);
      TRect Source;
      GetWindowRect(0, (LPRECT)&Source);
      Source = Rect(0, 0, Source.Right - Source.Left, Source.Bottom - Source.Top);
      pBitmap->Canvas->CopyRect(Dest, canvas, Source);
      pBitmap->SaveToFile("C:\\screenshot.bmp");
      delete canvas;
    


  • "Funktioniert nicht" ist keine ausreichende Fehlermeldung oder Problembeschreibung.

    Du solltest dir aber mal Gedanken machen, wie gross dein frisch erstelltes TBitmap wohl sein mag.



  • also ich habe jetzt noch folgende zeilen eingefügt:

    pBitmap->Width = Screen->Width;
    pBitmap->Height = Screen->Height;
    

    Außerdem habe ich bei GetWindowDC und GetWindowRect die 0 duch NULL ersetzt, um einen screenshot vom kompletten vildschirm zu machen.

    Aber ich bekomme am ende trotzdem nur ein weißes bild mit 1024x786 Pixel.



  • jetzt hab ichs:

    Source = Rect(0, 0, Screen->Width, Screen->Height);
    anstatt
    Source = Rect(0, 0, Source.Right - Source.Left, Source.Bottom - Source.Top);


Anmelden zum Antworten