简短概述
我想通过 Windows 文件夹快捷方式(右键单击任何文件夹并单击 在我的 Electron 应用中运行
)打开我的 Electron 应用,并获取启动应用程序的文件夹路径。
我成功使用 Windows 注册表创建了快捷方式,但找不到获取启动应用程序的文件夹路径的方法。(在快捷方式中,“Temporary”)
在上面的快捷方式中,目标是知道电子应用程序内F:\ePC\Libraries\Videos\Loom\Temporary
的路径。(并且路径应始终与启动应用程序的文件夹匹配)。一个真实的工作示例:就像使用WinRAR时,您可以右键单击一个文件夹,然后单击“添加到存档...”- WinRAR应用程序知道已右键单击的文件夹的路径。(有点像“打开文件”,但是“打开文件夹”)
另一个与Electron一起使用的真实示例是Visual Studio Code,您可以右键单击一个文件夹,然后单击“使用Code打开”。他们是如何做到这一点的?
我的尝试:
我试图查看Electron的文档,但只找到了获取EXE文件路径的方法,而不是使用Windows文件夹快捷方式执行该文件的文件夹的路径。
我还尝试了
process.argv
,但它给我提供了exe文件的路径,而不是启动文件夹。重现我的尝试并自己测试的步骤:
获取仓库并克隆它。(它只有3个文件: index.js, index.html和package.json)。
在命令行中打开该文件夹并运行
npm install
。通过运行
npm run package-win
导出电子应用程序。这应该将exe文件导出到[相对应用程序路径]/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 a. 在Windows中打开“注册表编辑器”。
- 4 b. 转到
HKEY_CLASSES_ROOT\Folder\shell
并创建一个名为“在我的电子应用程序中运行”的新文件夹。 - 4 c. 在创建的文件夹内,创建
command
文件夹。 - 4 d. 双击默认值并将其更改为exe文件的完整路径。
(在我的情况下,默认值为:C:\Users\elron\apps\windows-folder-electron-shortcut\rlease-builds\Paste Folder Icon-win32-ia32\Paste Folder Icon.exe
。确保路径是导出应用程序的.exe文件的 YOUR path。)
完成第4步后,它应该看起来像这样:
结果:
通过文件夹快捷方式运行应用程序时,它会按预期给出EXE的路径,但不会给出启动应用程序的路径,如此截图所示:
现在你可以进行测试。
任何帮助都将不胜感激!
process.env
中有什么之外,我没有其他建议了。 - Joshua