Я следую примеру requestSingleInstanceLock () в документации Electron. По какой-то причине аргументы командной строки второго экземпляра кажутся поврежденными, если аргументы имеют значения в кавычках с пробелами внутри. Начальный process.argv
выглядит просто отлично, однако параметр argv
в событии второго экземпляра разделяется на пробелы, добавляя дополнительные значения аргументов, все значения преобразуются в нижний регистр и несколько предварительно сортируются.
Есть ли способ отключить эту обработку и в конечном итоге передать / получить командную строку второго экземпляра как есть?
ПРИМЕЧАНИЕ. Я использовал app.makeSingleInstance()
в предыдущих версиях Electron, однако это 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'
]