From 8c0130337e2af9e7b3deb466ab215b176338d8fe Mon Sep 17 00:00:00 2001 From: MikeHughes-BIN Date: Fri, 19 Dec 2025 15:31:08 +0100 Subject: [PATCH] Fix for windows power shell command --- services/modules/convert/convert.js | 41 ++++++++++++++++------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/services/modules/convert/convert.js b/services/modules/convert/convert.js index 8f705b1..54b30ef 100644 --- a/services/modules/convert/convert.js +++ b/services/modules/convert/convert.js @@ -30,25 +30,28 @@ async function showSaveDialog(defaultName, format) { throw err; } } else if (platform === 'win32') { - // Windows - const powershell = ` - Add-Type -AssemblyName System.Windows.Forms - $dialog = New-Object System.Windows.Forms.SaveFileDialog - $dialog.FileName = "${defaultName}.${format}" - $dialog.Filter = "${format.toUpperCase()} Dateien (*.${format})|*.${format}|Alle Dateien (*.*)|*.*" - $dialog.Title = "Dokument speichern als" - $result = $dialog.ShowDialog() - if ($result -eq 'OK') { $dialog.FileName } - `; - - try { - const result = execSync(`powershell -Command "${powershell.replace(/\n/g, '; ')}"`, { - encoding: 'utf8' - }); - return result.trim() || null; - } catch (err) { - throw err; - } + const safeName = decodeURIComponent(defaultName); + + const powershell = ` + Add-Type -AssemblyName System.Windows.Forms; + $dialog = New-Object System.Windows.Forms.SaveFileDialog; + $dialog.FileName = '${safeName}.${format}'; + $dialog.Filter = '${format.toUpperCase()} Dateien (*.${format})|*.${format}|Alle Dateien (*.*)|*.*'; + $dialog.Title = 'Dokument speichern als'; + $result = $dialog.ShowDialog(); + if ($result -eq 'OK') { $dialog.FileName } + `; + + try { + const result = execSync( + `powershell -NoProfile -Command "${powershell.replace(/\r?\n/g, ' ')}"`, + { encoding: 'utf8' } + ); + return result.trim() || null; + } catch (err) { + if (err.status === 1) return null; // User cancelled + throw new Error("Save dialog failed: " + err.message); + } } else { // Linux - zenity oder kdialog try {