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. ___ É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.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (16.3)
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;
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager