如何取得桌面上每一个图标的坐标以及序号??? 如何取得桌面上每一个图标的坐标以及序号??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //参考如下连接http://www.pcvc.net/category/content.asp?sendid=122 //Demouses CommCtrl;procedure TForm1.Button1Click(Sender: TObject);var hDeskTop: HWND; dwProcessId: DWORD; hProcess: THandle; pv: Pointer; pt: TPoint; vCardinal: Cardinal;begin(* 取桌面 ListView 的句柄 *) hDeskTop := FindWindow('progman', nil); hDeskTop := FindWindowEx(hDeskTop, 0, 'shelldll_defview', nil); hDeskTop := FindWindowEx(hDeskTop, 0, 'syslistview32', nil);(* 取 explorer.exe 句柄. 注意 OpenProcess 的参数 *) GetWindowThreadProcessId(hDeskTop, @dwProcessId); hProcess := OpenProcess(PROCESS_VM_READ or PROCESS_VM_OPERATION, False, dwProcessId);(* 在 explorer.exe 空间内分配内存 *) pv := VirtualAllocEx(hProcess, nil, SizeOf(TPoint), MEM_COMMIT, PAGE_READWRITE);(* 给桌面 ListView 窗口发一 LVM_GETITEMPOSITION 取 "我的电脑" 坐标 *) ListView_GetItemPosition(hDeskTop, 1, PPoint(pv)^);(* 把由 LVM_GETITEMPOSITION 获得的坐标数据复制到 pt 结构 *) vCardinal := 0; ReadProcessMemory(hProcess, pv, @pt, SizeOf(TPoint), vCardinal); Caption := Format('%d,%d', [pt.X, pt.Y]);(* 释放内存, 句柄 *) VirtualFreeEx(hProcess, pv, 0, MEM_RELEASE); CloseHandle(hProcess);end; iocp监听到的数据显示出来 toolbar 和MainMenu1关联的问题 一个三层问题!! 主从表问题? 有没有这样的组件? 从数据库中读出来的这种HTML代码如何显示呀? 聪明的程序员用Delphi,大家都是高智商的同志。请问各位如何管理自己非常多的资料,文章。方便检索和管理? 大家来开心一下,版主请不要删 谁知道正版delphi和vc的价格? 紧急求助,关于NT下文件目录共享的问题 文件打开问题 郁闷啊(到一家公司就是上网),散分!
http://www.pcvc.net/category/content.asp?sendid=122
uses CommCtrl;procedure TForm1.Button1Click(Sender: TObject);
var
hDeskTop: HWND;
dwProcessId: DWORD;
hProcess: THandle;
pv: Pointer;
pt: TPoint;
vCardinal: Cardinal;
begin
(* 取桌面 ListView 的句柄 *)
hDeskTop := FindWindow('progman', nil);
hDeskTop := FindWindowEx(hDeskTop, 0, 'shelldll_defview', nil);
hDeskTop := FindWindowEx(hDeskTop, 0, 'syslistview32', nil);(* 取 explorer.exe 句柄. 注意 OpenProcess 的参数 *)
GetWindowThreadProcessId(hDeskTop, @dwProcessId);
hProcess := OpenProcess(PROCESS_VM_READ or PROCESS_VM_OPERATION,
False, dwProcessId);(* 在 explorer.exe 空间内分配内存 *)
pv := VirtualAllocEx(hProcess, nil, SizeOf(TPoint), MEM_COMMIT, PAGE_READWRITE);(* 给桌面 ListView 窗口发一 LVM_GETITEMPOSITION 取 "我的电脑" 坐标 *)
ListView_GetItemPosition(hDeskTop, 1, PPoint(pv)^);(* 把由 LVM_GETITEMPOSITION 获得的坐标数据复制到 pt 结构 *)
vCardinal := 0;
ReadProcessMemory(hProcess, pv, @pt, SizeOf(TPoint), vCardinal);
Caption := Format('%d,%d', [pt.X, pt.Y]);
(* 释放内存, 句柄 *)
VirtualFreeEx(hProcess, pv, 0, MEM_RELEASE);
CloseHandle(hProcess);
end;