Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   ShellExecute mit Umlauten in den Parametern (https://www.delphipraxis.net/175842-shellexecute-mit-umlauten-den-parametern.html)

machstuhl 23. Jul 2013 13:18

ShellExecute mit Umlauten in den Parametern
 
Hallo zusammen,

folgendermaßen rufe ich das externe Programm auf
Delphi-Quellcode:
ShellExecute(handle, PChar('open'), PChar('C:\Programm.exe'), PChar(Parameter), nil, SW_SHOWNORMAL);
funkioniert alles wunderbar.
Problem: Wenn ich Umlaute im Parameterstring habe werden die nicht korrekt dargestellt, bzw die Befehle werden nicht ausgeführt da das Programm die Umlaut nicht vernünftig interpretiert.

Delphi-Quellcode:
Error: Failed to open PDF file:
   L:\TEST³M\Projekte\PDFs%mergen\Delphi%2010%Source\mein_Begleitschreiben.pdf
³ soll ein ü sein

Hat einer Rat? CharToOem funktioniert leider nicht, da ShellExecute ein PChar erwartet. Oder kann man damit irgendwie was drehen?

Capstone 23. Jul 2013 13:28

AW: ShellExecute mit Umlauten in den Parametern
 
ich glaube, das muß in Tüttelken. (den ganzen Pfad in Gänsefüßchen)

und auch evtl. der Pfad des gewünschten Programmes [auch wegen der Leerzeichen im Pfad]

müßte also so sein:
Delphi-Quellcode:
ProgramX := #34 + 'C:\Programm.exe' + #34; // #34 steht für + '"' +
Parameter := #34 + "C:\DOKUMENTE\langweilige Ebooks\unnützes Wissen.pdf" + #34;

ShellExecute(handle, PChar('open'), PChar(ProgrammX), PChar(Parameter), nil, SW_SHOWNORMAL);

machstuhl 24. Jul 2013 11:17

AW: ShellExecute mit Umlauten in den Parametern
 
so ist es. Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz