Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TViewList aus externem Programm beschreiben (https://www.delphipraxis.net/75281-tviewlist-aus-externem-programm-beschreiben.html)

thomasdrewermann 17. Aug 2006 00:14


TViewList aus externem Programm beschreiben
 
Hallo,

ich stehe momentan vor folgendem für mich unlösbarem Problem. Ich habe eine Software, welche mit Delphi programmiert ist. Mit X-SPY konnte ich ermitteln, dass die Liste in dem Program, welche ich beschreiben will von Typ TViewList ist. Meine Frage ist nun, wie kann ich mit meinem Delphi-Programm Einträge in dieser Liste ändern?

Gruß
Thomas

thomasdrewermann 17. Aug 2006 10:42

Re: TViewList aus externem Programm beschreiben
 
Weiss keiner eine Antwort?
*push*

chaosben 17. Aug 2006 10:55

Re: TViewList aus externem Programm beschreiben
 
Es kommt drauf an ob du meinst was du schreibst.

Wenn du wirklich ein TViewList-Objekt meinst, kann ich dir nicht helfen.
Wenn du hingegen eine TListView meinst, kann ich dir vielleicht helfen:

Das Aussehen eines TListViews wird durch das Senden von Messages gestaltet. Am Besten siehts du das, wenn du mal nachverfolgst was bei einem ListView1.Items[0].Caption='Blubb' passiert.

Also ist mein Tip: Such dir alle für dein Problem nötigen SendMessage's zusammen. In dem Programm, welches das andere modifiziren soll, suchst du dir dann das Handle des Listviews und schickst dann die Messages an dieses.

Viel Spass. :)


//edit: Alles Quatsch. Siehe bei Luckie

Luckie 17. Aug 2006 12:05

Re: TViewList aus externem Programm beschreiben
 
Mit Nachrichten wirst du nicht weit kommen. Mit Edits, Listboxen usw geht das noch. Aber auch nur, weil es unter Windows 3.1 ging. Da unter 32-Bit Windows die Speicherbereiche vollkommen getrennt sind unter den Prozessen würde es nicht mehr gehen auf solche Controls in anderen Prozessen zuzugreifen. Aus Kompatibilitätsgründen aber mapped Windows bestimmte nachrichten in einen Speicherbereich der für den Sender und den Empfänger der Nachricht gültig ist, so dass es auch unter 32-Bit Windows geht.

Der Listview gehört zu den neuen Controls die mit Windows 95 eingeführt wurden. Da musste Mircosoft keine Rücksicht nehmen und hat es auch nicht getan. da wird das ganze schon etwas schwieriger. Vom Prinzip sieht es so aus:
- Speicher für die ListviewItem-Struktur im eigenen Prozess reservieren
- Speicher für die ListviewItem-Struktur im fremden Prozess reservieren mit VirtualAllocEx
- LitviewItems im fremden Prozess auslesen und mit WriteProcessMemory in den zufor reservierten Speicher schreiben
- Mit ReadProcesmemory den Speicher auslesen und in den Speicher, den man im eigenen Prozess reserviert hat, kopieren

Wie das praktisch geht, kannst du dir bei meinen LuckieDIPS angucken

thomasdrewermann 18. Aug 2006 09:29

Re: TViewList aus externem Programm beschreiben
 
Hallo Luckie,

es hadelt sich bei der Komponente bei einer TViewList. Hiess das Listview früher Viewlist?

Wäre es dann überhaupt möglich das von dir beschriebene Vorgehn zu benutzen?

Eine andere überlegung wäre, die Eingaben direkt in dem Fenster zu simulieren.

Gruß
Thomas

thomasdrewermann 19. Aug 2006 18:04

Re: TViewList aus externem Programm beschreiben
 
*push*


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz