CommandLineToArgvW ????
, Поделитесь примером использования под дельфи
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.217.103] |
|
|
ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
CommandLineToArgvW ????
, Поделитесь примером использования под дельфи
|
|
|
|
|
Уважаемый Аll,
Функция CommandLineToArgvW что то засадила меня. Не получается правильно отпарсить путь вида ![]() ![]() "debug\program.exe" '/state:1 /state_tag:0 /state_file:"C:\Users\XXX\AppData\Local\Temp\94C9.data"' Почему то возвращает мне количество аргументов 4 а доступен только 0. ![]() ![]() function CommandLineToArgvW(lpCmdLine:LPCWSTR;var pNumArgs:Integer):PPWideChar;stdcall;external 'shell32.dll'; var arrParams:PPWideChar; i:integer; arrParams:=CommandLineToArgvW(GetCommandLineW,i); if arrParams<>nil then begin arrParams^[0] - тут работает но с другими индексами нет. LocalFree(THandle(arrParams)); end; Help pls. Добавлено ЗЫ под Вынь7 64 бит... под хрю таких путей не бывает. |
|
Сообщ.
#2
,
|
|
|
|
А чем ParamStr не угодило?
|
|
Сообщ.
#3
,
|
|
|
|
2 Palladin = не работает...возвращает пустые аргументы.
Зы, я дурак...сорри. Просмотрел что это двойной указатель. Кому интересно - вот так ![]() ![]() var arrParams,pp:PPWideChar; i,c:integer; cl:array of WideString; arrParams:=CommandLineToArgvW(GetCommandLineW,c); if Assigned(arrParams) then begin SetLength(cl,c); pp:=arrParams; for i:=0 to c-1 do begin cl[i]:=WideString(PWideChar(pp^)); inc(pp); end; LocalFree(THandle(arrParams)); end; |
|
Сообщ.
#4
,
|
|
|
|
alex_sporik
Да как не работает... у меня работает все... единственное что кавычки двойные ушли... |