uses
ShellAPI;
procedure GetCommandLineArgs(Args: TStrings);
type
TPWideCharArray = array[0..0] of PWideChar;
var
NumArgs: Integer;
TempArgs: PPWideChar;
i: Integer;
begin
TempArgs := CommandLineToArgvW(GetCommandLineW, NumArgs);
if TempArgs <> nil then
begin
for i := 0 to NumArgs - 1 do
Args.Add(TPWideCharArray(TempArgs^)[i]);
LocalFree(THandle(TempArgs));
end
else
RaiseLastOSError;
end;