Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Bitmap in anderen Prozess bekommen ohne VCL (https://www.delphipraxis.net/25912-bitmap-anderen-prozess-bekommen-ohne-vcl.html)

Vjay 14. Jul 2004 20:23


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:
 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
Nun möchte ich in meine Hook-DLL nicht die VCL mit reinpacken (mir persöhnlich zu gross).

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 ^^

Mephistopheles 26. Mär 2005 14:17

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.

Lesco 30. Mär 2005 10:33

Re: Bitmap in anderen Prozess bekommen ohne VCL
 
bei zwei verschiedenen pcs würde ich MSDN-Library durchsuchennamed pipes benutzen

Vjay 30. Mär 2005 10:49

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