C++ 获取鼠标点击文件管理器时的当前路径

本文介绍如何使用 C++ 和 Win API 获取鼠标点击文件管理器时的当前路径。

步骤:

  1. 使用 GetCursorPos 函数获取鼠标点击的位置坐标。
  2. 使用 HWND WindowFromPoint(POINT point) 函数获取该坐标下的窗口句柄。
  3. 使用 GetWindowText 函数获取该窗口的标题。
  4. 判断标题是否为 '资源管理器',如果是,则使用 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 操作系统下有效。
  • 文件管理器界面可能存在变动,导致代码失效。
  • 使用本代码获取路径信息需要谨慎,避免获取到错误或不安全的信息。
C++ 获取鼠标点击文件管理器时的当前路径

原文地址: https://www.cveoy.top/t/topic/oD3c 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录