c++ 通过win api 如果鼠标点击的是在文件管理器那么输出文件管理器打开的路径
可以使用以下代码来实现:
#include <Windows.h>
#include <iostream>
int main()
{
HWND hwnd = GetForegroundWindow();
char title[256];
GetWindowText(hwnd, title, sizeof(title));
if (strcmp(title, "文件资源管理器") == 0) {
HWND hShellView = FindWindowEx(hwnd, NULL, "SHELLDLL_DefView", NULL);
if (hShellView != NULL) {
HWND hListView = FindWindowEx(hShellView, NULL, "SysListView32", NULL);
if (hListView != NULL) {
int selectedCount = ListView_GetSelectedCount(hListView);
if (selectedCount > 0) {
LVITEM lvItem = { 0 };
lvItem.mask = LVIF_TEXT;
lvItem.iItem = ListView_GetNextItem(hListView, -1, LVNI_SELECTED);
lvItem.iSubItem = 0;
lvItem.pszText = new char[MAX_PATH];
lvItem.cchTextMax = MAX_PATH;
ListView_GetItem(hListView, &lvItem);
std::cout << lvItem.pszText << std::endl;
delete[] lvItem.pszText;
}
}
}
}
return 0;
}
这段代码的作用是获取当前窗口的标题,如果是“文件资源管理器”,就在窗口中查找文件列表视图控件,然后获取选中的文件的路径。具体实现可以参考注释
原文地址: https://www.cveoy.top/t/topic/ha7L 著作权归作者所有。请勿转载和采集!