<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[SendMessage für ListView, TreeView]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich hab ein riesiges Proble, an dem ich nun schon fast eine Woche lang verzweifle.<br />
Ich benutze BCB und XP.</p>
<p>Und zwar möchte ich ListViews oder TreeViews von fremden Programmen beeinflussen.<br />
Auslesen derselben ist kein Problem:</p>
<pre><code class="language-cpp">GetWindowThreadProcessId(hWnd, &amp;pid);
 process=OpenProcess(PROCESS_VM_.....

 WriteProcessMemory(process, _lvi, &amp;lvi, sizeof(LVITEM), NULL);
 SendMessage(hWnd, LVM_GETITEMTEXT, (WPARAM)line, (LPARAM)_lvi);
 ReadProcessMemory(process, _item, item, 512, NULL);
</code></pre>
<p>funktioniert alles einwandfrei!</p>
<p>Was nun nicht so klappt, wie ich mir das vorgestellt hab sind folgende Befehle der WinAPI:</p>
<p>LVM_FINDITEM<br />
LVM_SETITEMSTATE<br />
LVM_SETITEM<br />
LVM_SETSELECTIONMARK</p>
<p>TVM_SELECTITEM</p>
<p>bei LVM_FINDITEM bekomm ich zum Beispiel immer -1, angeblich würde das Item nicht existieren. Wenn ich aber die Liste mit LVM_GETITEMTEXT durchsuche, und die Items mit meinem String vergleiche, dann wirds gefunden.<br />
(Warum geht LVM_GETITEMTEXT aber LVM_FINDITEM nicht? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> )</p>
<p>Jedenfalls lässt sich auch über die LVM_SET... kein ITem auswählen. ich brauche aber unbedingt den blauen Rahmen um die Items.</p>
<p>Bei TreeViews gibts änliche Probleme.<br />
TVM_SELECTITEM funzt nicht, aber dafür das Macro TreeView_SelectItem()<br />
Aber auch nur, wenn ich das Programm NICHT in der Entwicklungsumgebung laufen lasse. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /><br />
Markiert wird das Item aber nicht, sondern nur der Tree aufgeklappt...</p>
<p>Wäre echt super, wenn jemand ne Lösung für dieses mysteriöse Verhalten hätte, da das ganze meine Praktikumsarbeit darstellt.</p>
<p>Gruss, Sven</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/95111/sendmessage-für-listview-treeview</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Apr 2026 19:17:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/95111.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 16 Dec 2004 09:50:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SendMessage für ListView, TreeView on Thu, 16 Dec 2004 09:50:10 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich hab ein riesiges Proble, an dem ich nun schon fast eine Woche lang verzweifle.<br />
Ich benutze BCB und XP.</p>
<p>Und zwar möchte ich ListViews oder TreeViews von fremden Programmen beeinflussen.<br />
Auslesen derselben ist kein Problem:</p>
<pre><code class="language-cpp">GetWindowThreadProcessId(hWnd, &amp;pid);
 process=OpenProcess(PROCESS_VM_.....

 WriteProcessMemory(process, _lvi, &amp;lvi, sizeof(LVITEM), NULL);
 SendMessage(hWnd, LVM_GETITEMTEXT, (WPARAM)line, (LPARAM)_lvi);
 ReadProcessMemory(process, _item, item, 512, NULL);
</code></pre>
<p>funktioniert alles einwandfrei!</p>
<p>Was nun nicht so klappt, wie ich mir das vorgestellt hab sind folgende Befehle der WinAPI:</p>
<p>LVM_FINDITEM<br />
LVM_SETITEMSTATE<br />
LVM_SETITEM<br />
LVM_SETSELECTIONMARK</p>
<p>TVM_SELECTITEM</p>
<p>bei LVM_FINDITEM bekomm ich zum Beispiel immer -1, angeblich würde das Item nicht existieren. Wenn ich aber die Liste mit LVM_GETITEMTEXT durchsuche, und die Items mit meinem String vergleiche, dann wirds gefunden.<br />
(Warum geht LVM_GETITEMTEXT aber LVM_FINDITEM nicht? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> )</p>
<p>Jedenfalls lässt sich auch über die LVM_SET... kein ITem auswählen. ich brauche aber unbedingt den blauen Rahmen um die Items.</p>
<p>Bei TreeViews gibts änliche Probleme.<br />
TVM_SELECTITEM funzt nicht, aber dafür das Macro TreeView_SelectItem()<br />
Aber auch nur, wenn ich das Programm NICHT in der Entwicklungsumgebung laufen lasse. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /><br />
Markiert wird das Item aber nicht, sondern nur der Tree aufgeklappt...</p>
<p>Wäre echt super, wenn jemand ne Lösung für dieses mysteriöse Verhalten hätte, da das ganze meine Praktikumsarbeit darstellt.</p>
<p>Gruss, Sven</p>
]]></description><link>https://www.c-plusplus.net/forum/post/674370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/674370</guid><dc:creator><![CDATA[Sven_S]]></dc:creator><pubDate>Thu, 16 Dec 2004 09:50:10 GMT</pubDate></item><item><title><![CDATA[Reply to SendMessage für ListView, TreeView on Thu, 20 Jan 2005 13:34:23 GMT]]></title><description><![CDATA[<p>Und zwar brauchen beide Elemente jeweils den Focus.<br />
Sprich, bevor irgend eine Message an die Objekte gesendet wird, muss WM_SETFOCUS gesendet werden.</p>
<p>Gruss, Sven</p>
]]></description><link>https://www.c-plusplus.net/forum/post/701290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/701290</guid><dc:creator><![CDATA[Sven_S]]></dc:creator><pubDate>Thu, 20 Jan 2005 13:34:23 GMT</pubDate></item></channel></rss>