Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#24

Re: Zugriff auf ein TImage einer externen Anwendung

  Alt 20. Feb 2007, 19:21
Zitat von KoS:
Das die von Canvas gezeichnete Grafik verschwindet ist mir schon aufgefallen, sollte aber hoffe ich kein Problem darstellen. Oder gibt es da noch ne Möglichkeit das ganze (ohne ein Timer) permanent sichtbar zu machen?
Ja, das geht. Irgendjemand hatte ja bereits erwähnt, dass du die WM_Paint Message (an das fremde Formular) abfangen musst.

Zitat von KoS:
Es müsste doch eigentlich klappen wenn ich ein eigenes Form für jedes Image erstelle es an die entsprechende Position schiebe,
Ach nee, die jetzige Variante ist schon besser. Man könnte nur noch überlegen, von TCanvas wegzugehen und mit der Win-API direkt auf den DC (Device Context) zu zeichen. Dazu brauchst du allerdings das Original als Bitmap... ist nur so ne Idee. Tcanvas macht wahrscheinlich auch nix anderes als "BitBlt" von Windows.

Zitat von KoS:
Also bisher läuft alles was du fabriziert hast super!
Das einzige was mir aufgefallen ist wenn ich versuche das Caption eines TButton auszulesen das sich dann die fremde Anwendung killt. Aber das war auch nur ein test und wir nicht in der Praxis angewand. Nur ne allgemeine Info.
Das war höchst wahrscheinlich, dass dies nicht klappt. Weil ein TButton ja ein wenig anders aufgebaut ist. Dadurch funktioniert die Adressrechnugn nicht mehr und ich greife auf eine Adresse zu, wo ich keinen Zugriff habe ->EAccessViolation und das Programm, in dem sie auftrat (also der fremde Process) stürzt ab.
Aber ein TButton stammt von TWinControl ab, da kommt man meist recht einfach an den Text ran. Der Button hat ja schonmal ein "echtes" Window-Handle.

Zitat von KoS:
Die bisher letzte Frage die ich hätte bezieht sich auf Optimierung.
Da kann man sicherlich noch einiges optimieren. Du kannst ja das TMemory vorbereiten und musst es nicht jedesmal neu füllen, oder nur den Teil den du änderst. Alles ab " getwindowthreadprocessid" würde ich ungern auseinanderreißen, außer man programmiert alles um.
Da ich nicht genau weis, in welcher Reihenfolge und zu welcher Zeit du die Infos brauchst, fällt es mir schwer darauf zu optimieren.
Wenn ich allerdings die Sache mit WM_Paint mit reinbringe wird die Sache wahrscheinlich gleich ganz kompliziert aussehen, aber dann ist der Rest (mit den Images etc) Nebensache.
Ich versuch mal was.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat