· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.WIN32 —› CreateProcess

Посл.отвђт Сообщенiе


Дата: Ноя 28, 2002 17:38:18

Мобыть знает кто, в чём фича: пишу в masm'е invoke CreateProcess и т.д. PROCESS_INFORMATION беру из текущего процесса. Прога выпадает с сообщением, что она якобы вызвала ошибку в модуле Kernel32.dll. Все параметры проверял - имя файла, командную строку - всё правильно, но не работает. Пробовал закрывать в конце дескрипторы процесса и нити - не помогает... :-((( Мобыть кто знает работоспособные исходники?


Дата: Ноя 28, 2002 22:16:44

Исходник - в студию!


Дата: Ноя 29, 2002 12:17:22

Перед вызовом CreateProcess обнули структуру STARTUPINFO.
А в поле cb запиши ее размер.

invoke RtlZeroMemory, addr startup, sizeof STARTUPINFO
mov startup.cb, sizeof STARTUPINFO


Дата: Ноя 30, 2002 11:05:37

Попробовал - не работает. Может быть модель неправильная (".MODEL flat"). Всё же, я думаю, _работающие_сырцы_ помогли бы. ;)


Дата: Ноя 30, 2002 12:56:40

.386
.model flat, stdcall
option casemap:none

include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib

.data
szNotepad db "\Notepad.exe", 0
StartupInfo STARTUPINFO <0>
ProcessInfo PROCESS_INFORMATION <0>
buffer db MAX_PATH dup(0)
.code
start:
invoke GetSystemDirectory, addr buffer, sizeof buffer
invoke lstrcat, addr buffer, addr szNotepad
mov StartupInfo.cb, sizeof STARTUPINFO
invoke CreateProcess, addr buffer, NULL, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL,NULL, addr StartupInfo, addr ProcessInfo
ret
end start


Дата: Дек 6, 2002 17:40:27

Cool!!! Переписал строку по-новому, переделал все 0 => NULL - усё заработало. В чём дело было - так и не понял... :( В любом случае - большое спасибо.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.069