设为首页收藏本站

 找回密码
 立即注册

只需一步,快速开始

搜索
查看: 122|回复: 11

[实用软件] Windows右键【复制多行文件完整路径】

  [复制链接]
累计签到:25 天
连续签到:3 天
灌水成绩
11
47
4600
主题
帖子
积分

等级头衔

ID : 670

助理工程师

积分成就 测量币 : 4600
在线时间 : 0 小时
注册时间 : 2026-3-22
最后登录 : 2026-7-5

勋章
UID勋章测量学徒测量员
发表于 2026-4-5 09:50:18 | 显示全部楼层 |阅读模式 IP:香港
尝试了多次,包括VBS、NirCMD、PowerShell都是失败告终:

  • Windows Registry Editor Version 5.00

  • [HKEY_CLASSES_ROOT\*\shell\copypath]
  • @="复制文件完整路径"
  • "Icon"="D:\\网络相关\\袖珍版IDM.exe,0"

  • [HKEY_CLASSES_ROOT\*\shell\copypath\command]@="\"d:\\CopyMultiPath.exe\" \"%1\""
末了一生气,干脆使用VS2022专门开发一下吧:
<ol>#define _CRT_SECURE_NO_WARNINGS // 1. 禁用安全警告
#include
#include
#include
#include
#include

// 使用 wchar_t 处理 Unicode,确保中文路径不乱码
void SetClipboardUnicode(const std::wstring& text) {
    if (!OpenClipboard(nullptr)) return;
    EmptyClipboard();
    size_t size = (text.size() + 1) * sizeof(wchar_t);
    HGLOBAL hGlob = GlobalAlloc(GMEM_MOVEABLE, size);
    if (hGlob) {
        memcpy(GlobalLock(hGlob), text.c_str(), size);
        GlobalUnlock(hGlob);
        SetClipboardData(CF_UNICODETEXT, hGlob);
    }
    CloseClipboard();
}

int wmain(int argc, wchar_t* argv[]) { // 使用 wmain 接收宽字符参数
    if (argc < 2) return 0;

    // 2. 获取临时文件路径
    wchar_t tempPath[MAX_PATH];
    GetTempPathW(MAX_PATH, tempPath);
    std::wstring tempFile = std::wstring(tempPath) + L"xcopy_paths.tmp";

    // 3. 追加路径到临时文件 (使用二进制模式并写入 UTF-16)
    std::wofstream ofs(tempFile, std::ios::app);
    ofs.imbue(std::locale("")); // 适配体系语言
    ofs
累计签到:34 天
连续签到:1 天
灌水成绩
2
206
5184
主题
帖子
积分

等级头衔

ID : 845

助理工程师

积分成就 测量币 : 5184
在线时间 : 0 小时
注册时间 : 2026-2-18
最后登录 : 2026-7-3

勋章
UID勋章测量学徒测量员
发表于 2026-4-5 09:55:49 | 显示全部楼层 IP:香港
最后发现上传时,找不到路径,一琢磨多了一个换行,所以最后有了一个修复版本。
支持单行路径 和 多行路径,这样就无烦恼了。
回复

使用道具 举报

累计签到:31 天
连续签到:2 天
灌水成绩
1
58
3823
主题
帖子
积分

等级头衔

ID : 761

助理工程师

积分成就 测量币 : 3823
在线时间 : 0 小时
注册时间 : 2026-3-6
最后登录 : 2026-7-2

勋章
UID勋章测量学徒测量员
发表于 2026-5-11 00:54:36 | 显示全部楼层 IP:欧洲和中东地区
看完这篇终于搞懂原理了。
回复

使用道具 举报

累计签到:35 天
连续签到:2 天
灌水成绩
0
73
3908
主题
帖子
积分

等级头衔

ID : 777

助理工程师

积分成就 测量币 : 3908
在线时间 : 0 小时
注册时间 : 2025-10-24
最后登录 : 2026-7-3

勋章
UID勋章测量学徒测量员
发表于 2026-5-27 00:27:53 | 显示全部楼层 IP:广东东莞
适合查漏补缺,巩固知识点。
回复

使用道具 举报

累计签到:7 天
连续签到:1 天
灌水成绩
0
38
2121
主题
帖子
积分

等级头衔

ID : 1184

高级技术员

积分成就 测量币 : 2121
在线时间 : 0 小时
注册时间 : 2025-10-31
最后登录 : 2026-6-14

勋章
测量员UID勋章测量学徒
发表于 2026-5-27 00:27:53 | 显示全部楼层 IP:广东东莞
不错
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
灌水成绩
0
23
1122
主题
帖子
积分

等级头衔

ID : 1660

高级技术员

积分成就 测量币 : 1122
在线时间 : 0 小时
注册时间 : 2026-5-25
最后登录 : 2026-6-14

勋章
测量员
发表于 2026-5-27 00:43:19 | 显示全部楼层 IP:广东东莞
看完收获很大,感谢无私分享。
回复

使用道具 举报

累计签到:34 天
连续签到:1 天
灌水成绩
1
212
4469
主题
帖子
积分

等级头衔

ID : 889

助理工程师

积分成就 测量币 : 4469
在线时间 : 0 小时
注册时间 : 2026-1-31
最后登录 : 2026-6-16

勋章
UID勋章测量学徒测量员
发表于 2026-5-27 01:36:20 | 显示全部楼层 IP:广东东莞
很适合作为学习资料收藏。
回复

使用道具 举报

尚未签到

灌水成绩
1
38
1603
主题
帖子
积分

等级头衔

ID : 1227

高级技术员

积分成就 测量币 : 1603
在线时间 : 0 小时
注册时间 : 2026-3-31
最后登录 : 2026-7-1

勋章
测量员UID勋章测量学徒
发表于 2026-6-1 00:23:53 | 显示全部楼层 IP:广东东莞
很多技巧平时工作中真的能用。
回复

使用道具 举报

累计签到:31 天
连续签到:1 天
灌水成绩
0
52
3412
主题
帖子
积分

等级头衔

ID : 730

助理工程师

积分成就 测量币 : 3412
在线时间 : 0 小时
注册时间 : 2026-4-4
最后登录 : 2026-6-18

勋章
UID勋章测量学徒测量员
发表于 2026-6-1 00:25:32 | 显示全部楼层 IP:广东东莞
步骤完整,不会出现半路卡住。
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
灌水成绩
0
28
122
主题
帖子
积分

等级头衔

ID : 2871

测量学徒

积分成就 测量币 : 122
在线时间 : 0 小时
注册时间 : 2026-5-28
最后登录 : 2026-6-30

勋章
发表于 2026-6-18 15:23:32 | 显示全部楼层 IP:美国
适合自学,不用再到处找资料。
回复

使用道具 举报

快速回复换一批
遇见神贴岂能不顶
硬核干货! 每一个步骤都写得清清楚楚,给楼主的大师级分享点赞! 🏆💡
前排围观! 搬好小板凳,坐看大佬们在线battle技术。 🪑🍿
自古二楼出人才? 我来占个前排,楼主继续,不要停! 🏃‍♂️💨
马克留名。 顺便问一句,有没有同行遇到过类似的问题?求交流! 👋👥
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|精密测量技术论坛 ( 桂ICP备2026007449号-1 )

GMT+8, 2026-7-5 16:29 , Processed in 0.155356 second(s), 51 queries .

Powered by 精密测量技术论坛

© 2025-2026 联系站长

快速回复 返回顶部 返回列表