to sunfl:<br>我是这样写代码的:<br>char *pText;<br>pText=(char *) malloc(1024);<br>ListView_GetItemText(pp1,ListView_GetNextItem(pp1,-1,LVNI_ALL),0,pText,1024);<br>pp1是其它应用程序的ListView句柄。<br>编译时没有错,但运行完ListView_GetItemText时会造成被GET应用程序的出错关闭。<br>我还发现LISTVIEW内有图标,是不是跟图标有关系?<br>
wz_hzb:<br>看看delphi带的win32api的帮助吧<br>获取内容可以用 ListView_GetItemText(),它等同于发LVM_GETITEMTEXT消息。<br>The ListView_GetItem macro retrieves the text of a list view item or subitem. You can use this macro or explicitly send the LVM_GETITEMTEXT message.<br>但是还有帮助没说明的就是只能在ListView的同一进程使用,才行的。<br>原因是ListView_GetItemText()是向同一进程的pszText指针写内容的。<br>如直接向另一进程的其中ListView发LVM_GETITEMTEXT消息就会可能出现你上述的错误。<br>因为内容写到ListView进程的的地址上去了。<br>BTW:能够用指针传数据的win32消息,据我所知只有wm_getitem,wm_setitem,wm_copydata等几个<br>,microsoft用特别的技术实现的。<br>那该如何使用LVM_GETITEMTEXT消息获得另一进程的ListView的内容呢?<br>方法就是 windowhook。<br>windowhook能使winhook所在的dll进入另一进程的地址空间,再在该dll中用<br>ListView_GetItemText()获得ListView的内容。<br>有关windowhook,可以用hook作关键字查询以前的贴子