Desactivar Mouse

06/05/2004 - 21:59 por Carlos García | Informe spam
Saludos

Necesito desactivar el uso de mouse en Excel un tiempo determinado (por
ejemplo 20 minutos), a fin de que tenga que trabajarse exclusivamente con
teclado, y luego, obviamente reactivarlo.

¿Cómo se puede hacer esto?¿Quizás con una macro?
Por favor les agradecería su ayuda

Carlos
 

Leer las respuestas

#1 Héctor Miguel
07/05/2004 - 09:00 | Informe spam
hola, Carlos !

... desactivar el ... mouse ... (... 20 minutos) ... trabajarse exclusivamente con teclado, y luego, ... reactivarlo [...]



[supongo que] desactivar el mouse de manera 'efectiva' implicaria 'meterse' con los 'drivers' de windows y...
[quien sabe que podria suceder] :(
una [posible] 'alternativa' seria... 'mandar el mouse a la...' [parte mas 'alejada' de la pantalla???]
=> usando una 'sencilla' llamada a las API's de windows y el metodo 'OnTime' -recursivo- [p.e.]
las lineas de codigo que te expongo al final...
- preparan 'el regreso' del mouse [dentro de 20 min. -o el tiempo que decidas-]
- lo 'mantienen alejado' [monitoreandolo cada segundo] usando una instruccion OnTime
[solo toma en cuenta que una 'programacion OnTime pendiente' NO se 'cancela automatico' por excel]
[si se llegara a cerrar el libro ANTES de los 20 min.] =>'mejor'... lo cancelamos nosotros. ok?<
saludos,
hector.
en un modulo de codigo 'normal' ==Public SiguienteVez As Date ' una variable para la 'repeticion' '
Private Declare Function SetCursorPos Lib "User32" (ByVal X As Long, ByVal Y As Long) As Long
Sub OcultarMouse()
If SiguienteVez = "12:00:00 a.m." Then Exit Sub ' por si 'ya esta en ejecucion' '
Application.OnTime Now + TimeValue("0:20:00"), "MouseOK" ' prepara 'el regreso' del mouse '
MouseFuera ' oculta el mouse '
End Sub
Private Sub MouseFuera() ' 'mantiene oculto' el mouse '
SetCursorPos 2000, 2000 ' mandamos el mouse a la... '
SiguienteVez = Now + TimeValue("0:00:01") ' programos 'la siguiente' '
Application.OnTime SiguienteVez, "MouseFuera", , True ' lo volvemos a 'ocultar' '
End Sub
Private Sub MouseOK() ' 'el regreso' del mouse 'desaparecido' '
Application.OnTime SiguienteVez, "MouseFuera", , False ' cancelamos la 're-programacion' '
End Sub
en el modulo de codigo del libro [ThisWorkbook] ==Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next ' por si ya estaba 'de regreso' [al cerrar el libro] '
Application.OnTime SiguienteVez, "MouseFuera", , False ' cancelamos la 're-programacion' '
End Sub

Preguntas similares