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

Windows Folder Shortcut of an Electron App - get the path of that folder?

TL;DR

我想通过 Windows 文件夹快捷方式打开我的 Electron 应用程序(右键单击任何文件夹并单击 Run In My Electron App),并获取启动应用程序

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

所以在上面的快捷方式中,目标是知道 F:\ePC\Libraries\Videos\Loom\Temporary 在电子应用程序中的路径。 (路径应始终与启动应用程序的文件夹相匹配)。

一个真实的工作示例:就像使用 WinRAR 时一样,您可以右键单击一个文件夹并单击“添加到存档...”-WinRAR 应用程序知道正确的文件夹路径-点击。 (有点像“打开文件”,而是“打开文件夹”)。

另一个与 Electron 一起使用的真实示例是 Visual Studio 代码,您可以右键单击文件夹并单击“使用代码打开”。 如何他们这样做?

我的尝试

我试图查看 Electron 的文档,但只找到了一种获取 EXE 文件路径的方法,但没有找到使用 Windows 文件夹快捷方式获取该文件的文件夹。

我也试过 process.argv 但它给了我 exe 文件的路径,而不是启动文件夹。

重现我的尝试并自行测试的步骤:

  1. Get the repository and clone it. (It only has 3 files: index.js, index.html and package.json).

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

  3. 通过 运行ning npm run package-win 导出电子应用程序。这应该将 exe 文件导出到 [relative app path]/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

这是一步一步的:

(在我的例子中,默认值为:C:\Users\elron\apps\windows-folder-electron-shortcut\rlease-builds\Paste Folder Icon-win32-ia32\Paste Folder Icon.exe确保路径是导出应用程序的 .exe 文件的路径。

完成第 4 步后,它应该看起来像这样:

结果:

当运行通过文件夹快捷方式打开应用程序时,它会按预期为您提供 EXE 的路径,而不是启动该应用程序的路径,如此屏幕截图所示:

现在您可以测试了。

任何帮助将不胜感激!

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

"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];