请问 怎么用sendmessage 获得listbox的里面的内容!!!! (30分)

  • 主题发起人 主题发起人 我不怕你
  • 开始时间 开始时间

我不怕你

Unregistered / Unconfirmed
GUEST, unregistred user!
其实我就是想知道怎么样在我的程序中获得其他程序的listbox里的内容
 
我也想知道,顶一下
 
WM_GetWindowtext不行吗?我没试过
 
LB_GETANCHORINDEX<br>LB_GETCARETINDEX<br>LB_GETCOUNT<br>LB_GETCURSEL<br>LB_GETHORIZONTALEXTENT<br>LB_GETITEMDATA<br>LB_GETITEMHEIGHT<br>LB_GETITEMRECT<br>LB_GETLOCALE<br>LB_GETSEL<br>LB_GETSELCOUNT<br>LB_GETSELITEMS<br>LB_GETTEXT<br>LB_GETTEXTLEN<br>LB_GETTOPINDEX<br><br>sendmessage "handle of listbox" , "msg", wparam,lparam<br><br>&nbsp;具体的看win32帮助
 
上面的仁兄说的我试过 不知道为什么取不到<br>我曾经做过 也得到过可以忘记了这个"msg"<br>是输入的什么了 我试了好多就是没得到 心里好烦。。。。
 
就是LB_GETTEXT
 
取得它的handle 再用GetWindowText函数
 
上面的试过 没有得到啊<br>不知道是什么原因
 
我也想知道 ^_^
 
取得它的handle 再发送消息LB_GETTEXT<br>&nbsp;<br>&nbsp;<br>
 
取得它的handle 再发送消息LB_GETTEXT<br>我是这个做的<br>sendmessage(handle,lb_gettext,0,0)<br><br>可是什么也没得到
 
晕,那样能得到才奇怪呢<br>LB_GETTEXT的调用规则:<br>An application sends an LB_GETTEXT message to retrieve a string from a list box. <br><br>LB_GETTEXT <br>wParam = (WPARAM) index; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// item index <br>lParam = (LPARAM) (LPCTSTR) lpszBuffer; // address of buffer <br>不过在其它程序中,也许需要注入DLL解决指针问题
 
var<br>&nbsp; Hwnd: THandle;<br>&nbsp; S: string;<br>&nbsp; Count, I: Integer;<br>begin<br>&nbsp; //假设另一个程序的窗口的类名是TForm1,ListBox的类名是TListBox,这里自己做相应修改<br>&nbsp; Hwnd := FindWindowEx(FindWindow('TForm1',nil),0,'TListBox',nil);<br>&nbsp; if Hwnd = 0 then ShowMessage('not found!');<br><br>&nbsp; Count := SendMessage(Hwnd, LB_GETCOUNT, 0, 0);<br>&nbsp; for I := 0 to Count - 1 do<br>&nbsp; begin<br>&nbsp; &nbsp; SetLength(S, 255);<br>&nbsp; &nbsp; SetLength(S, SendMessage(Hwnd, LB_GETTEXT, I, Integer(Pointer(S))));<br>&nbsp; &nbsp; Memo1.Lines.Add(s);<br>&nbsp; end;<br>end;
 
多人接受答案了。
 
后退
顶部