如何获取另一程序中的listview的items的内容?(100分)

  • 主题发起人 主题发起人 lao9
  • 开始时间 开始时间
L

lao9

Unregistered / Unconfirmed
GUEST, unregistred user!
众位高手, 请教一个api问题: <br>delphi4的demos目录下有一个virtuallistview demo, 现在在这个form上<br>添加button1, label1,label2. 并添加如下代码: <br>procedure button1onclick; <br>var &nbsp;hwnd1: Thandle; <br>&nbsp; &nbsp; &nbsp;text1: Pchar; <br>begin <br>&nbsp; &nbsp; &nbsp;hwnd1:= listview.handle; <br>&nbsp; &nbsp; &nbsp;label1.caption:= inttohex(hwnd1,8); <br>&nbsp; &nbsp; &nbsp;getmem(text1,50); <br>&nbsp; &nbsp; &nbsp;listview_getitemtext(hwnd1,0,0,text1,50); <br>&nbsp; &nbsp; &nbsp;label2.caption:= text1; <br>&nbsp; &nbsp; &nbsp;freemem(text1); <br>end; <br>运行这个demo, 按下button1, label1显示其中的listview的handle, &nbsp;<br>该值经winsight32验证是正确的, 同时label2显示出listview的第一个<br>item的名称, 该名称也是正确的.改变listview的item显示, label2的<br>显示也会正确改变. <br><br>现在, 先运行这个demo, 按下button1, label1显示handle, label2<br>显示item的名称. 再运行另外一个程序, 代码类似上一段, 如下: <br>procedure button21onclick; <br>var &nbsp;hwnd21: Thandle; <br>&nbsp; &nbsp; &nbsp;text21: Pchar; <br>begin <br>&nbsp; &nbsp; &nbsp;hwnd21:= 上面demo中的label1的显示值, 即demo中listview的handle; <br>&nbsp; &nbsp; &nbsp;label21.caption:=inttohex(hwnd21,8); <br>&nbsp; &nbsp; &nbsp;getmem(text21,50); <br>&nbsp; &nbsp; &nbsp;listview_getitemtext(hwnd21,0,0,text21,50); <br>&nbsp; &nbsp; &nbsp;label22.caption:= text21; <br>&nbsp; &nbsp; &nbsp;freemem(text21); <br>end; <br>运行后, label21的显示等于label1的显示, 按理label22的显示也应该<br>等于label2的显示, 但实际上label22显示的是乱七八糟的字符, 根本<br>与label2的显示不同,跟踪发现text21的内容与getmem时的一样,根本<br>没有改变; <br>请教, text21为何不能正确改变, 为何对同一程序中的listview用<br>getitemtextAPI函数能正常工作,而对另一程序中已知handle的<br>listview用getitemtextAPI函数就不能正常工作。 <br>即如何在自己的程序中写代码, 获得另一个应用程序中, 已知<br>handle的listview 中的item的名称? 谢谢! <br><br><br>&nbsp; <br><br>
 
g<br>有意思.
 
getitemtext api就是这样的, 只有程序内才能使用. 要在其他程序上用, 要把自己<br>挂在其他程序上, 具体问eyes:-)<br>
 
接受答案了.
 
后退
顶部