以下是使用 C++ 代码获取 Windows 11 文件资源管理器中当前活动选项卡的路径的示例:

#include <windows.h>
#include <shlwapi.h>
#include <iostream>

#pragma comment(lib, "shlwapi.lib")

int main()
{
    HWND hwnd = FindWindow(TEXT("CabinetWClass"), NULL);
    if (hwnd == NULL)
    {
        std::cerr << "Could not find file explorer window." << std::endl;
        return 1;
    }

    HWND workerw = NULL;
    do
    {
        workerw = FindWindowEx(hwnd, workerw, L"WorkerW", NULL);
        if (workerw != NULL)
        {
            HWND folder = FindWindowEx(workerw, NULL, L"SysListView32", NULL);
            if (folder != NULL)
            {
                wchar_t path[MAX_PATH];
                SendMessage(folder, LVM_GETITEMTEXTW, (WPARAM)-1, (LPARAM)path);
                PathRemoveBlanks(path);
                std::wcout << "Current path: " << path << std::endl;
                return 0;
            }
        }
    } while (workerw != NULL);

    std::cerr << "Could not find file explorer folder view." << std::endl;
    return 1;
}

该示例程序首先通过 FindWindow 函数查找文件资源管理器窗口的句柄。然后,它使用 FindWindowEx 函数和窗口类名 'WorkerW' 找到文件资源管理器的工作区窗口句柄。接着,程序使用 FindWindowEx 函数和窗口类名 'SysListView32' 找到文件资源管理器的文件夹视图窗口句柄。最后,程序使用 SendMessage 函数和消息 LVM_GETITEMTEXTW 获取文件夹视图控件中当前选中项的文本,即选项卡的路径。最终,程序打印选项卡路径到控制台。

需要注意的是,该程序仅适用于 Windows 11 版本的文件资源管理器,并且可能因为文件资源管理器的版本或其他因素而无法正常工作。

C++ 获取 Windows 11 文件资源管理器当前选项卡路径

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

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