CreateProcess (STARTF_USESTDHANDLES)
пример создания процесса:
PROCESS_INFORMATION pi;
STARTUPINFO sinf;
memset(&sinf,0,sizeof(STARTUPINFO));
sinf.cb=sizeof(STARTUPINFO);
sinf.dwFlags=STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW | STARTF_FORCEOFFFEEDBACK;
sinf.wShowWindow=SW_HIDE;
sinf.hStdError=hServerOutputPipe;
sinf.hStdInput=hServerInputPipe;
sinf.hStdOutput=hServerOutputPipe;
CreateProcess(NULL,fname,NULL,NULL,TRUE,CREATE_SEPARATE_WOW_VDM,
NULL, NULL,&sinf,&pi)
Sleep(1000);
TerminateProcess(pi.hProcess, 0);
работает без проблем, причем если не использовать хандлы то и выгружаеться без трабл.
ps. BrouteForceм подсчитано, что неработает только под 98, под 2k всё ок!!
где сдесь вилы?
по моему дело в нем.
Этот флаг работает только в НТ и 2000-ой...
Цитата:
On 2002-03-05 0544, Ramzes wrote
CREATE_SEPARATE_WOW_VDM -
по моему дело в нем.
Этот флаг работает только в НТ и 2000-ой...
все равно не выгружает (
пользуйтесь им только когда происходит критическое завершение процесса.
Я когда создаю процесс, то добавляю два уведомления WM_USER+23 & WM_USER+24
назовите их как хотите, одно посылаете процессу, как команду для закрытия, а второе процесс назад, что закрывается.
Ну а если ответа нету, то можно убивать.
good luck VitSoft
http//www.development.efficientit.com
непонял: процесс не я делал, какже я тогда обработку новых мессаг вставлю. а во вторых процесс dos(MZ), и зараза ведь на NT платформах выгружает все ок :(