Bueno, eso, ahora jugando con Debug se me ocurrio por que no hacer tambien posible usar el Mouse
en Batch, ya que se podia usar keyBoard..
Pues decidi hacer un Comando MS-DOS en VB6, pero me salio re pesado aun comprimiendolo con UPX..
25Kb, algo grande al convertirlo en Binario para hacerlo Portable, asi que me cae este code..
De la escuela de Batch (Año 1995 - 2005)..
Primero digo que les sera un poco mas dificil entenderlo, ya que no es como el KeyBoard, ya que este no se ensambla..
Bueno sin mas que decir es sencillo, un ejemplo claro:
Al ejecutarlo, den le Click en cualquier parte de la ventana del Cmd..
y les saldra algo como esto:
Explico BX=0001 tiene dos valores 0001 y 0002 osea si se hace Click derecho o Izquierdo..
El CX=... es la posicion X del cursor, y DX=... es la posicion Y del Cursor..
Eso nos basta para hacer un buen Batch, y podemos colocarlos en una variable con For..
Otro ejemplo para jugar mas con su funcionamiento:
Espero les Guste..
Un Ejemplo de Uso mas Avanzado:
Espero les Guste, en Vista la Parte de Set /p= X:%CX% ::: Y:%DX%<nul pueden borrarla ya que les molestara, eso solo funca en XP, pero lo demas funciona Bien..
SaluDOS!!!
en Batch, ya que se podia usar keyBoard..
Pues decidi hacer un Comando MS-DOS en VB6, pero me salio re pesado aun comprimiendolo con UPX..
25Kb, algo grande al convertirlo en Binario para hacerlo Portable, asi que me cae este code..
De la escuela de Batch (Año 1995 - 2005)..
Primero digo que les sera un poco mas dificil entenderlo, ya que no es como el KeyBoard, ya que este no se ensambla..
Bueno sin mas que decir es sencillo, un ejemplo claro:
Código (dos) [Seleccionar]
@Echo off
(
echo e100 B8 1 0'3'DB CD'3'B0 3'C'CD'3'B DB't'FA 91 D3 EA D3 E8 91 C3
echo g116
echo q
)>tmps.dat
Debug<tmps.dat|Find /I "X"
Pause>nul
Al ejecutarlo, den le Click en cualquier parte de la ventana del Cmd..
y les saldra algo como esto:
Código (asm) [Seleccionar]
AX=0003 BX=0001 CX=0038 DX=0014 SP=FFEE BP=0000 SI=0000 DI=0000
Explico BX=0001 tiene dos valores 0001 y 0002 osea si se hace Click derecho o Izquierdo..
El CX=... es la posicion X del cursor, y DX=... es la posicion Y del Cursor..
Eso nos basta para hacer un buen Batch, y podemos colocarlos en una variable con For..
Otro ejemplo para jugar mas con su funcionamiento:
Código (dos) [Seleccionar]
@Echo off
:g
(
echo e100 B8 1 0'3'DB CD'3'B0 3'C'CD'3'B DB't'FA 91 D3 EA D3 E8 91 C3
echo g116
echo q
)>tmps.dat
Debug<tmps.dat|Find /I "X"
Goto:g
Espero les Guste..
Un Ejemplo de Uso mas Avanzado:
Código (dos) [Seleccionar]
@Echo off
(
echo e100 B8 1 0'3'DB CD'3'B0 3'C'CD'3'B DB't'FA 91 D3 EA D3 E8 91 C3
echo g116
echo q
)>Zmouse.txt
Mode Con Cols=80 lines=25
SetLocal ENABLEDELAYEDEXPANSION
cls
Echo [X]
Echo.
Echo.
Echo.
Echo Presina un Boton:
Echo.
Echo.
Echo +------+ +------+
Echo + Ok + +Cancel+
Echo +------+ +------+
:g
Del /Q /A ZDats>nul 2>&1
Debug< Zmouse.txt |Find /i "x">ZDats
Call:x
call:y
Call:Back
Call:mous "0015 0016 0017 0018 0019 001A 001B 001C" "%CX%" "0007 0008 0009" "%DX%"
If %state% EQU OK (Msg * Usted Presiono el Boton OK!!!)
Call:mous "0027 0028 0029 002A 002B 002C 002D 002E" "%CX%" "0007 0008 0009" "%DX%"
If %state% EQU OK (Msg * Usted Presiono el Boton Cancelar!!!)
Call:mous "004E" "%CX%" "0000" "%DX%"
If %state% EQU OK (Exit)
Set /p= X:%CX% ::: Y:%DX%<nul
)
Goto:g
:X
Set /p LineCode=<ZDats
for /f "Tokens=3" %%_ in ('Type ZDats') do (
Set %%_
Goto:eof
)
:Y
Set /p LineCode=<ZDats
for /f "Tokens=4" %%_ in ('Type ZDats') do (
Set %%_
Goto:eof
)
:Back
for /f "tokens=*" %%a in ('ipconfig') do (
Set /p=%%a<nul
Goto :eof
)
:mous
Set DMous=%2
Set DMous=!DMous!%4
for %%m in (%~1) do (
for %%n in (%~3) do (
if !DMous! EQU "%%m""%%n" (
Set state=OK
Set CX=0000
Set DX=0000
Goto:eof
) ELSE (
Set state=NO
)
)
)
Goto:eof
Espero les Guste, en Vista la Parte de Set /p= X:%CX% ::: Y:%DX%<nul pueden borrarla ya que les molestara, eso solo funca en XP, pero lo demas funciona Bien..
SaluDOS!!!