Delphi - CommandLineToArgvW

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;
2012-01-26T23:14:31 +0100, mail[at]michael[Bindestrich]puff.de