社区
Windows SDK/API
帖子详情
怎样选中其他程序中的listview控件中的第一行项目?
juziling
2004-11-11 08:47:56
程序中需要控制其他程序的某些功能.我获得的该listview空间的句柄.想动态选中listview控件的第一个项目.然后点击该程序的一个按钮完成一个功能.
怎么选择我没搞明白.请大虾指点一二.
这个事情很急人的...55555555:(
分不够我开帖送之......
...全文
334
12
打赏
收藏
怎样选中其他程序中的listview控件中的第一行项目?
程序中需要控制其他程序的某些功能.我获得的该listview空间的句柄.想动态选中listview控件的第一个项目.然后点击该程序的一个按钮完成一个功能. 怎么选择我没搞明白.请大虾指点一二. 这个事情很急人的...55555555:( 分不够我开帖送之......
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hottey
2004-11-11
打赏
举报
回复
也许改成这样的,你看得更清楚,老大的代码肯定是对的,哈哈!
try
vItem.stateMask := LVIS_DROPHILITED; //有个小框框
vItem.state := LVIS_DROPHILITED; //
WriteProcessMemory(vProcess, vPointer, @vItem,
SizeOf(TLVItem), vNumberOfBytesRead);
SendMessage(mHandle, LVM_SETITEMSTATE, mIndex, lparam(vPointer));
....
你跟踪至CommCtrl的ListView_SetItemState函数就知道怎么回事了^_^
王集鹄
2004-11-11
打赏
举报
回复
-_-!!!!!!!!
to juziling:你到底测试过没?其他进程一样获取~~
SetListViewIndex(换成你取得的句柄, 0);
你还必须确定这个句柄是ListView的句柄~~
我回答问题是经过测试的~~
juziling
2004-11-11
打赏
举报
回复
zswang(伴水清清)(专家门诊清洁工) 你的程序在同进程中是有效的 , 但我要控制别的程序中的控件阿:( 能有什么好方法么?
王集鹄
2004-11-11
打赏
举报
回复
//参考如下代码~~
//原理:可以通过消息LVM_SETITEMSTATE设置各项的状态,lparam参数是一个局部指针,所以需要把数据填写在该进程空间里~~
uses CommCtrl;
procedure SetListViewIndex(mHandle: THandle; mIndex: Integer);
var
vProcessId: DWORD;
vProcess: THandle;
vPointer: Pointer;
vNumberOfBytesRead: Cardinal;
vItem: TLVItem;
begin
GetWindowThreadProcessId(mHandle, @vProcessId);
vProcess := OpenProcess(PROCESS_VM_OPERATION or PROCESS_VM_READ or
PROCESS_VM_WRITE, False, vProcessId);
vPointer := VirtualAllocEx(vProcess, nil, 4096, MEM_RESERVE or MEM_COMMIT,
PAGE_READWRITE);
try
vItem.stateMask := LVIS_FOCUSED;
vItem.state := LVIS_FOCUSED;
WriteProcessMemory(vProcess, vPointer, @vItem,
SizeOf(TLVItem), vNumberOfBytesRead);
SendMessage(mHandle, LVM_SETITEMSTATE, mIndex, lparam(vPointer));
vItem.stateMask := LVIS_SELECTED;
vItem.state := LVIS_SELECTED;
WriteProcessMemory(vProcess, vPointer, @vItem,
SizeOf(TLVItem), vNumberOfBytesRead);
SendMessage(mHandle, LVM_SETITEMSTATE, mIndex, lparam(vPointer));
finally
VirtualFreeEx(vProcess, vPointer, 0, MEM_RELEASE);
CloseHandle(vProcess);
end;
end; { SetListViewIndex }
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
SetListViewIndex(ListView1.Handle, 0);
end;
BigAngell
2004-11-11
打赏
举报
回复
学习...
beyondtkl
2004-11-11
打赏
举报
回复
LVM_REDRAWITEMS
LVM_SCROLL
LVM_SETBKCOLOR
LVM_SETBKIMAGE
LVM_SETCALLBACKMASK
LVM_SETCOLUMN
LVM_SETCOLUMNORDERARRAY
LVM_SETCOLUMNWIDTH
LVM_SETEXTENDEDLISTVIEWSTYLE
LVM_SETHOTCURSOR
LVM_SETHOTITEM
LVM_SETHOVERTIME
LVM_SETICONSPACING
LVM_SETIMAGELIST
LVM_SETITEM
LVM_SETITEMCOUNT
LVM_SETITEMPOSITION
LVM_SETITEMPOSITION32
LVM_SETITEMSTATE
LVM_SETITEMTEXT
LVM_SETSELECTIONMARK
LVM_SETTEXTBKCOLOR
LVM_SETTEXTCOLOR
LVM_SETTOOLTIPS
LVM_SETUNICODEFORMAT
LVM_SETWORKAREAS
LVM_SORTITEMS
LVM_SUBITEMHITTEST
// 好像刷新后 listview默认就是指向第一项的。。。
beyondtkl
2004-11-11
打赏
举报
回复
你先去查一下 listview的相关操作,还有对应的消息。。。
zdq801104
2004-11-11
打赏
举报
回复
谢谢beyondtkl(大龙驹<弱水三K, 我取1bit>)
beyondtkl
2004-11-11
打赏
举报
回复
这些消息是WINDOWS定义的呀 windows or message.pas里面有。。
你就像伴水老大那样写就OK了。。。
zdq801104
2004-11-11
打赏
举报
回复
TO beyondtkl(大龙驹<弱水三K, 我取1bit>),大哥, 要使用你列出的消息怎么用?
王集鹄
2004-11-11
打赏
举报
回复
Windows的Exporer.exe是什么编写的?不是Delphi吧,我测试怎么可以?~~
你确定获取Handle是TListView(SysListView32)?~~
实在不行,就模拟按键Ctrl+Home(自己找吧)~~
juziling
2004-11-11
打赏
举报
回复
zswang(伴水清清)(专家门诊清洁工) 请不要生气好么 :)
你的程序在如何被控制的软件是用Delphi编写的就没问题.如果是其他语言编写的就无效了.
PB
控件
属性之
ListView
本文深入探讨了PowerBuilder
中
的
ListView
控件
,包括
控件
的四种显示样式,如大图标、小图标、列表和报表方式。文章重点介绍了如何动态构建
ListView
,切换显示样式,以及处理
选
中
对象。通过示例代码展示了如何使用DataStore动态填充数据,以及在不同显示样式间切换。此外,还解释了如何提取
选
中
项目
的内容,如通过SelectedIndex和
ListView
Item的属性获取信息。最后,列举了
ListView
的重要属性和事件,以及相关函数的用法,帮助开发者更好地理解和使用
ListView
控件
。
继续聊WPF——如何获取
ListView
中
选
中
的项
本文介绍如何在WPF应用
中
使用
ListView
进行数据绑定,并展示如何获取所选
项目
的具体信息。通过创建一个简单的员工类并绑定到
ListView
上,文章详细解释了在
ListView
的SelectedChanged事件
中
获取
选
中
项的过程。
C获取其他
程序
ListView
控件
中
的内容:开源
项目
推荐
本文推荐一个用C#编写的开源
项目
,可获取其他应用
程序
中
ListView
控件
的内容。该
项目
基于Windows API,能跨应用
程序
访问数据,主要功能有搜索
控件
、读取内容、处理展示数据。其适用于自动化测试、数据抓取等场景,适合有C#基础的开发者参考。
WPF使用
ListView
的SelectionChanged
选
中
后刷新
ListView
时如何避免再次触发SelectionChanged
WPF实现分页后用
ListView
显示图片列表,利用SelectionChanged实现单击
选
中
图片并显示到Image
控件
。但
选
中
项后刷新
ListView
会再次触发该事件,经调试找到简单有效的解决方法,即添加一个判断。
探索C WinForm新境界:一键美化
ListView
控件
本文推荐《C# WinForm
ListView
控件
美化资源文件》
项目
,该
项目
致力于解决C# WinForm开发
中
ListView
控件
标准UI难以满足美观需求的痛点。通过自定义列头绘制、个性化
选
中
效果、隔行染色等技术,提升了
控件
颜值和用户体验。
项目
具有轻量级集成、高度定制等特点,适用于多种场景。
Windows SDK/API
1,184
社区成员
22,326
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章