Witam
Problem może banalny ale nie umiem sobie poradzić.
Wywołuję ShellExecute, gdzie ścieżka do pliku wykonywalnego może zawierać polskie znaki. W ShellExecute przekazuję także parametry z jakimi uruchamiany ma być plik wykonywalny.
Jeśli ścieżka do pliku wykonywalnego nie zawiera polski znaków, jest ok, czyli kod:
ShellExecute(Handle, 'open', PChar(ExtractFilePath(Application.ExeName)+'PlikWykonywalny.exe'), PChar(parametry), nil, SW_NORMAL);
działa bez problemu.
Problem pojawia się gdy w ścieżce wystąpią polskie znaki. I teraz nie wiem czy w dobrym kierunku zmierzam: Udało mi się sprawdzić, że konwersja tej ścieżki przy pomocy Utf8Encode
lub AnsiToUtf8</code> lub <code>SysToUtf8</code> (konwersję ścieżki testowo "podstawiłem" do Label.Caption) daje pożądany efekt, tzn zamiast pytajników w ścieżce mam polskie znaki. Nie mam za to kompletnie już pomysłu jakiej konwersji użyć przy <code>PChar(parametry)
...
Całość dzieje się na Lazarusie 1.4.2, FPC 2.6.4.
pozdrawiam
Wojtek