gpt4 book ai didi

electron - 如何从 Windows 上下文菜单启动 Electron-app

转载 作者:行者123 更新时间:2023-12-03 12:32:40 25 4
gpt4 key购买 nike

我正在开发一个 Windows 桌面应用程序。这是一个 Electron 应用程序和使用 Electron 生成器 创建应用程序包。 NSIS electron-builder 的配置用于创建应用程序的安装程序。
我已经对安装程序进行了编程以将 key 添加到注册表,以便在右键单击文件夹背景时可以从 Windows 上下文菜单启动应用程序。
但是当应用程序从 Windows 上下文菜单启动时,会发生 JavaScript 错误。 JavaScript Error image
但是,当安装目录的路径写入环境变量时,可以成功地从 Windows 上下文菜单启动应用程序(没有任何错误)。
我想在不写入环境变量的情况下从 Windows 上下文菜单启动我的 Electron 应用程序。有没有办法做到这一点 ?提前致谢。

最佳答案

应用程序不应依赖当前目录与 .exe 所在的目录相同,这不是当前目录概念存在的原因!
当前目录可以通过 shell 设置为其他路径(上下文菜单、“打开方式”、“发送到”、open associated file 等)、open/save common dialogs , 快捷方式 (.lnk), Start:Run以及来自 cmd.exe 的调用(call ..\myapp.exe 等)。
理想情况下,您应该使用正在加载的文件的完整路径来修复您的应用程序。我假设 Electron 能够告诉你它自己的 .exe 所在的位置。
If you can't do that ,您可以使用某种强制当前目录的启动器。
批处理文件:

@echo off
setlocal ENABLEEXTENSIONS DISABLEDELAYEDEXPANSION
REM This will only work on Win2000 and later probably
cd /D "%~0\..\" 2>nul
pushd "%~0\..\"
"%~0\..\mybrokenapp.exe" %*
或 NSIS 应用程序:
OutFile applauncher.exe
RequestExecutionLevel user
SilentInstall silent
AutoCloseWindow true
!include "FileFunc.nsh"
Section
${GetParameters} $1
SetOutPath $EXEDIR
ExecWait '"$EXEDIR\mybrokenapp.exe" $1' $0
SetErrorLevel $0
Quit
SectionEnd
更改当前目录的启动器的问题是 it breaks callers that pass a relative path on the command line: applauncher.exe .\somefile.ext .

关于electron - 如何从 Windows 上下文菜单启动 Electron-app,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64640758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com