如何获取 Electron 应用程序的 Windows 文件夹快捷方式路径?

4

简短概述

我想通过 Windows 文件夹快捷方式(右键单击任何文件夹并单击 在我的 Electron 应用中运行)打开我的 Electron 应用,并获取启动应用程序的文件夹路径。

我成功使用 Windows 注册表创建了快捷方式,但找不到获取启动应用程序的文件夹路径的方法。(在快捷方式中,“Temporary”)

Run in my electron app enter image description here

在上面的快捷方式中,目标是知道电子应用程序内F:\ePC\Libraries\Videos\Loom\Temporary的路径。(并且路径应始终与启动应用程序的文件夹匹配)。
一个真实的工作示例:就像使用WinRAR时,您可以右键单击一个文件夹,然后单击“添加到存档...”- WinRAR应用程序知道已右键单击的文件夹的路径。(有点像“打开文件”,但是“打开文件夹”)
另一个与Electron一起使用的真实示例是Visual Studio Code,您可以右键单击一个文件夹,然后单击“使用Code打开”。他们是如何做到这一点的?
我的尝试:
我试图查看Electron的文档,但只找到了获取EXE文件路径的方法,而不是使用Windows文件夹快捷方式执行该文件的文件夹的路径。
我还尝试了process.argv,但它给我提供了exe文件的路径,而不是启动文件夹。
重现我的尝试并自己测试的步骤:
  1. 获取仓库并克隆它。(它只有3个文件: index.js, index.htmlpackage.json)。

  2. 在命令行中打开该文件夹并运行npm install

  3. 通过运行npm run package-win导出电子应用程序。这应该将exe文件导出到[相对应用程序路径]/rlease-builds/windows-folder-electron-shortcut-win32-ia32/windows-folder-electron-shortcut.exe

  4. 要为应用程序添加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步后,它应该看起来像这样:

enter image description here

结果:

通过文件夹快捷方式运行应用程序时,它会按预期给出EXE的路径,但不会给出启动应用程序的路径,如此截图所示:

Run in my electron app

现在你可以进行测试。

任何帮助都将不胜感激!


你的问题写得很好,干得好 :) 除了检查 process.env 中有什么之外,我没有其他建议了。 - Joshua
@Joshua,感谢你的帮助尝试! - Elron
1个回答

3

在注册表中将此添加到您的命令值:

"C:\Users\elron\apps\windows-folder-electron-shortcut\rlease-builds\Paste Folder Icon-win32-ia32\Paste Folder Icon.exe"  "%1"

""%1"将会将初始目录传递给你的Electron应用程序。"
"您可以在您的Electron应用程序中通过以下方式提取目录路径:"
const exePath = process.argv[0];
const folderPath = process.argv[1];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接