@mdalacu
Yes, but TProcess.CommandLine is String.... how can i do it?
CommandLine is deprecated. Since you need widestring, you're probably under windows. TProcess can be easily replaced with Createprocess, ShellExecute, ShellExecuteEx, etc..., or you can override a few methods in TProcess to accept widestrings, even better you only need to override the execute method with ExecuteUnicode.
Inside ExecuteUnicode convert all strings to widestring and instead PChar use PWideChar:
uses LazUTF8;
var
FCommandLineW: WideString;
begin
FCommandLineW := UTF8ToUTF16(FCommandLine);
//and so on
end;