Si, solo hasta el 3999... y si, tambien has de añadir un input()
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú

200 -> CC
1337 -> MCCCXXXVII

Public Function DecToRoman(ByVal lNum As Long) As String
DecToRoman = Choose(((lNum Mod 10) / 1) + 1, "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX")
lNum = lNum - (lNum Mod 10)
DecToRoman = Choose(((lNum Mod 100) / 10) + 1, "", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC") & DecToRoman
lNum = lNum - (lNum Mod 100)
DecToRoman = String$((lNum \ 1000), "M") & Choose(((lNum Mod 1000) / 100) + 1, "", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM") & DecToRoman
End Function


xor eax, eax
mov eax, [FS:eax+0x30]
mov eax, [DS:eax+0x10]
mov eax, [DS:eax+0x3C]
;EAX = Ruta bucle:
.if byte[eax+ecx] = '#'
inc ecx
.if byte[eax+ecx] = '#'
inc ecx
.if byte[eax+ecx] = '#'
inc ecx
add eax,ecx
mov [espacio],eax
jmp salir
.endif
dec ecx
.endif
dec ecx
.endif
.if ecx > [larchivo]
jmp salir
.endif
inc ecx
jmp bucle

dim lPID as long
dim lRet as long
lPID = shell("notepad.exe")
hProc = OpenProcess(PROCESS_QUERY_INFORMATION, false, lPID)
if hProc > 0 then
do
GetExitCodeProcess(hProc,lRet)
loop while (lRet = STILL_ALIVE)
msgbox "Has cerrado el bloc de notas"
end if
*casi* 
bvByteArray = StrConv(sCADENA, vbFromUnicode)
En cuanto al codigo como siempre, muy bueno... lo unico que no me ha gustado son los 200Kbs del server (aunque tu lo llamas cliente, supongo que por lo de conexion inversa y bla bla) y tampoco me ha gustado que uses el Zombie_Invoke sin darme creditos e incluso has eliminado el header con comments del modulo!