Bonjour,
Je cherche à copier le contenu d’une fenêtre extérieure à mon prog, dont je connais son HWND, dans un bitmap. À votre avis, c’est faisable, et si oui, comment y parvenir ?
Merci d’avance de vos idées.
Bonjour,
Je cherche à copier le contenu d’une fenêtre extérieure à mon prog, dont je connais son HWND, dans un bitmap. À votre avis, c’est faisable, et si oui, comment y parvenir ?
Merci d’avance de vos idées.
Peut-être une piste ici :
https://www.developpez.net/forums/d1...x/#post6182829
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!
C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)
Merci Lung, je vais tester une variation du code de la discussion![]()
Finalement, j'ai pondu ceci qui fonctionne parfaitement pour mon besoin, même si je ne sais pas si cela produit le meilleur rendu possible, du fait de l'usage de la fonction BitBlt:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 procedure TMain.WindowToBitmap(const AHWND: HWND); var LHDc: HDC; LR: TRect; LBmp: TBitmap; begin Windows.GetClientRect(AHWND, LR); LHDc := GetDC(AHWND); LBmp := TBitmap.Create(LR.Width, LR.Height); try BitBlt(LBmp.Canvas.Handle, 0, 0, LR.Width, LR.Height, LHDc, 0, 0, SRCCOPY); Image1.Picture.Assign(LBmp); ReleaseDC(AHWND, LHDc); finally LBmp.Free; end; end;
Partager