![]() |
Anhand von Listview.handle Itemscaptions auslesen
Hallo,
ich hab ein Programm wir mir informationen in einer Tabelle (Listview) dargestellt werden. Allerdings gibt es in diesem keine Funktion die Einträge irgendwie zu exportieren. Ich brauch allerdings die daten die in dem Listview stehen für eine Statistik. Ist es irgendwie möglich anhand des Listviewhandles die Captions des Listviews zu erzahlten? Wenn es noch ne Möglichkeit gäbe die Subitems irgendwie abzufragen wäre das noch besser aber mir würde es auch erstmal reichen irgendwie die Captions auszulesen. Es gibt doch bestimmt sowas wie es auch wm_gettext gibt um den Text von Edits zu erhalten... Gruß Thornberry |
Re: Anhand von Listview.handle Itemscaptions auslesen
Ich denke man muss dann direkt über die API auf die Listview zu greifen. Vielleicht helfen dir da Luckie's WinAPI-Tutorials ?
Edit: Schau mal hier: ![]() |
Re: Anhand von Listview.handle Itemscaptions auslesen
Moin Sir Thornberry,
Zitat:
Das gilt für alle Controls, die es erst seit 32-Bit Windows gibt. Die "alten" Controls (eben auch EDIT), die es schon unter 16 Bit Windows gab, bieten diese Möglichkeit aus Gründen der Abwärtskompatibilität noch. Alexanders Vorschlag funktioniert nur innerhalb des eigenen Adressraumes, so dass sich das Problem mit dem Auslesen eines fremden ListViews nur über eine Inject DLL lösen lassen dürfte. |
Re: Anhand von Listview.handle Itemscaptions auslesen
[quote="Christian Seehase"]Moin Sir Thornberry,
Zitat:
|
Re: Anhand von Listview.handle Itemscaptions auslesen
@Christian Seehase: Es geht doch, ich hab inzwischen etwas gefunden. Und zwar gibt es da die LVM-Messages in der unit "CommCtrl". Allerdings klappt da irgendwas auch nicht mehr. Aber das ist jetzt egal. Es war leider doch keine Komponente die vom Listview abgeleitet wurde und somit brauch ich das ganze auch nicht mehr..
|
Re: Anhand von Listview.handle Itemscaptions auslesen
Trotzdem wäre es vielleicht interessant, wenn du den Code hierein oder in die Codelib packst (wenn er denn halbwegs funktioniert...)
|
Re: Anhand von Listview.handle Itemscaptions auslesen
Moin Sir Thornberry,
Zitat:
Wie oben schon beschrieben funktionieren die LVM Messages nicht über Prozessgrenzen hinweg. |
Re: Anhand von Listview.handle Itemscaptions auslesen
Prinzip: Reservier dir Speicher im fremden Prozess mit
![]() ![]() ![]() |
Re: Anhand von Listview.handle Itemscaptions auslesen
@Luckie: schlegt das Counten der Items auch fehl wenn die ListView nicht zum eigenen Prozess gehört?
|
Re: Anhand von Listview.handle Itemscaptions auslesen
LVM_GETITEMCOUNT kannst du auch an fremde Prozesse schicken, da es keinen Pointer benutzt.
Das Problem bei solchen Messages ist eigentlich nur, wenn ein Puffer benötigt wird, der in Form eines Pointers angegeben ist. Bei 9x soll man da MMFs benutzen um einen SharedMemory-Block einzublenden, bei NT klappt das leider nicht mehr, da geht dann nur Luckies Variante mit VirtualAllocEx (die wiederum mit 9x nicht mehr geht, alles ziemlich inkonsequent :mrgreen:). LVM_GETITEMCOUNT benutzt aber keinen Pointer, um den Wert zurückzugeben (z.B. eine Struktur oder sowas), sondern als Ergebnis der Message (somit als Ergebnis der SendMessage-Prozedur), und das klappt auch über Prozessgrenzen hinweg. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:01 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