Windows编程中如何获取Windows桌面快捷方式的坐标和大小

Windows编程中如何获取Windows桌面快捷方式的坐标和大小,第1张

DWORD dwProcessId;

HWND hDeskTop;

hDeskTop = ::FindWindow( "progman", NULL );

hDeskTop = ::FindWindowEx( hDeskTop, 0, "shelldll_defview", NULL );

hDeskTop = ::FindWindowEx( hDeskTop, 0, "syslistview32", NULL ); //获取桌面窗口句柄;

GetWindowThreadProcessId(hDeskTop, &dwProcessId);//通过桌面窗口句柄获取此窗口所在进程的PID,其实就是explorer进程

HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessId);//打开指定PID进程,取得进程句柄

LPVOID lpvPt = VirtualAllocEx(hProcess,NULL,sizeof(POINT),MEM_COMMIT,PAGE_READWRITE);//在指定进程里面申请一个POINI结构大小的空间

POINT pt;

ListView_GetItemPosition(hDeskTop,1,lpvPt);//获取第一个图标的坐标,存入lpvPt

ReadProcessMemory(hProcess,lpvPt,&pt,sizeof(POINT),NULL);

//lpvPt不是本进程里面的,不能使用,所以就要

利用ReadProcessMemory从指定进程给读出来

VirtualFreeEx(hProcess, lpvPt, 0, MEM_RELEASE);

释放申请的空间

CloseHandle(hProcess);//关闭句柄

最后得出的pt就是你要的哪个坐标,这个是求第一个图标的坐标

ListView_GetItemPosition(hDeskTop,1,lpvPt);

想改求其他的,把1换成你要的哪个就可以了

我还有个获取桌面所有图标名称的程序,要的话把邮箱留下<原理和实现过程全部有解释>

你只能通过添加一个OnScrollListener 的监听,来获listview scroll 到的位置,其中 这个监听下有两个方法,onScroll 和 onScrollStateChanged 通过这两个方法,你就可以获知,listview 被滑动到哪一行。具体方法内容可以看API。 值得注意的是,这个是个listener ,也就是说,在你listview 没有被滑动的时候,是不会回调这两个方法的。

另外,楼上说的getScrollX 和getScrollY 是继承于View 对象的。代表的只是整个listview控件被偏移的大小而已。

第四列。Android是一个以Linux为基础的半开源 *** 作系统,主要用于移动设备,由Google和开放手持设备联盟开发与领导。Android系统最初由安迪·鲁宾制作,最初主要支持手机。2005年8月17日被Google收购。给listview添加值的时候应该是有个存放数据的list,然后listget(position)就可以获取点击的第四列了。2007年11月5日,Google与84家硬件制造商、软件开发商及电信营运商组成开放手持设备联盟来共同研发改良Android系统并生产搭载Android的智慧型手机,并逐渐拓展到平板电脑及其他领域上。随后,Google以Apache免费开源许可证的授权方式,发布了Android的源代码。

以上就是关于Windows编程中如何获取Windows桌面快捷方式的坐标和大小全部的内容,包括:Windows编程中如何获取Windows桌面快捷方式的坐标和大小、android 中如何获取listview中scroll的位置、androidlistview获取点击的第几列等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9759952.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存