读取Windows桌面图标的名字和位置,32bit程序读取64bit进程

关于读取Windows桌面的图标名字和位置,网上能找到很多现成的程序

例如

http://stackoverflow.com/questions/5369155/getting-text-from-syslistview32-in-64bit

http://bbs.csdn.net/topics/390624481?page=1

还能找到很多,但是程序都有一个问题,就是在64位win7下,程序编译成32位模式,无法获取。(32位编译32位运行,或者64位编译64位运行都没问题。但是,现在的软件应该都是这个模式,因为要支持xp,又想只出一个版本,只出一个32位版本的方法性价比最高)

这个问题的关键在于跨32位和64位进程操作的时候,比如32位进程读写64位进程(这是最常见的情况),传递的数据结构需要适应64位进程。

回到题目的问题

读取Windows桌面图标的原理很简单

核心就是找到桌面句柄,通过SendMessage(LVM_GETITEMTEXT)获得文字

LVITEM结构定义

typedef struct tagLVITEMW
{
    UINT mask;
    int iItem;
    int iSubItem;
    UINT state;
    UINT stateMask;
    LPWSTR pszText;
    int cchTextMax;
    int iImage;
    LPARAM lParam;
#if (_WIN32_IE >= 0x0300)
    int iIndent;
#endif
#if (_WIN32_WINNT >= 0x0501)
    int iGroupI
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值