|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Окт 23, 2003 14:51:31 Проблема с Pipe. Почему не работает ниже приведенный код? Все вроде бы проходит нормально до ReadFile. ReadFile не читает или не заполняет буфер :(? |
|
|
Дата: Окт 23, 2003 14:52:01 OutputProc PROC uses edi arg @@hDlg:DWORD,@@uMsg:DWORD,@@wParam:DWORD,@@lParam:DWORD .if @@uMsg==WM_INITDIALOG call RtlZeroMemory,offset buffer,1024 mov [sat.nLength],size SECURITY_ATTRIBUTES mov [sat.lpSecurityDescriptor],NULL mov [sat.bInheritHandle],1 call CreatePipe, offset hRead, offset hWrite, NULL ,NULL .if eax==NULL call MessageBoxA, hwnd, offset CreatePipeError, \ offset AppName, MB_ICONERROR+ MB_OK .else mov [startupinfo.cb],size STARTUPINFO ;mov [startupinfo.lpReserved],0 ;mov [startupinfo.lpDesktop],0 ;mov [startupinfo.lpTitle],0 call GetStartupInfoA, offset startupinfo mov eax, [hWrite] mov [startupinfo.hStdOutput],eax mov [startupinfo.hStdError],eax mov [startupinfo.dwFlags], STARTF_USESHOWWINDOW+\ STARTF_USESTDHANDLES mov startupinfo.wShowWindow,SW_HIDE call GetCurrentDirectoryA, length WorkBuff,offset WorkBuff call lstrcat, offset WorkBuff, offset make_utilite call CreateProcessA, NULL, offset WorkBuff, NULL,\ NULL, 1, NULL, NULL, NULL, offset startupinfo, offset pinfo .if eax==NULL call MessageBoxA ,hwnd,offset CreateProcessError,\ offset AppName,MB_ICONERROR+MB_OK .else call CloseHandle,hWrite .while TRUE call ReadFile, hRead, offset buffer, 1023, offset byt,0 .if eax==NULL .break .endif call SetDlgItemTextA,@@hDlg,IDC_EDIT2,offset buffer ;call SendMessageA,hwndedit,EM_SETSEL,-1,0 ;call SendMessageA,hwndedit,EM_REPLACESEL,\ ;0,offset buffer .endw .endif call CloseHandle,hRead .endif .elseif @@uMsg==WM_ACTIVATE call SendDlgItemMessageA,@@hDlg,IDC_EDIT2,EM_SETSEL,-1,0 .elseif @@uMsg==WM_CLOSE call EndDialog,@@hDlg,NULL .else mov eax,FALSE ret .endif mov eax,TRUE ret OutputProc endp |
|
|
Дата: Окт 23, 2003 22:16:18 hkwn call CreatePipe, offset hRead, offset hWrite, NULL ,NULL Вы не используете параметр lpPipeAttributes. AFAIK, если его не использовать, потом возникают проблемы с наследованием пайпа в новом прцессе. Поменяйте на: mov [sat.nLength],size SECURITY_ATTRIBUTES mov [sat.lpSecurityDescriptor],NULL mov [sat.bInheritHandle],1 call CreatePipe,offset hRead,offset hWrite,offset sat,NULL |
|
|
Дата: Окт 28, 2003 08:53:33 Спасибо Quantum, Я сам лоханулся: не правильно определил типы неоторых полей в структуре startupinfo :) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.056 |