C++ 获取 Windows 11 文件资源管理器当前选项卡路径
以下是使用 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 版本的文件资源管理器,并且可能因为文件资源管理器的版本或其他因素而无法正常工作。
原文地址: https://www.cveoy.top/t/topic/oOdh 著作权归作者所有。请勿转载和采集!