【发布时间】:2021-08-13 16:18:58
【问题描述】:
我正在为 .bat / .vbs 文件开发 Excel 插件。该插件有 2 个选项 (1) 创建一个新的 .bat / 和 .vbs 文件,以及 (2) 修改现有的 .bat 和 .vbs 文件。
“创建”选项效果很好,完全符合我们的需要。
我遇到了“修改”部分的问题。当用户选择“修改”时,Excel 表单将显示一个列表框。用户滚动列表并选择他们需要修改的列表。到此为止吧。
下一步是加载项打开(不运行).bat 和 .vbs 文件。我已经能够执行 .bat 文件;依次执行 .vbs 文件。但这不是我需要它做的。
如果我要手动打开 .bat 或 .vbs 文件。我会右键单击 .bat 或 .vbs 文件并选择“编辑”。相应的文件将在记事本中打开。然后我可以进行任何更改并保存文件。
我看起来重复的是使用 VBA 的“右键单击并选择编辑步骤”。
任何建议将不胜感激。提前感谢您的帮助....
【问题讨论】:
-
您可以使用注册表,例如:
HKEY_LOCAL_MACHINE\software\classes\.bat并使用其Default值通常为batfile,以访问其密钥,例如HKEY_LOCAL_MACHINE\software\classes\batfile,然后验证其默认值是否仍为Windows Batch File,如果是,则从其子键HKEY_LOCAL_MACHINE\software\classes\batfile\Shell\Edit\Command的Default值中获取内容,在未触及的系统上为"%SystemRoot%\System32\Notepad.exe" %1.您可能还需要检查相同密钥的HKEY_CURRENT_USER版本,然后使用.vbs再次检查 -
我建议您不要偷工减料,而只是假设最终用户从未修改过他们的系统或用户注册表。没有什么可以阻止他们根据需要使用不同的应用程序来处理文件,因此您不应该期望其他情况。
-
您需要执行这一行,而不是执行 .bat 文件:
notepad filename.bat。这也可以用于创建一个新的 .bat 文件,当它不存在时。 -
然而,@Aacini 假设从未进行过任何更改,这在技术上并不是所要求的。工作是复制右键单击
Edit选项,唯一的方法是在选择Edit时检索运行的命令。很多人不希望古老而毫无特色的 notepad.exe 来处理他们的脚本编辑。 -
@NandanA.............我使用了下面 Gokhan Aycan 的答案。它让我最接近我想要完成的目标。
标签: vba batch-file edit excel-addins