Autor
|
Tema: [Ayuda] Timer y.. (Leído 7,070 veces)
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
@IsCharAlpha @IsCharAlphaNumeric
Para detectar ê,ñ, ....
@SetWindowsHookEx @UnhookWindowsHookEx @CallNextHookEx
@WH_KEYBOARD
Para que no se use un Timer y asi no se escapa nada, ni usa demasiado el procesador
@GetAsyncKeyState estaria bien lo malo que se tiene que usar un timer a un intervalo muy bajo (como a 100 ms como minimo)
Dulces Lunas!¡.
|
|
|
En línea
|
The Dark Shadow is my passion.
|
|
|
bizco
Desconectado
Mensajes: 698
|
Si es por tema de consumo, la propia documentaicon desaconseja el uso de hooks ya que relentizan quieras o no y por una tecla y para lo que es, no creo que necesite alta precision. de normal nunca sabras si hay 15 o 3 hooks en cola, y son llamados uno despues del otro relentizando quieras o no el sistema. Hooks tend to slow down the system because they increase the amount of processing the system must perform for each message. You should install a hook only when necessary, and remove it as soon as possible.
|
|
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
@ctlon
Te lo tomas muy personal xP, solo son Octativas, y en lo que yo prefiero mejor que se vea relentisado X casos a tener un Timer que s ele escape algo... si prefiero relentizar y presisionar lo que deseo!¡.
Agregando:
Me referia al % en uso constante del procesador mas no al relentisamiento del Sistema Operativa, ya que si es un timer SIEMPRE va estar checando y un Hook solo saltara en el momento justo, y vamos para un hook al teclado solo saltara cada vez que se oprima una tecla es decir a la velocidad que OPRIME UNA PERSONA y a la velocidad de 100 ms de un timer, sin contar los intervalos de tiempo entre cada unos... Mejor el Hook.
Asi que por mi punto de vista el Hook es la mejor opcion en estos casos donde tiene que intervenir una persona, o cuestiones de intercepccion en el momento JUSTO y DESEADO, el timer seria como que para otra cosa!¡.
Dulces Lunas!¡.
|
|
« Última modificación: 16 Septiembre 2010, 21:52 pm por BlackZeroX »
|
En línea
|
The Dark Shadow is my passion.
|
|
|
bizco
Desconectado
Mensajes: 698
|
Te lo tomas muy personal para nada, ¿donde ves lo personal? Me referia al % en uso constante del procesador mas no al relentisamiento del Sistema Operativa, ya que si es un timer SIEMPRE va estar checando y un Hook solo saltara en el momento justo, y vamos para un hook al teclado solo saltara cada vez que se oprima una tecla es decir a la velocidad que OPRIME UNA PERSONA y a la velocidad de 100 ms de un timer, sin contar los intervalos de tiempo entre cada unos... Mejor el Hook. el % constante del procesador se da igual internamente, que tu aplicacion no reccione o no sea la tecla que espera tu aplicacion el sistema notifica del mismo modo a cada hook. hook chain en google y veras que internamente hay consumo y mas cosas. y mas en el caso concreto que lo quiere para un juego donde estara presionando activamente las teclas, activando continuamente el evento de teclado. en mi opinion repito, para una sola tecla con la funcion anterior sobra. si buscase seriamente rendimiento, descartaria vb y con una simple dll subclasificando la ventana principal del juego obtendria mas rendimiento que de cualquiera de estas 2 formas, pero eso ya tiene que ver el si le interesa o no.
|
|
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
. xD, bueno al caso yo me quedo con el Hook ya que solo activaria el Proceso X en el mensaje deseado (Incluso si se virtualiza el teclado pero este noe s el caso), y pues el timer estaria constantemente verificando X tiempo con GetAsyncKeyState ...
Modifico: @jorgelin95
* Ya tienes alternativas, deside cual es la que deseeas y se ajusta a lo que quieres. * Como ves cada quien tiene sus por que y para que, solo es cuestion del par aque lo quieres-
Dulces Lunas!¡.
|
|
« Última modificación: 16 Septiembre 2010, 23:12 pm por BlackZeroX »
|
En línea
|
The Dark Shadow is my passion.
|
|
|
bizco
Desconectado
Mensajes: 698
|
xD, bueno al caso yo me quedo con el Hook ya que solo activaria el Proceso X en el mensaje deseado en el mensaje no, notificaria a cada hook por cada tecla pulsada sea cual sea su intervalo y en un juego es frecuente el uso del teclado. esta claro, cada cual lo ve a su modo pero no hay que llevarse a engaño pensando que el hook solo consume cuando nosotros guardamos la pulsacion.
|
|
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
. lo que quiero decir es que por ejemplo Yo lo veo de esta forma... al Hook (Sencillo No hago ningun Hook solo es un ejemplo de mas o menos como vea a un Timer con respecto a un Hook) Declare Function WaitMessage Lib "user32" () As Long Sub main() ' No se nos escapara nada... almenos que el proceso involucrado _ corra en el mismo hilo y sea demasiado tardado... La solucion un nuevo _ Hilo o algun "semaforo" para evitar la duplicidad de un proceso que se repita _ demasiadas veces de las nesesarias O crearlo con un nuevo Hilo (No se recomienda esto en VB6... Inestable). Do DoEvents WaitMessage Loop End Sub
a Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub main() ' En el transcurso de los 100 Milisegundos se escapan quien _ sabe cuantas cosas... ademas de que traba constantemente y en ocasiones sin razon alguna Do DoEvents Sleep 100 Loop End Sub
Cual es mas factible? esperar el mensaje (Waitmessage() simulando a un Hook...) y realizar la accion o usar un Sleep (Simulando un Timer...)... Dulces Lunas!¡.
|
|
« Última modificación: 17 Septiembre 2010, 00:43 am por BlackZeroX »
|
En línea
|
The Dark Shadow is my passion.
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
por cierto donde dijo que era para un juego nunca lo vi (tal vez ni me percate)
a por cierto los dos ejemplos anteriores son solo ejemplo en el Hilo Actual (Sleep) y Waitmessage solo apra los mensajes locales, y solo representan a lo que tengo entenido en una forma facil de comprender mi objetivo primordial del por que elijiria un hook xP
Dulces Lunas!¡.
|
|
|
En línea
|
The Dark Shadow is my passion.
|
|
|
bizco
Desconectado
Mensajes: 698
|
depende el caso, seria mas factible uno que otro. pero sin lugar a dudas, en un sistema que tiene ya en la cola 30 hooks del mismo tipo (por poner un ejemplo) pues tendria que verse, nunca podria dar el mismo resultado ya que seria variable el numero de hooks existentes dependiendo que aplicaciones este ejecutando. yo no hablo del codigo en concreto dentro de la aplicacion si no el consumo que puede producir el uso inadecuado o excesivo de hooks. Yo el otro día descargue un programa lo cual su función era apretar 'space' es decir lo pobre en un juego para saltar (CS) y funciono, entonces yo mantenía apretado 'space' y saltabas varias veces, sin este programa solo salta 1 vez. La cuestión es que yo quería hacer esto pero con otra tecla en mi caso "V" si, tu puedes verlo como quieras, pero no te asegura en ningun caso un menor consumo de cpu ya que dependiendo cuanto este de cargado el sistema igual hay un rendimiento menor. Sencillamente para una tecla tener que hacer que el sistema recorra una lista N elementos a cada pulsacion de teclado tampoco creo que tenga gran diferencia con la otra forma.
|
|
« Última modificación: 17 Septiembre 2010, 00:42 am por ctlon »
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
|
|
« Última modificación: 17 Septiembre 2010, 21:22 pm por BlackZeroX »
|
En línea
|
The Dark Shadow is my passion.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
ayuda timer
Programación Visual Basic
|
asdexiva
|
3
|
2,331
|
13 Marzo 2013, 00:01 am
por MCKSys Argentina
|
|
|
[AYUDA][NOVATO] Problema con Timer Task
Java
|
Noxware
|
0
|
1,712
|
4 Octubre 2014, 02:22 am
por Noxware
|
|
|
[Ayuda]Timer en Android
« 1 2 »
Java
|
PabloPbl
|
15
|
7,937
|
13 Abril 2015, 21:38 pm
por PabloPbl
|
|
|
Ayuda timer en C#
.NET (C#, VB.NET, ASP)
|
KiddKeo
|
3
|
2,823
|
1 Julio 2018, 14:48 pm
por Eleкtro
|
|
|
Poner un timer de 10 segundos
.NET (C#, VB.NET, ASP)
|
Meta
|
1
|
2,991
|
21 Febrero 2024, 10:07 am
por elektrostudios2
|
|