[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[注册表类] 批处理能不能做到:模拟拖拽多个文件到一个软件界面上?

本帖最后由 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

既然32位可以,可以尝试把注册表导出,
然后REG转换BAT下,
把下面的照样子,
把路径改为下面%%a

ReNamer Pro是我觉得最好的一个,目前版本ReNamer 7.4

另外有一个最强,软件太大了,支持文件夹,有点慢

如果用ReNamer可以像这样添加右键支持:
  1. @echo off
  2. @for /f "delims=" %%a in ('dir /a/s/b/on ReNamer.exe') do (
  3. reg add "HKLM\SOFTWARE\Classes\Directory\shell\ReNamer.Add" /f /ve /t REG_SZ /d "文件批量重命名"
  4. reg add "HKLM\SOFTWARE\Classes\Directory\shell\ReNamer.Add" /f /v "Icon" /t REG_SZ /d "\"%%a\",0"
  5. reg add "HKLM\SOFTWARE\Classes\Directory\shell\ReNamer.Add\command" /f /ve /t REG_SZ /d "\"%%a\" /enqueue \"%%1\""
  6. reg add "HKCR\*\shell\ReNamer.Add" /f /ve /t REG_SZ /d "文件批量重命名"
  7. reg add "HKCR\*\shell\ReNamer.Add" /f /v "Icon" /t REG_SZ /d "\"%%a\",0"
  8. reg add "HKCR\*\shell\ReNamer.Add\command" /f /ve /t REG_SZ /d "\"%%a\" /enqueue \"%%1\""
  9. )
  10. pause
复制代码


TOP

忘记说了,保存BAT文件,放入软件所在文件夹,不然会搜索其他文件夹直到找到或找不到

TOP

本帖最后由 lforl 于 2023-2-5 12:20 编辑

回复 2# xp3000


谢谢xp3000兄。
ReNamer pro的确很优秀,操作弹窗设计规则略显繁复。

十几年来,一直用拖把更名,感觉它的模板更名非常方便。界面简单直观,基本覆盖90%的更名需要。
目前就是右键加文件到软件界面上不灵了,想通过批处理给他它续一下命。

根据你的代码,我照葫芦画瓢,能做出右键,也能弹出xTools.exe更名器界面。
就是还未能把文件加入到软件界面上,还差一步
在x32位系统它的右键添加文件到软件界面,是通过自带dll(regsvr32 xToolsEx.dll)而实现,经此dll转一手的。
  1. @echo off
  2. @for /f "delims=" %%a in ('dir /a/s/b/on xTools.exe') do (
  3. reg add "HKLM\SOFTWARE\Classes\Directory\shell\xTools.Add" /f /ve /t REG_SZ /d "拖把更名器"
  4. reg add "HKLM\SOFTWARE\Classes\Directory\shell\xTools.Add" /f /v "Icon" /t REG_SZ /d "\"%%a\",0"
  5. reg add "HKLM\SOFTWARE\Classes\Directory\shell\xTools.Add\command" /f /ve /t REG_SZ /d "\"%%a\" /enqueue \"%%1\""
  6. reg add "HKCR\*\shell\xTools.Add" /f /ve /t REG_SZ /d "拖把更名器"
  7. reg add "HKCR\*\shell\xTools.Add" /f /v "Icon" /t REG_SZ /d "\"%%a\",0"
  8. reg add "HKCR\*\shell\xTools.Add\command" /f /ve /t REG_SZ /d "\"%%a\" /enqueue \"%%1\""
  9. )
  10. pause
复制代码
ReNamer pro能够做到,可能是因为支持/enqueue这个运行参数,接受文件列表。而拖把更名器,相关运行参数不知(或者是不存在)

TOP

你没有导出注册表进行转换
打开这个软件
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

TOP

回复 5# xp3000
感谢提示。我用RegWorkshop研究过注册表里里外外,拖把更名器原来的右键,不是通过注册表来展示右键的,它是通过注册dll来实现的。
因为从那两个注册表项目下(对应文件和文件夹),找不到任何关于它的痕迹。所以没法抄。ReNamer Pro倒是如兄所说那样。

Reg2all这软件很棒,之前我都不知有自动reg转bat的工具  收下了!多谢!

TOP

返回列表