Electron 应用程序的 Windows 文件夹快捷方式 - 获取该文件夹的路径?
Posted
技术标签:
【中文标题】Electron 应用程序的 Windows 文件夹快捷方式 - 获取该文件夹的路径?【英文标题】:Windows Folder Shortcut of an Electron App - get the path of that folder? 【发布时间】: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 感谢您的帮助,谢谢!
【参考方案1】:
在注册表中将此添加到您的命令值:
"C:\Users\elron\apps\windows-folder-electron-shortcut\rlease-builds\Paste Folder Icon-win32-ia32\Paste Folder Icon.exe" "%1"
"%1"
会将启动目录传递给您的电子应用程序。
您可以像这样在电子应用程序中提取目录路径:
const exePath = process.argv[0];
const folderPath = process.argv[1];
【讨论】:
以上是关于Electron 应用程序的 Windows 文件夹快捷方式 - 获取该文件夹的路径?的主要内容,如果未能解决你的问题,请参考以下文章
如何发布适用于 Windows 或 Mac 或 Linux 系统的 Electron 应用程序?
Electron:app.on 'open-file' 的 Windows 替代方案
为 windows 创建应用安装程序 - Electron (electron-packager, electron-builder)