|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Янв 8, 2004 17:38:21 · Поправил: Безпощадный даос Есть такой код: .data run db 1024 dup(0) lenCmdLine dd 0 pzParam dd 0 pzCmdLine dd 0 .code start: invoke GetCommandLine mov pzCmdLine, eax mov edi, eax invoke lstrlen, eax mov lenCmdLine, eax xor ecx, ecx .while ecx<lenCmdLine .if byte ptr [edi]==" " inc edi mov pzParam, edi .break .endif inc ecx inc edi .endw xor edi, edi xor ecx, ecx invoke dw2a, pzParam, addr run invoke MessageBox,0,addr run,addr run,MB_OK Почему-то в в MessageBox'е цифры вместо параметра. Подскажите где ошибка ? |
|
|
Дата: Янв 8, 2004 17:44:31 |
|
|
Дата: Янв 8, 2004 17:48:37 WELL12 Как то нудно без отладчика. А ошибка известна. Ты не тот адрес строки передаёшь. Проверь какие адреса поступают в invoke dw2a, pzParam, addr run |
|
|
Дата: Янв 8, 2004 17:50:32 Или самый прикольный пример by Quantum .386
.model flat, stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
include \masm32\include\shlwapi.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\shlwapi.lib
.data
cmd_args dd 0
.CODE
start:
invoke GetCommandLine
invoke PathGetArgs,eax
mov cmd_args,eax
mov al,[eax]
;Если параметры заключены в кавычки - убрать кавычки!
.IF al != 0
.IF al == '"'
invoke PathUnquoteSpaces,cmd_args
mov cmd_args,eax
.ENDIF
.ENDIF
xor ecx,ecx
invoke MessageBox,ecx,cmd_args,ecx,ecx
invoke ExitProcess,ecx
end start |
|
|
Дата: Янв 8, 2004 17:53:20 |
|
|
Дата: Янв 8, 2004 17:58:16 WELL12 Твой исходник ваще не правильный, а если путь проходит через Program Files ?? |
|
|
Дата: Янв 8, 2004 18:00:51 · Поправил: merlin [Поправка] Sorry Asterix. Думал это ко мне... |
|
|
Дата: Янв 8, 2004 18:04:19 Asterix Этот код я позаимствовал у KetilO, хотя вполне возможно, что и он его откуда-то сплагиатил, например: из MSDN :-) |
|
|
Дата: Янв 8, 2004 19:14:57 Мне надо сформировать строку для запуска проги с параметрами .data cons db "proga.exe",0 run db 1024 dup(0) cmd_args dd 0 StartupInfo STARTUPINFO <> ProcessInfo PROCESS_INFORMATION <> .CODE start: invoke GetCommandLine invoke PathGetArgs,eax mov cmd_args,eax invoke MessageBox,0,cmd_args,cmd_args,MB_OK invoke lstrcat, addr run, addr cons invoke lstrcat, addr run, addr cmd_args invoke MessageBox,0,addr run,addr run,MB_OK Почему так не получается ? |
|
|
Дата: Янв 8, 2004 19:16:52 Правка Кхм, кхм… Простите, что вмешиваюсь, а какая задача требуется? Пропарсить параметры коммандной строки или получить имена файлов, которые передаются ей? |
|
|
Дата: Янв 8, 2004 19:22:12 IceStudent Это в принципе лоадер. Он принимает параметры с командной строки, а потом грузит нужную прогу с такими же параметрами. Вот. |
|
|
Дата: Янв 8, 2004 19:25:15 · Поправил: Toxic Quantum Да чего там сплагиатил. Просто он использовал несколько полезных API. Я сам частенько использую подобные приемы. |
|
|
Дата: Янв 8, 2004 19:25:51 WELL12 Напиши с какими параметрами, например /nologo или /00401000 |
|
|
Дата: Янв 8, 2004 19:30:04 Asterix Строковые параметры типа /start или /reg |
|
|
Дата: Янв 8, 2004 19:32:24 Asterix Вообще при запуске параметр только один |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.115 |