C++ 获取鼠标点击文件管理器时的当前路径
C++ 获取鼠标点击文件管理器时的当前路径
本文介绍如何使用 C++ 和 Win API 获取鼠标点击文件管理器时的当前路径。
步骤:
- 使用
GetCursorPos函数获取鼠标点击的位置坐标。 - 使用
HWND WindowFromPoint(POINT point)函数获取该坐标下的窗口句柄。 - 使用
GetWindowText函数获取该窗口的标题。 - 判断标题是否为 '资源管理器',如果是,则使用
SendMessage函数向该窗口发送消息,获取当前文件夹路径。
代码实现:
#include <iostream>
#include <Windows.h>
int main() {
POINT pt;
GetCursorPos(&pt); // 获取鼠标点击的位置坐标
HWND hWnd = WindowFromPoint(pt); // 获取该坐标下的窗口句柄
char title[256];
GetWindowText(hWnd, title, sizeof(title)); // 获取窗口标题
if (strcmp(title, "资源管理器") == 0) { // 判断是否为文件管理器
char path[MAX_PATH];
SendMessage(hWnd, WM_COMMAND, MAKEWPARAM(0x0111, 0x0034), (LPARAM)0); // 向窗口发送消息,获取当前文件夹路径
GetDlgItemText(hWnd, 0x047C, path, MAX_PATH); // 获取路径信息
std::cout << "当前路径为:" << path << std::endl; // 输出路径
}
return 0;
}
说明:
WM_COMMAND消息用于触发文件管理器内部的命令,MAKEWPARAM(0x0111, 0x0034)表示获取当前文件夹路径的命令。GetDlgItemText函数用于获取指定窗口控件的文本,0x047C是文件管理器中显示当前路径的文本框的 ID。
注意:
- 本代码仅在 Windows 操作系统下有效。
- 文件管理器界面可能存在变动,导致代码失效。
- 使用本代码获取路径信息需要谨慎,避免获取到错误或不安全的信息。
原文地址: https://www.cveoy.top/t/topic/oD3c 著作权归作者所有。请勿转载和采集!