Semiono Я не полный исходник даю, там всё есть. Код (Text): format PE GUI 4.0 entry start include '%fasminc%\win32a.inc' section 'data' data readable writeable lpParameters dd ? lpOperation db 'open',0 lpFile db 'notepad.exe',0 CurrentDir db 260 dup(?) section 'code' code readable executable start: invoke GetCommandLine ; cmp byte[eax],'"' ; jnz @F ; inc eax ; jmp .loop_1 ;@@: ; cmp byte[eax],' ' ; jz .loop ; inc eax ; jmp @B ;.loop_1: ; cmp byte[eax],'"' ; jz .loop1_ ; inc eax ; jnz .loop_1 ;.loop1_: ; add eax,2 ;.loop: ; inc eax mov ebx,eax invoke lstrlen,eax mov ecx,eax add eax,ebx @@: cmp byte[eax],' ' jz @F dec eax loop @B @@: mov [lpParameters],eax invoke GetCurrentDirectory,260,CurrentDir invoke ShellExecute,\ NULL,\ lpOperation,\ lpFile,\ [lpParameters],\ CurrentDir,\ SW_SHOWNORMAL .exit: invoke ExitProcess,0 section 'idata' import data readable library kernel32, 'KERNEL32.DLL',shell32,'shell32.dll' include '%fasminc%\api\kernel32.inc' include '%fasminc%\api\shell32.inc'
Semiono Думаю нет. Только есть вы введёшь при запуске Запустится file3. Если надо передать file1 file2 file3, то нужно раскомментировать код, а Код (Text): mov ebx,eax invoke lstrlen,eax mov ecx,eax add eax,ebx @@: cmp byte[eax],' ' jz @F dec eax loop @B закомментировать.
Semiono Вообще такой парсинг коммандной строки - дело не очень хорошее. Лучше сделай поиск по форуму слова GetCommandLine и поищи готовый рабочий код
invoke GetEnvironmentStrings If the function succeeds, the return value is a pointer to the environment block of the current process. Это подойдёт чтоб узнать путь откуда бинарь запустился? Мне надо как-то путь привинтить сюда, чтоб он абсолютный не был invoke CopyFile,lpExistingFileName,lpNewFileName,TRUE а так можно типа ..CopyFile, [eax] + '\' + lpExistingFileName, [eax] + '\' + lpNewFileName,TRUE ?