标题: [注册表类] 批处理能不能做到:模拟拖拽多个文件到一个软件界面上? [打印本页]
作者: lforl 时间: 2023-2-4 19:35 标题: 批处理能不能做到:模拟拖拽多个文件到一个软件界面上?
本帖最后由 lforl 于 2023-2-6 08:26 编辑
批处理能不能做到,模拟拖拽多个文件到一个软件界面上?
我想,做一个右键,运行一个批处理(写入注册表键值里去执行)模拟拖拽多个文件到软件界面上。
【缘起】
实际这个软件就是经典的拖把更名器。
它是2007年的作品,原来它有dll做的右键,它的右键添加文件功能是能支持到win7x32位系统的,但是没考虑到win10 x64这些后来的系统,所以在x64位的资源管理器下,dll接口不生效了。
所以我想,能否借助批处理(将批处理写入右键键值运行),模拟拖拽文件,到它的界面上,因为它的界面一直是支持拖放的。
下面图片如果首次加载不清晰的话,可以点击弹出新窗口查看:
软件本身可以支持拖拽,就是想做一个右键模拟出来(运行软件,并将文件加入到软件界面上):
隐约感觉这2个小工具可以,但不知怎么应用
http://www.maxoutput.com/SendMsg.html
http://www.bathome.net/viewthread.php?tid=62523
作者: xp3000 时间: 2023-2-5 10:52
既然32位可以,可以尝试把注册表导出,
然后REG转换BAT下,
把下面的照样子,
把路径改为下面%%a
ReNamer Pro是我觉得最好的一个,目前版本ReNamer 7.4
另外有一个最强,软件太大了,支持文件夹,有点慢
如果用ReNamer可以像这样添加右键支持:- @echo off
- @for /f "delims=" %%a in ('dir /a/s/b/on ReNamer.exe') do (
- reg add "HKLM\SOFTWARE\Classes\Directory\shell\ReNamer.Add" /f /ve /t REG_SZ /d "文件批量重命名"
- reg add "HKLM\SOFTWARE\Classes\Directory\shell\ReNamer.Add" /f /v "Icon" /t REG_SZ /d "\"%%a\",0"
- reg add "HKLM\SOFTWARE\Classes\Directory\shell\ReNamer.Add\command" /f /ve /t REG_SZ /d "\"%%a\" /enqueue \"%%1\""
- reg add "HKCR\*\shell\ReNamer.Add" /f /ve /t REG_SZ /d "文件批量重命名"
- reg add "HKCR\*\shell\ReNamer.Add" /f /v "Icon" /t REG_SZ /d "\"%%a\",0"
- reg add "HKCR\*\shell\ReNamer.Add\command" /f /ve /t REG_SZ /d "\"%%a\" /enqueue \"%%1\""
- )
- pause
复制代码
作者: xp3000 时间: 2023-2-5 11:05
忘记说了,保存BAT文件,放入软件所在文件夹,不然会搜索其他文件夹直到找到或找不到
作者: lforl 时间: 2023-2-5 11:40
本帖最后由 lforl 于 2023-2-5 12:20 编辑
回复 2# xp3000
谢谢xp3000兄。
ReNamer pro的确很优秀,操作弹窗设计规则略显繁复。
十几年来,一直用拖把更名,感觉它的模板更名非常方便。界面简单直观,基本覆盖90%的更名需要。
目前就是右键加文件到软件界面上不灵了,想通过批处理给他它续一下命。
根据你的代码,我照葫芦画瓢,能做出右键,也能弹出xTools.exe更名器界面。
就是还未能把文件加入到软件界面上,还差一步
在x32位系统它的右键添加文件到软件界面,是通过自带dll(regsvr32 xToolsEx.dll)而实现,经此dll转一手的。- @echo off
- @for /f "delims=" %%a in ('dir /a/s/b/on xTools.exe') do (
- reg add "HKLM\SOFTWARE\Classes\Directory\shell\xTools.Add" /f /ve /t REG_SZ /d "拖把更名器"
- reg add "HKLM\SOFTWARE\Classes\Directory\shell\xTools.Add" /f /v "Icon" /t REG_SZ /d "\"%%a\",0"
- reg add "HKLM\SOFTWARE\Classes\Directory\shell\xTools.Add\command" /f /ve /t REG_SZ /d "\"%%a\" /enqueue \"%%1\""
- reg add "HKCR\*\shell\xTools.Add" /f /ve /t REG_SZ /d "拖把更名器"
- reg add "HKCR\*\shell\xTools.Add" /f /v "Icon" /t REG_SZ /d "\"%%a\",0"
- reg add "HKCR\*\shell\xTools.Add\command" /f /ve /t REG_SZ /d "\"%%a\" /enqueue \"%%1\""
- )
- pause
复制代码
ReNamer pro能够做到,可能是因为支持/enqueue这个运行参数,接受文件列表。而拖把更名器,相关运行参数不知(或者是不存在)
作者: xp3000 时间: 2023-2-5 12:56
你没有导出注册表进行转换
打开这个软件
C:\Windows\regedit.exe
在这两个分支找到你的拖把更名器
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell
计算机\HKEY_CLASSES_ROOT\*\shell
两个分支的拖把更名器都要右键导出,
REG转换BAT,可以手打,
可以用REG转换BAT的批处理工具,这个以前保存了,现在不知道放哪了
也可以用Reg2all这个软件,转换为CMD,
转换后才是这种修改
这部分添加到转换的CMD文件头部,软件名称.exe改为你的程序名称
@echo off
@for /f "delims=" %%a in ('dir /a/s/b/on 软件名称.exe') do (
这部分添加到转换的CMD文件尾部
)
pause
然后是修改CMD文件中间的文件路径,把路径替换为%%a
作者: lforl 时间: 2023-2-5 14:06
回复 5# xp3000
感谢提示。我用RegWorkshop研究过注册表里里外外,拖把更名器原来的右键,不是通过注册表来展示右键的,它是通过注册dll来实现的。
因为从那两个注册表项目下(对应文件和文件夹),找不到任何关于它的痕迹。所以没法抄。ReNamer Pro倒是如兄所说那样。
Reg2all这软件很棒,之前我都不知有自动reg转bat的工具 收下了!多谢!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |