Ещё так можно:
CODE:external(INT, "GetCommandLineW", "GetCommandLineW", "Kernel32.dll");
external(INT, "CommandLineToArgvW", "CommandLineToArgvW", "Shell32.dll");
external(INT, "MessageBoxW", "MessageBoxW", "User32.dll");
external(INT, "LocalFree", "LocalFree", "Kernel32.dll");
int nArgs;
int szArglist = CommandLineToArgvW(GetCommandLineW(), address(#nArgs));
if(nArgs==0)messagebox("Ошибка при получении аргументов");
else
{
if(nArgs==1)messagebox("Аргументы отсутствуют");
else
{
messagebox("Всего аргументов: "+format(nArgs));
for(int i=0; i<nArgs; i++)MessageBoxW(0, addressi(szArglist+i*4), 0, 0);
LocalFree(szArglist);
}
}
Но, надо учитывать что строки в юникод. |