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.jsindex.htmlpackage.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 替代方案

Electron 应用打包

为 windows 创建应用安装程序 - Electron (electron-packager, electron-builder)

Windows Electron初探

Electron electron-winstaller 无法为大型(文件大小)应用程序创建安装程序