Autor
|
Tema: Ayuda código detección si se presionó tecla (Leído 9,066 veces)
|
0x0309
Desconectado
Mensajes: 215
|
Hola, quiero conseguir emular la función kbhit() de conio.h pero para dos. Conseguí el siguiente código en este libro (1001 trucos para DOS y PC y 111 Trucos más de DOS 6 - Kris Jamsa) que se ensambla con el debug.exe así: N CHECKKEY.COM
A 100 MOV AH,B INT 21 AND AL,1 MOV AH,4C INT 21
R CX A W Q
Funciona, pero el problema es que tengo es que no me reconoce las teclas de las flechas. Alguien que sepa de ensamblador podría por favor ayudarme con el código de arriba, qué le falta para que me detecte las teclas de las flechas. Yo lo construyo así dentro de cmd: y lo pruebo con este batch: @ECHO OFF :ini cls CHECKKEY.COM if errorlevel 1 echo.Presiono una tecla&pause goto ini
Cuando presiono una tecla como las del abecedario, el espacio, cambia el errorlevel, pero cuando presiono las flechas o las teclas insertar, avanzar página no las detecta, y se marea para seguir detectando.
|
|
« Última modificación: 18 Julio 2009, 01:58 am por 0x0309 »
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
No me parece una forma muy util realmente ... para probar lo logico seria hacer un bucle y ensamblar el codigo. Esto es lo que estas usando: http://www.ctyme.com/intr/rb-2565.htmY con estas dos si funcionan todas las teclas: http://www.ctyme.com/intr/rb-1755.htmhttp://www.ctyme.com/intr/rb-1754.htmPrimero haces el check y si hay tecla entonces la lees, sino la siguiente vez te dira que hay tecla por la anterior. La logica de la funcion vendria a ser algo asi: kbhit: mov ah, 01h int 16h ;llamamos a la BIOS para comprobar si alguna tecla fue pulsada pushf ;el resultado esta en el flag Z, sexto bit del registro de flags pop ax and ax, 64 ret
|
|
« Última modificación: 18 Julio 2009, 09:23 am por Eternal Idol »
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
YST
Desconectado
Mensajes: 965
I'm you
|
No se si es mas o menos a si lo que quieres . org 100h bucle: mov ah,00h int 16h cmp al,13 jne @f mov dx,intro jmp imprimir @@: cmp ah,'M' jne @f mov dx,Right jmp imprimir @@: cmp ah,'K' jne @f mov dx,left jmp imprimir @@: cmp ah,'H' jne @f mov dx,up jmp imprimir @@: cmp ah,'P' jne @f mov dx,down jmp imprimir @@: mov byte[Cadena],al mov dx,Cadena imprimir: mov ah,09h int 21h jmp bucle Right db "->",13,10,24h left db "<-",13,10,24h up db "[UP]",13,10,24h down db "[Down]",13,10,24h intro db '[Intro]',13,10,24h Cadena db 0,13,10,24h
|
|
« Última modificación: 18 Julio 2009, 19:22 pm por YST »
|
En línea
|
Yo le enseñe a Kayser a usar objetos en ASM
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
No YST, mejor consulta la documentacion sobre kbhit.
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
YST
Desconectado
Mensajes: 965
I'm you
|
No YST, mejor consulta la documentacion sobre kbhit.
Tienes toda la razón , no lei esa parte o cuando lei el post no estaba « Última modificación: Ayer a las 01:58 por 0x0309 » EDIT: Según entendi por esta explicación : La función kbhit retorna 0 si no se ha registrado una pulsada de tecla; si hay una disponible, entonces el valor retornado es distinto a cero La función seria algo a si kbhit: mov ah, 01h int 16h jz a1 xor ax,ax jmp a1.salir a1: mov ax,1 .salir: ret
|
|
« Última modificación: 19 Julio 2009, 00:47 am por YST »
|
En línea
|
Yo le enseñe a Kayser a usar objetos en ASM
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
Tienes toda la razón , no lei esa parte o cuando lei el post no estaba Siempre estuvo, en la primera oracion del hilo. La función seria algo a si Ahora si, aunque me gusto mas la forma que use para el valor de retorno.
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
YST
Desconectado
Mensajes: 965
I'm you
|
Tienes toda la razón , no lei esa parte o cuando lei el post no estaba Siempre estuvo, en la primera oracion del hilo. Entonces ya es hora que me compre lentes
|
|
|
En línea
|
Yo le enseñe a Kayser a usar objetos en ASM
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda código heuristico detección de virus
Programación Visual Basic
|
Criscr21
|
1
|
2,078
|
23 Marzo 2013, 18:40 pm
por BlackM4ster
|
|
|
Deteccion de tecla
.NET (C#, VB.NET, ASP)
|
Luna71c0
|
1
|
2,102
|
30 Septiembre 2013, 05:42 am
por El Benjo
|
|
|
Codigo activar un timer con una tecla (F1, F2,F3,etc.)
Programación Visual Basic
|
Trigger S1Z4BL3
|
4
|
4,071
|
18 Junio 2014, 18:27 pm
por 79137913
|
|