【发布时间】:2021-10-24 02:25:06
【问题描述】:
TL;DR
我想通过 Windows 文件夹快捷方式打开我的 Electron 应用程序(右键单击任意文件夹并单击 Run In My Electron App),并获取启动该应用程序的文件夹路径。
我设法使用 Windows 注册表创建了快捷方式,但我找不到获取启动应用程序的文件夹的路径的方法。 (在快捷方式中,“临时”)
所以在上面的快捷方式中,目标是知道电子应用程序内F:\ePC\Libraries\Videos\Loom\Temporary 的路径。 (并且路径应始终与启动应用程序的文件夹匹配)。
一个真实的工作示例:就像使用 WinRAR 时一样,您可以右键单击文件夹并单击“添加到存档...” - WinRAR 应用程序知道已右键单击的文件夹的路径在。 (有点像“打开文件”,但“打开文件夹”)。
另一个适用于 Electron 的真实示例是 Visual Studio Code,您可以右键单击文件夹并单击“使用代码打开”。他们是如何做到的?
我的尝试
我试图查看 Electron 的文档,但只找到了一种获取 EXE 文件路径的方法,但没有找到使用 Windows 文件夹快捷方式执行该文件的文件夹。
我也试过process.argv,但它给了我exe文件的路径,而不是启动文件夹。
重现我的尝试并自己测试的步骤:
-
Get the repository 并克隆它。 (它只有 3 个文件:index.js、index.html 和 package.json)。
-
在命令行中打开该文件夹并运行
npm install -
通过运行
npm run package-win导出电子应用程序。这应该将 exe 文件导出到[relative app path]/rlease-builds/windows-folder-electron-shortcut-win32-ia32/windows-folder-electron-shortcut.exe。 -
为应用添加windows快捷方式:在windows,注册表中创建:
HKEY_CLASSES_ROOT\Folder\shell\Run In My Electron App\command
这是一步一步的:
- 4 个。在 Windows 中打开“注册表编辑器”。
- 4 乙。前往
HKEY_CLASSES_ROOT\Folder\shell并创建一个名为“Run In My Electron App”的新文件夹 - 4 ℃。在创建的文件夹中,创建
command文件夹。 - 4 天。双击默认值,将其更改为exe文件的完整路径。
(在我的情况下,默认值为:C:\Users\elron\apps\windows-folder-electron-shortcut\rlease-builds\Paste Folder Icon-win32-ia32\Paste Folder Icon.exe。确保路径是您导出的应用程序的 .exe 文件的路径。)
完成第 4 步后,它应该如下所示:
结果:
当通过文件夹快捷方式运行应用程序时,它会按预期为您提供 EXE 的路径,而不是启动应用程序的路径,如下图所示:
现在你可以测试它了。
任何帮助将不胜感激!
【问题讨论】:
-
你的问题写得很好,做得很好 :) 可能值得检查
process.env里面的内容,但遗憾的是,除此之外我没有其他建议。 -
@Joshua 感谢您的帮助,谢谢!
标签: node.js windows path electron registry