#2
东海ECS2023-04-21 19:08
要寻找桌面的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头文件,或者手动声明这些常量和函数。 |
一般都是双击桌面的图标启动程序的
比如:现在我想让程序自动寻找桌面的QQ图标的坐标,如何寻找 ??