Prohibir Enter

30/11/2004 - 16:09 por Alexander Ariel Kwaszka | Informe spam
Hola, deseo saber como puedo detectar la Tecla enter en determinados
programas, e impedir el proceso que realizaria normalmente.
Se puede?
Supongamos que sea la Calculadora de Windows, que solo permita con el
mouse y no con el Enter, que se traduciria en la tecla "=".
Nota, se como detectar si esta en ejecucion, ponerlo en primer plano y
pasarle numero pra sumarle y que me sume por medio de la tecla Enter, lo
que quiero es prohibir el enter.
Se entiende.

-
PortalFox :: Nada corre como un zorr
http://www.portalfox.co

PortalFox - NNTP Forum Gatewa

Preguntas similare

Leer las respuestas

#6 Alexander Ariel Kwaszka
01/12/2004 - 13:22 | Informe spam
Gracias Jorge, vere como adaptarlo a los requerimientos.
Cualquier cosa te molestare de nuevo.
Gracias ne nuevo.
Saludos.

-
PortalFox :: Nada corre como un zorr
http://www.portalfox.co

PortalFox - NNTP Forum Gatewa
Respuesta Responder a este mensaje
#7 Carlos Joaniquet Tamburini
06/01/2005 - 02:40 | Informe spam
Creo que lo puedes hacer fácilmente con ensamblador (código máquina),
mediante las interrupciones de teclado, tanto por las funciones de la BIOS
como por las que te proporciona el sistema operativo.
Algo de eso hice en Fundamentos de Computadores II, pero tendría que repasar
los apuntes¡¡¡¡.
Suerte

"Jorge Mota" escribió en el mensaje
news:
creo que el Enter no lo puedes prohibir, a menos que como te han indicado
reasignes la tecla para otro codigo Ascii tarea nada sencilla ni aun desde
C++

de todos modos lo que si puedes hacer es enviar pulsaciones de tecla
luego de que te presionen enter

ejecuta este codigo, abre el bloc de notas y la calculadora y presiona
en ambos la tecla enter, para cancelar solo presionando la tecla ESC
en alguno de esos 2 lo detendra. para saber el titulo de la ventana activa
lo hago pasandole como parametro a GetWindowText el valor devuelto por
GetForeGroundWindow (el handle de la ventana que tiene el foco).

luego solo hago
if GetAsyncKeyState(Key_Enter) = Key_Pressed
donde key_enter = codigo Ascii de la tecla que quieras saber si fue


pulsada
y Key_pressed es una constante con valor de -32767

ojo el timer tiene como intervalo 10 milisegundos para evitar a lo maximo
que se le
escapen las pulsaciones de tecla (igual se puede construir un keylogger
con esto, pero eso es otro cantar)
asi que quiza tu comsumo del cpu se vaya al maximo. la otra no puedes
interceptar/enviar de
manera tan facil algunas pulsaciones tal como =<>.,@()&$% y signos asi,
por que eso depende de la distribucion
de tu teclado,y habria que pasarle algunos parametros para hacer scan de
tu teclado y ver que codigo
tiene asignado.


#Define Key_Pressed -32767
#Define Key_Enter 13 &&Ascii de enter
#Define Key_ESC 27 &&Ascii de ESC
Declare Integer GetAsyncKeyState In user32 Integer vKey
Declare Long GetForegroundWindow In user32
Declare Long GetWindowText In user32 Long nHandle, String @lpString, Long
cch
Declare Long keybd_event In "user32" Integer bVk, Integer bScan, Long
dwFlags, Long dwExtraInfo

_Screen.AddObject("timer11","timer1")
Read Events

Define Class TIMER1 As Timer
Interval
Enabled=.T.
Procedure Timer
cTitulo =Replicate(' ',250)
=GetWindowText(GetForegroundWindow(),@cTitulo,250)
cTitulo = Chrtran(cTitulo,Chr(0),'')
If cTitulo = 'Calculadora' Or 'Bloc' $ cTitulo
If GetAsyncKeyState(Key_Enter) = Key_Pressed
=keybd_event(Asc("2"), 0, 0, 0)
=keybd_event(Asc("0"), 0, 0, 0)
=keybd_event(Asc("0"), 0, 0, 0)
=keybd_event(Asc("4"), 0, 0, 0)
EndIf
If GetAsyncKeyState(Key_ESC) = Key_Pressed
This.Enabled = .F.
This.Interval = 0
This.Destroy()
Messagebox("Cancelado!")
Clear Events
Endif
Endif
Endproc
Enddefine

(Cada que presiones enter te ejecutara el enter y adicionalmente te
escribira 2004)

Saludos++


En , Alexander Ariel Kwaszka escribió:

> Obviamente puede ser peligroso, pero no es para lo que pensas. Es para


un
> trabajo, del cual se requiere ese control ya que no se tiene el fuente


de
> ese programa.
> Se que se puede, ayudenme porfavor!!!
>
>
> PortalFox :: Nada corre como un zorro
> http://www.portalfox.com
>
> PortalFox - NNTP Forum Gateway



Jorge Mota
Microsoft Visual FoxPro MVP
Guatemala
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida