Hi all,
i'm trying to get the following program to work, i need this option for a program i am writing, but it only works when i use the following line to read into the buffer:
Code:
invoke StdIn,addr buffer,4
as soon as i change the '4' into a longer value it won't work anymore...
is there a workaround for this?
program:
Code:
.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\masm32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\masm32.lib
.data
string1 db "Enter: ",0
string2 db 13,10,"equal",0
string3 db 13,10,"not equal",0
teststring db "exit",0
test2 db "exit",0
buffer db 50 dup (?)
vier db "4",0
.code
start:
invoke StdOut,addr string1
invoke StdIn,addr buffer,6
invoke lstrcmpA,addr test2,addr buffer
.if eax==0
invoke StdOut,addr string2
invoke ExitProcess,0
.endif
invoke StdOut,addr string3
invoke ExitProcess,0
end start
i've tried adding the ending [color=blue 13 and 10 (CR and LF)[/color] to the buffer and then it works. but this will not work for my program since i need to compare the userinput with the strings generated by the Process32Next API...
piece of my real program code:
Code:
invoke Process32Next,[Snap],offset proc32
;if we have finished the last process listing
;------------------------------------------------------
.if eax!=TRUE
jmp again
.endif
;------------------------------------------------------
invoke lstrcmpA, addr ProcToKill,addr proc32.szExeFile
.if eax == 0
jmp contin
.endif
thanks in advance,