| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 853 人关注过本帖
标题:寻找桌面图标
只看楼主 加入收藏
lm68140318
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-10-2
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
寻找桌面图标
一般都是双击桌面的图标启动程序的

比如:现在我想让程序自动寻找桌面的QQ图标的坐标,如何寻找  ??
搜索更多相关主题的帖子: 图标 QQ 桌面 坐标 启动 
2023-04-21 07:17
东海ECS
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:Python
等 级:版主
威 望:32
帖 子:412
专家分:1646
注 册:2023-1-24
收藏
得分:20 
要寻找桌面的QQ图标的坐标,可以使用Windows API中的FindWindow和FindWindowEx函数来找到该图标所在的窗口句柄和控件句柄,然后使用GetWindowRect函数获取该控件的坐标。

以下是一个C++的示例代码,可以自动寻找桌面的QQ图标的坐标:

程序代码:
#include <iostream>
#include <Windows.h>
using namespace std;

int main()
{
    HWND hDeskTopWnd = GetDesktopWindow(); // 获取桌面窗口句柄
    HWND hFolderWnd = FindWindowEx(hDeskTopWnd, NULL, "Progman", "Program Manager"); // 获取"Progman"窗口句柄

    // 发送消息打开"Program Manager"窗口的子窗口
    SendMessage(hFolderWnd, 0x052C, NULL, NULL);
    SendMessage(hFolderWnd, 0x0110, NULL, NULL);
    SendMessage(hFolderWnd, 0x052C, NULL, NULL);

    // 获取"Program Manager"窗口下的所有子窗口
    HWND hWorkerWnd = NULL;
    while ((hWorkerWnd = FindWindowEx(hDeskTopWnd, hWorkerWnd, "WorkerW", NULL)) != NULL) {
        HWND hShellWnd = FindWindowEx(hWorkerWnd, NULL, "SHELLDLL_DefView", NULL); // 获取SHELLDLL_DefView窗口句柄
        if (hShellWnd != NULL) {
            HWND hShellViewWnd= FindWindowEx(hShellWnd, NULL, "SysListView32", "FolderView"); // 获取SysListView32窗口句柄
            if (hShellViewWnd != NULL) {
                // 获取SysListView32窗口的坐标
                RECT rect;
                GetWindowRect(hShellViewWnd, &rect);
                cout << "QQ icon's coordinates: (" << rect.left << ", " << rect.top << ")" << endl;
                break;
            }
        }
    }

    return 0;
}

注意,Windows API的操作需要管理员权限才能访问桌面上的图标,因此需要以管理员身份运行程序才能成功找到QQ图标的坐标。同时,程序中使用了一些Windows特定的常量和函数,需要包含Windows.h头文件,或者手动声明这些常量和函数。

会当凌绝顶,一览众山小.
2023-04-21 19:08
lm68140318
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-10-2
收藏
得分:0 
SendMessage(hFolderWnd, 0x052C, NULL, NULL);
    SendMessage(hFolderWnd, 0x0110, NULL, NULL);
    SendMessage(hFolderWnd, 0x052C, NULL, NULL);


没有窗口打开  ??
2023-04-22 20:58
快速回复:寻找桌面图标
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016624 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved