如何发送一个点击消息给目标程序Tlistview的第一个ITEM 各位朋友,想请教一下,小弟现在想通过发送消息的方法来实现“点击”的功能,如何发送一个消息,才能实现点击了ListView里面的第一个ITEM的功能,请各位朋友赐教,谢谢!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有一点需要注明的是,目标程序并不是自己用DELPHI开发出来的程序的,但通过使用SPY++,知道目标程序所使用的类是Tlistview,现在需要点击该Listview里面的第一个ITEM,请各位朋友赐教,衷心感谢! 下面是通过消息控制item的选中,这是同一程序中的,如果是其他程序,就需要用findwindow,findwindowex的方法找到listview的句柄var LvItem: TLVItem;begin LvItem.mask := LVIF_STATE; LvItem.state := LVIS_SELECTED + LVIS_FOCUSED + LVIS_ACTIVATING ; LvItem.stateMask := DWord(-1); SendMessage(ListView1.Handle, LVM_SETITEMSTATE, 0, Integer(@LvItem));end; 首先很感谢楼上各位朋友的热心回复,另外,2楼的朋友,小弟经过测试,代码如下,点击按钮之后,会提示“找到”,但就是实现不是点击的功能,请再次赐教,谢谢!!!procedure TForm1.Button1Click(Sender: TObject);var LvItem: TLVItem; h:THandle;begin h := FindWindow(nil, pchar('对方程序的标题'));if h>0 thenShowMessage('找到'); LvItem.mask := LVIF_STATE; LvItem.state := LVIS_SELECTED + LVIS_FOCUSED + LVIS_ACTIVATING; LvItem.stateMask := DWord(-1); SendMessage(h, LVM_SETITEMSTATE, 0, Integer(@LvItem));end; 上面的代码不是用来点击的,只是用来选择的,相当于点选,要实现点击我试过发消息没有成功,不过你可以先找到Item的位置(Commctrl单元里有),找到后用SetCursorPos定位,再用mouse_event模拟点击或者双击 把SPY++的消息类型过滤到下再看 软件自动打开的网页地址 如何抓取全部链接地址 delphi DrawGrid1单元格多行文本垂直居中显示的最简单方法 仓库月报中如何判断某一月的日期范围? 求万年历源码!最好有带阴历的。 sql如何写 请问VCL控件和ACTIVE控件一样吗? 关于插入记录的问题! 我MM摔伤了,希望她早日恢复!~~~~散分~~~~(一) 只知道控件的句柄,怎么设置他的align属性,在线,立即给分 安装RX275出现“file not found:'rashell.dcu'",怎么回事?而在同一目录是有此文件的。 排序``` 问一个copydatastruct的参数dwdata的作用
下面是通过消息控制item的选中,这是同一程序中的,如果是其他程序,就需要用findwindow,findwindowex的方法找到listview的句柄
var
LvItem: TLVItem;
begin
LvItem.mask := LVIF_STATE;
LvItem.state := LVIS_SELECTED + LVIS_FOCUSED + LVIS_ACTIVATING ;
LvItem.stateMask := DWord(-1);
SendMessage(ListView1.Handle, LVM_SETITEMSTATE, 0, Integer(@LvItem));
end;
var
LvItem: TLVItem;
h:THandle;
begin h := FindWindow(nil, pchar('对方程序的标题'));
if h>0 then
ShowMessage('找到');
LvItem.mask := LVIF_STATE;
LvItem.state := LVIS_SELECTED + LVIS_FOCUSED + LVIS_ACTIVATING;
LvItem.stateMask := DWord(-1);
SendMessage(h, LVM_SETITEMSTATE, 0, Integer(@LvItem));
end;