![]() |
Bitmap in anderen Prozess bekommen ohne VCL
Hi, bräuchte mal Hilfe von nem WinAPI-Freak.
Ich Hooke die Window-Prcoedure eines beliebigen Fensters und ersetze die WM-Paint, der Grund dafür ist, dass ich das "Bild" in meinem Proezess weiter bearbeiten möchte. Kurz zusammengewurschtelt sieht das so aus:
Delphi-Quellcode:
Nun möchte ich in meine Hook-DLL nicht die VCL mit reinpacken (mir persöhnlich zu gross).
WM_PAINT, WM_NCPAINT:
begin if wParam = 0 then begin b1:= tbitmap.create; b1.width:= 50; b1.height:= 50; wParam:= b1.Canvas.Handle; processit; // ruft Originalwndproc auf b1.SaveToFile('v:\test.bmp'); b1.free; sendMessage(coreHandle, WM_BLABLA, hWnd, 0); end else processit; end; // Ende Paint Die Frage ist nun, wie bekomme ich das Bitmap dann da rüber? Kann ich mit createcombatiblebitmap ein Bild erzeugen, darauf malen lassen und dann den Speicher auf den HBITMAP (result von createcompatiblebitmap) verweist einfach rüberschieben? Hoffe das ist einigermaßen verständlich erklärt ^^ |
Re: Bitmap in anderen Prozess bekommen ohne VCL
Eine Möglichkeit wären MMFs. Da die Bitmapdaten ja "flach" im Speicher vorliegen, kannst du mit GetBitmapBits() die Bitmap in ein den geteilten Bereich schreiben.
Allerdings gehe ich von der Annahme aus, daß du von 2 Prozessen auf 1 Rechner redest. Im anderen Fall wüßte ich nichts anderes als normale Übertragung per TCP. |
Re: Bitmap in anderen Prozess bekommen ohne VCL
bei zwei verschiedenen pcs würde ich
![]() |
Re: Bitmap in anderen Prozess bekommen ohne VCL
Danke für die Antworten, das Problem hat sich bereits in sofern erledigt, dass ich die Bildmanipulationen direkt in der DLL erledige.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz