St0nX
19.10.2009, 14:09
.data?
hRead DWORD ?
hWrite DWORD ?
bWrite DWORD ?
hRead1 DWORD ?
hWrite1 DWORD ?
sat SECURITY_ATTRIBUTES <>
cif STARTUPINFO <>
pi PROCESS_INFORMATION <>
BufDate db 1024 dup(?)
BufDate1 db 1024 dup(?)
;.....некий код
.data
lpCmdParam BYTE "cmd",0
.code
start:
;.....некий код
;Обнуляем буферы
mov ecx,1024
mov edi,offset BufDate1
l: mov byte ptr [edi],0
inc edi
loop l
mov ecx,1024
mov edi,offset BufDate
ll: mov byte ptr [edi],0
inc edi
loop ll
;--
mov sat.nLength,sizeof SECURITY_ATTRIBUTES
mov sat.lpSecurityDescriptor,0
mov sat.bInheritHandle,TRUE
invoke CreatePipe,ADDR hRead,ADDR hWrite,ADDR sat,NULL
invoke CreatePipe,ADDR hRead1,ADDR hWrite1,ADDR sat,NULL
mov cif.cb,sizeof STARTUPINFO
invoke GetStartupInfo,ADDR cif
mov cif.wShowWindow,SW_HIDE
mov cif.dwFlags,STARTF_USESHOWWINDOW + STARTF_USESTDHANDLES
mov eax, hRead
mov cif.hStdOutput,eax
mov eax, hWrite1
mov cif.hStdInput,eax
invoke CreateProcess,0 ,ADDR lpCmdParam,0,0,FALSE,CREATE_NEW_CONSOLE,0,0,ADDR cif,ADDR pi
invoke WriteFile,hWrite,ADDR BufDate,sizeof BufDate,ADDR bWrite,0
invoke ReadFile,hRead1,ADDR BufDate1,sizeof BufDate1,ADDR bWrite,0
Вообщем создается консоль пытаюсь писать и читать данные туда, останавливается на ReadFile и чего то ждет. не пойму в чем проблема. Порыл в инете нашел что ее можно решить через PeekNamedPipe или же OVERLAPPED, но конкретно не особо понял.
hRead DWORD ?
hWrite DWORD ?
bWrite DWORD ?
hRead1 DWORD ?
hWrite1 DWORD ?
sat SECURITY_ATTRIBUTES <>
cif STARTUPINFO <>
pi PROCESS_INFORMATION <>
BufDate db 1024 dup(?)
BufDate1 db 1024 dup(?)
;.....некий код
.data
lpCmdParam BYTE "cmd",0
.code
start:
;.....некий код
;Обнуляем буферы
mov ecx,1024
mov edi,offset BufDate1
l: mov byte ptr [edi],0
inc edi
loop l
mov ecx,1024
mov edi,offset BufDate
ll: mov byte ptr [edi],0
inc edi
loop ll
;--
mov sat.nLength,sizeof SECURITY_ATTRIBUTES
mov sat.lpSecurityDescriptor,0
mov sat.bInheritHandle,TRUE
invoke CreatePipe,ADDR hRead,ADDR hWrite,ADDR sat,NULL
invoke CreatePipe,ADDR hRead1,ADDR hWrite1,ADDR sat,NULL
mov cif.cb,sizeof STARTUPINFO
invoke GetStartupInfo,ADDR cif
mov cif.wShowWindow,SW_HIDE
mov cif.dwFlags,STARTF_USESHOWWINDOW + STARTF_USESTDHANDLES
mov eax, hRead
mov cif.hStdOutput,eax
mov eax, hWrite1
mov cif.hStdInput,eax
invoke CreateProcess,0 ,ADDR lpCmdParam,0,0,FALSE,CREATE_NEW_CONSOLE,0,0,ADDR cif,ADDR pi
invoke WriteFile,hWrite,ADDR BufDate,sizeof BufDate,ADDR bWrite,0
invoke ReadFile,hRead1,ADDR BufDate1,sizeof BufDate1,ADDR bWrite,0
Вообщем создается консоль пытаюсь писать и читать данные туда, останавливается на ReadFile и чего то ждет. не пойму в чем проблема. Порыл в инете нашел что ее можно решить через PeekNamedPipe или же OVERLAPPED, но конкретно не особо понял.