elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Manual - Usar Mouse en Batch
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Manual - Usar Mouse en Batch  (Leído 6,214 veces)
EddyW

Desconectado Desconectado

Mensajes: 187



Ver Perfil WWW
Manual - Usar Mouse en Batch
« en: 9 Julio 2009, 09:26 am »

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:
Código
  1. @Echo off
  2. (
  3. 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
  4. echo g116
  5. )>tmps.dat
  6. Debug<tmps.dat|Find /I "X"
  7. Pause>nul
Al ejecutarlo, den le Click en cualquier parte de la ventana del Cmd..
y les saldra algo como esto:
Código
  1. 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
  1. @Echo off
  2. :g
  3. (
  4. 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
  5. echo g116
  6. )>tmps.dat
  7. Debug<tmps.dat|Find /I "X"
  8.  
Espero les Guste..

Un Ejemplo de Uso mas Avanzado:

Código
  1. @Echo off
  2. (
  3. 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
  4. echo g116
  5. )>Zmouse.txt
  6. Mode Con Cols=80 lines=25
  7. SetLocal ENABLEDELAYEDEXPANSION
  8. cls
  9. Echo                                                                              [X]
  10. Echo                      Presina un Boton:
  11. Echo                      +------+          +------+
  12. Echo                      +  Ok  +          +Cancel+
  13. Echo                      +------+          +------+
  14. :g
  15. Del /Q /A ZDats>nul 2>&1
  16. Debug< Zmouse.txt |Find /i "x">ZDats
  17. Call:Back
  18. Call:mous "0015 0016 0017 0018 0019 001A 001B 001C" "%CX%" "0007 0008 0009" "%DX%"
  19. If %state% EQU OK (Msg * Usted Presiono el Boton OK!!!)
  20. Call:mous "0027 0028 0029 002A 002B 002C 002D 002E" "%CX%" "0007 0008 0009" "%DX%"
  21. If %state% EQU OK (Msg * Usted Presiono el Boton Cancelar!!!)
  22. Call:mous "004E" "%CX%" "0000" "%DX%"
  23. If %state% EQU OK (Exit)
  24. Set /p= X:%CX% ::: Y:%DX%<nul
  25. )
  26.  
  27. :X
  28. Set /p LineCode=<ZDats
  29. for /f "Tokens=3" %%_ in ('Type ZDats') do (
  30. Set %%_
  31. Goto:eof
  32. )
  33.  
  34. :Y
  35. Set /p LineCode=<ZDats
  36. for /f "Tokens=4" %%_ in ('Type ZDats') do (
  37. Set %%_
  38. Goto:eof
  39. )
  40.  
  41. :Back
  42. for /f "tokens=*" %%a in ('ipconfig') do (
  43. Set /p=%%a<nul
  44. Goto :eof
  45. )
  46.  
  47. :mous
  48. Set DMous=%2
  49. Set DMous=!DMous!% style="color: #448888;">4
  50. for %%m in (%~1) do (
  51. for %%n in (%~3) do (
  52. if !DMous! EQU "%%m""%%n" (
  53. Set state=OK
  54. Set CX=0000
  55. Set DX=0000
  56. Goto:eof
  57. ) ELSE (
  58. Set state=NO
  59. )
  60. )
  61. )
  62. 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!!!


En línea

SmartGenius

Desconectado Desconectado

Mensajes: 181


:P


Ver Perfil WWW
Re: Manual - Usar Mouse en Batch
« Respuesta #1 en: 11 Julio 2009, 21:48 pm »

Un poco mas simple y combinado con el tema de las coordenadas.... ;D

Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3.  
  4. if not exist ax.dat (
  5. 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>ax.dat
  6. FOR %%! in (.g116 .q) do ECHO%%!>> ax.dat
  7. )
  8.  
  9. :Init
  10. for /l %%a in (0,1,30) do (
  11. for /l %%b in (0,1,25) do (
  12. set "X%%aY%%b= "))
  13.  
  14. :Graphic
  15. cls
  16. For /l %%d in (0,1,25) do (
  17. For /l %%e in (0,1,30) do (
  18. Set Lin_%%d=!Lin_%% style="color: #448888;">d!!X%%eY%%d!))
  19. For /l %%f in (0,1,25) do (echo.!Lin_%% style="color: #448888;">f!)
  20. Call :Mouse
  21. For /l %%f in (0,1,25) do (Set "Lin_%%f=")
  22. Goto :Graphic
  23.  
  24. :Mouse
  25. For /f "skip=3 tokens=6-8 delims== " %%a in ('DEBUG ^< ax.dat') do (
  26. Set /a "X_Axis=0x%%a"
  27. Set /a "Y_Axis=0x%%c"
  28. Set X!X_Axis!Y!Y_Axis!=*
  29. Goto :Eof

Saludos.


En línea


morenochico

Desconectado Desconectado

Mensajes: 167


Ver Perfil
Re: Manual - Usar Mouse en Batch
« Respuesta #2 en: 14 Julio 2009, 00:47 am »

Muy bien.


 ;-)
En línea

0x0309

Desconectado Desconectado

Mensajes: 215


Ver Perfil
Re: Manual - Usar Mouse en Batch
« Respuesta #3 en: 15 Julio 2009, 20:44 pm »

_edite el post.
« Última modificación: 16 Julio 2009, 04:33 am por 0x0309 » En línea

FerJGS

Desconectado Desconectado

Mensajes: 75


Ver Perfil
Re: Manual - Usar Mouse en Batch
« Respuesta #4 en: 7 Septiembre 2010, 13:49 pm »

Hola 3D1...me han recomendado este tema para preguntas sobre el ratón...Ahí va mi pregunta...

¿se puede hacer que detecte al posar el ratón en la consola, no hacer clic, sino solo pasarlo por encima)

Algo como

if (ratón en estas coordenadas) (instrucciones)
if "clic en estas coordenadas" (instrucciones)

Lo del clic ya lo tengo...pero se podría detectar al posar el ratón?

Otra cosa...en mouse.dat....BX es el botón, CX y Dx las coordenadas pero..¿qué es todo lo demás? ¿Qué es AX, por ejemplo?

Gracias
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Manual Batch desde -1 (By 2Fac3R)
Scripting
2Fac3R 0 3,180 Último mensaje 20 Octubre 2011, 22:24 pm
por 2Fac3R
Manual Batch 2da Parte (By 2Fac3R)
Scripting
2Fac3R 0 3,122 Último mensaje 20 Octubre 2011, 22:30 pm
por 2Fac3R
Manual Batch (Nivel Medio) By 2Fac3R
Scripting
2Fac3R 0 2,333 Último mensaje 20 Octubre 2011, 22:33 pm
por 2Fac3R
[BATCH] Manual de Batch (INGLÉS)
Scripting
Eleкtro 4 4,898 Último mensaje 16 Julio 2012, 17:36 pm
por Eleкtro
[BATCH] Para usar en LAN (puede ser un ciber)
Scripting
S_M_A_C_K 3 4,296 Último mensaje 5 Noviembre 2012, 20:32 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines