Ayuda como desabilitar siertas teclas en un hwnd

Iniciado por abdiel2475, 11 Enero 2011, 07:55 AM

0 Miembros y 1 Visitante están viendo este tema.

abdiel2475

hola bueno amm tengo una duda
quiero desabilitar unos hotkeys
osea F1,F2,F3,F4......F12
en un hwnd es para un mmorpg y pss me gustaria desactivar esas teclas
por un tiempo y volveras activar
y pss avia visto algo de registerhotkey y unregisterho...
pero no logre qe funcionara para mis gustos y pss
si alguien sabe? :)

raul338

Unregister hotkey funciona con el id del hotkey a registrar, no tengo la mas minima idea de como obtenerlo :xD capaz en el foro de Ing. Inversa te pueden ayudar

abdiel2475

pfff :/ y no hay alguna otra forma?? pa desabilitar una tecla
en un cierto programa :/

raul338

Hookear el teclado o el RegisterHotKey a esa aplicacion, aunque sera algo dificil, ya que no creo que se pueda un UnregisterHotKey desde otro proceso

BlackZeroX

.
Intenta con:

SetWindowsHookEx  (WH_KEYBOARD_LL) + GetForegroundWindow() + GetParent()

* Cada vez que entre WH_KEYBOARD_LL verificas el Hwnd con GetForegroundWindow() por medio de GetParent().

P.D.: Lo la informacion nesesaria con respecto a lo que te he expuesto esta en GOOGLE y en las ligas expuestas.

Temibles Lunas!¡.
The Dark Shadow is my passion.

abdiel2475

muchas gracias por las respuestas :)
y por cierto black el getparent me imagino qe es como el findwindow no? :o
bueno buscare el setwindowshookex :D gracias

79137913

HOLA!!!

Mirate este code, lo vi que lo posteo seba123neo en vb-mundo, revisalo, anula la tecla de windows mediante un hook al teclado, lo unico que te faltaria hacer es cambiar la tecla W$ por las F# y fijarte si la ventana activa es la del juego ;).

http://www.uploadsourcecode.com.ar/d/gT4O9xhOYguVS6IGuRDWvT3qT9B1rcH5

GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*

abdiel2475

#7
a muchas gracias 79137913 :p
aorita lo ando viendo

PD: el Setwindowshookex nose yo nesesito
un timer qe tiene interval de 100 y
detecte si oprime un hotkey mas o menos asi
es el codigoqe uso

If GetAsyncKeyState(vbKeyF1) Or GetAsyncKeyState(vbKeyF2) Or GetAsyncKeyState(vbKeyF3) Or GetAsyncKeyState(vbKeyF4) Or GetAsyncKeyState(vbKeyF5) Or GetAsyncKeyState(vbKeyF6) Or GetAsyncKeyState(vbKeyF7) Or GetAsyncKeyState(vbKeyF8) Or GetAsyncKeyState(vbKeyF9) Or GetAsyncKeyState(vbKeyF10) Or GetAsyncKeyState(vbKeyF11) Or GetAsyncKeyState(vbKeyF12) Then
subDelay 1 'segundo
Call IniciarHook(Me.hwnd)
subDelay NPDelay.Text
Call FinalizarHook(Me.hwnd)
End If


el subdelay es un tipo de espera asi como el "Sleep" y el NPDelay.text su valor es de 1 = 1 segundo
y pss nose pq se trava osea se mueven las cosas y luego se dejan oprimido el shift y nose pq en mi codigo no tiene nadaqever con shift :/ y pss :D
calare el de 79137913 :p


Edit: affs oye 79137913 as usado alguna vez ese? :/
acabo de pasar el cHook.cls a mi projecto y pss ya lo copio
todo igual y nose pq me sale un error affs :S
dice qe
No se ha definido el tipo definido por el usuario.
y me da error en:
Public Function Hook(ByVal Owner As WinSubHook2.iHook, ByVal HookType As WinSubHook2.eHookType, Optional ByVal bThread As Boolean = True) As Boolean

affs pero nose pq si lo copie todo igual al mio osea qe onda :S

Edit2: ya lo resolvi era pq nesesitaba la referencia de WinSubHook2.tlb
amm si se lo paso a un amigo mi programa ya compilado tbm nesesita tener el WinSubHook2.tlb?

79137913

HOLA!!!

Abdiel: La vez que use el programa edite directamente el form que viene en el proyecto, no cargue el cls en otro, a mi como era un proyecto chico me sirvio pero fijate, no se que sera ese error.

GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*

BlackZeroX

.
un hook es como un timer solo que MUUUUCHO mas eficiente por que trabaja cuando es nesesariop. revisa y LEE las ligas que te di, ya que tu lo que nesesitas es un Hook y eliminar el mensaje deseado en este caso el de que se oprima una tecla.

Dulces Lunas!¡.
The Dark Shadow is my passion.