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换成你要的哪个就可以了
我还有个获取桌面所有图银局标名称的程序,要的话把邮箱留下<原理和实现过程全部有解释>
要确定坐标,首先要知道屏幕的坐标系有多大,也就是长宽是多少个像素。一个像素可以理解为一个点,一个屏幕能显示誉洞隐的最小的显示单位。在 *** 作系统上,我们可以通过查看屏幕分辨率来得知坐标系的大小。以我当前电脑的分辨率1920x1080为例,坐标的原点在庆厅左上角,在编程上,程序界面的也是以左上角为原点。如:g_hwnd=CreateWindow(ClassName,"静态控件演示",iWs_OverlappedWindow,iCw_UsedDefault,0,600,600,iNull,iNull,hInstance,iNull),注意:我们可以放置控件和编辑的区域是扣除边框的区域,所以创建一个600x600的窗体,那么实际到可颤告放置控件和编辑的区域大概是580x555。
1、电脑登录微信账号。
2、陆余旁电脑登录微信账号毁拦后,按Alt+A进行截图。
3、按Alt+A后,进入截图页面,但是不要截图,把鼠标放到左上角POS就早橡为(0,0),POS为position缩写,位置的意思。
4、移动鼠标,POS也就会跟着变化,就可以知道鼠标当前位置的坐标了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)