gpt4 book ai didi

command-line - Electron 第二实例的命令行参数已损坏?

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

我正在遵循Electron文档中requestSingleInstanceLock()的示例。由于某种原因,如果第二个实例的命令行参数使用引号引起来的值在内部带有空格,则该参数似乎已损坏。初始process.argv看起来还不错,但是second-instance事件中的argv参数在空格处拆分,并添加了其他参数值,所有值均转换为小写并进行了预排序。

有没有办法禁用此处理,并最终按原样传递/获取第二个实例的命令行?

注意:我在以前的Electron版本中使用了app.makeSingleInstance(),但是该API已被删除。

这是我使用的测试应用程序的摘录:

console.log(process.argv);

if (!app.requestSingleInstanceLock()) {
app.exit();
}

app.on('second-instance', (event, argv, workingDirectory) => {
console.log('second-instance', argv);
});

结果如下:
C:\electron-app-win32-x64>electron-app.exe "/Arg1 Value1" "/Arg2 Value2"

C:\electron-app-win32-x64>
[
'C:\\electron-app-win32-x64\\electron-app.exe',
'/Arg1 Value1',
'/Arg2 Value2'
]
second-instance [ <--- from the same command in another console
'electron-app.exe',
'/arg1',
'/arg2',
'--allow-file-access-from-files',
'--original-process-start-time=13232862957593703',
'value1',
'value2'
]

最佳答案

它是

Chromium's command-line parsing logic. Chromium treats "switches" (things like --foo or --foo=bar) and "arguments" (things that don't begin with --) separately



您可以在此github问题中找到指向Chromium源的链接和一些技巧,以绕开此逻辑。
https://github.com/electron/electron/issues/20322

关于command-line - Electron 第二实例的命令行参数已损坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61554004/

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