- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
如何操作桌面上的图标
如何操作桌面上的图标,并取得图标的信息
2012 年 2 月 19 日 | Filed under: Windows程序设计 and tagged with: Windows API桌面图标是放在 SysListView32这个列表中,所以要想操作图标,要先得到了它的句柄,然后可以遍历它得到各桌面图标的句柄,下面的代码实现把桌面上的图标排成一个圆:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 voidC***::OnSetDeskIcon()
{
HWNDhwndParent = ::FindWindow(Progman,Program Manager);
HWNDhwndSHELLDLL_DefView = ::FindWindowEx( hwndParent,
NULL,SHELLDLL_DefView, NULL );
HWNDhwndSysListView32 = ::FindWindowEx( hwndSHELLDLL_DefView,
NULL,SysListView32,FolderView);
intNm = ListView_GetItemCount( hwndSysListView32 );
//取得图标的数目
for(inti = 0; i Nm; i++ )
{
intx = 400 + 150*cos( i * 2 * 3.1415926/Nm );
inty = 400 + 150*sin( i * 2 * 3.1415926/Nm );
::SendMessage( hwndSysListView32, LVM_SETITEMPOSITION, i,
MAKELPARAM( x,y));
}
ListView_RedrawItems(hwndSysListView32, 0,
ListView_GetItemCount(hwndSysListView32) - 1);
::UpdateWindow(hwndSysListView32);
}
操作了图标,那么怎样得到图标的信息呢,如图标的名称,大小,位置等等,在上一篇文章Stealing Programs Memory中提到了怎样取得别的进程中的信息,下面的代码实现了取得图标名称、位置、大小的功能:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 voidC***::OnSetDeskIcon()
{
HWNDhDestTop;
hDestTop = ::FindWindow(progman, NULL);
hDestTop = ::FindWindowEx(hDestTop, 0,shelldll_defview,
NULL);
hDestTop = ::FindWindowEx(hDestTop, 0,syslistview32,
NULL);
intcount=(int)::SendMessage( hDestTop, LVM_GETITEMCOUNT,
0, 0);
LVITEM lvi, *_lvi;
charitem[512], subitem[512];
char*_item, *_subitem;
unsignedlongpid;
HANDLEprocess;
GetWindowThreadProcessId( hDestTop, pid);
process=OpenProcess(PROCESS_VM_OPERATION|PROCESS_VM_READ
|PROCESS_VM_WRITE|PROCESS_QUERY_INFORMATION,
FALSE, pid);
_lvi=(LVITEM*)Virtual
您可能关注的文档
最近下载
- 第四章刺胞动物门之一.pptx
- 中国的经济发展.pptx VIP
- 17J008 挡土墙(重力式、衡重式、悬臂式)(必威体育精装版).pdf
- 空气能热泵热水机安装使用维修手册一.pdf
- 直播运营管理全套完整教学课件.pptx
- 2023年注册监理工程师继续教育电力工程专业考试试题及答案80分.pdf
- Q∕GDW 11897-2018- 调度自动化机房设计与建设规范.pdf
- 第4课《古代诗歌四首——闻王昌龄左迁龙标遥有此寄》课件(共27张PPT)2022—2023学年部编版语文七年级上册.pptx
- PDA TR27-1998 Pharmaceutical Package Integrity英文原版资料.pdf
- Q∕GDW 11897-2018 调度自动化机房设计与建设规范.docx
文档评论(0)