• Viernes 15 de Noviembre de 2024, 05:22

Autor Tema:  Re: OTRA VEZ!!! BLOQUEO DE TECLADO Y MOUSE  (Leído 2061 veces)

Lemus

  • Miembro activo
  • **
  • Mensajes: 46
    • Ver Perfil
Re: OTRA VEZ!!! BLOQUEO DE TECLADO Y MOUSE
« en: Sábado 29 de Marzo de 2003, 09:35 »
0
Hola a todos, fijense que mi problema es que no se como bloquear el teclado y el mouse bajo win2000, si alguien sabe como hacerlo, o si tiene alguna API... les agradeceria muchisimo.

Atte.  .:: LEMUS ::.
___________________________________________________

::: LEMUS ::: TheGreatHomeless :::
___________________________________________________

http]

J.M.Movilla

  • Miembro MUY activo
  • ***
  • Mensajes: 427
    • Ver Perfil
Re: OTRA VEZ!!! BLOQUEO DE TECLADO Y MOUSE
« Respuesta #1 en: Sábado 29 de Marzo de 2003, 10:30 »
0
Supongo que lo que buscas es bloquear el input de datos MIENTRAS EJECUTAS UN PROCESO, y que cuando éste termine se desbloqueen el teclado y el mouse automáticamente...
Prueba esto (yo lo uso mientras ejecuto las copias de seguridad, con éxito garantizado...)

' ------------
' EN UN MODULO
' ------------

' Para desactivar el teclado mientras se ejecuta un proceso externo
    Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessID As Long) As Long
    Public Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
    Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    Const STILL_ACTIVE = &H103
    Const PROCESS_QUERY_INFORMATION = &H400

    Public Sub ExecCmdNoFocus(ByVal CmdLine As String)
        'Esperar a que un proceso termine,
        'La ventana se mostrará minimizada sin foco
        Dim hProcess As Long
        Dim RetVal As Long
        'The next line launches CmdLine as icon,
        'captures process ID
        hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, Shell(CmdLine, vbMinimizedNoFocus))
        Do
        'Get the status of the process
        GetExitCodeProcess hProcess, RetVal
        'Sleep command recommended as well
        'as DoEvents
        DoEvents
        Sleep 100
        'Loop while the process is active
        Loop While RetVal = STILL_ACTIVE
    End Sub



' -------
' LLAMADA
' -------

Private Sub Rutina...
'
'
'
ExecCmdNoFocus (Proceso a ejecutar...)
' ------------------------------------
'
'
End Sub


Saludos y suerte, a ver si he dado con tus necesidades...

Lemus

  • Miembro activo
  • **
  • Mensajes: 46
    • Ver Perfil
Re: OTRA VEZ!!! BLOQUEO DE TECLADO Y MOUSE
« Respuesta #2 en: Domingo 30 de Marzo de 2003, 11:10 »
0
J.M.Movilla, gracias por el código que me pasaste, pero fijate que no me sirve, lo ejecuto y efectivamente me aparece minimizada la aplicación que se haya ejecutado en la linea

ExecCmdNoFocus (Proceso a ejecutar...)

y aunque la aplicación no haya terminado me permite usar el teclado y el mouse normalmente sin restricciones...

Fijate que lo que quiero hacer es un software de seguridad que se pueda ejecutar de forma remota para así impedir el uso de esa computadora(teclado y mouse) , y tambien habilitarlos de forma remota.

ya use lo siguiente:

Shell "rundll32 keyboard,disable" para el teclado
Shell "rundll32 mouse,disable" para el mouse

y tambien la API solo para el teclado:

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

ShellExecute "rundll32 keyboard,disable" 'desactiva el Teclado.
ShellExecute "rundll32 keyboard,enabled" 'activa el Teclado.

esas lineas me funcionan muy bien en Win95, Win98 y WinMe, pero en Win2000 no funciona para nada.

Gracias J.M.Movilla...
___________________________________________________

::: LEMUS ::: TheGreatHomeless :::
___________________________________________________

http]

J.M.Movilla

  • Miembro MUY activo
  • ***
  • Mensajes: 427
    • Ver Perfil
Re: OTRA VEZ!!! BLOQUEO DE TECLADO Y MOUSE
« Respuesta #3 en: Domingo 30 de Marzo de 2003, 12:00 »
0
Yo utilizo esa rutina para hacer las copias de seguridad, y puedo asegurarte que hasta que no termina el proceso mi teclado y mi mouse están bloqueados...
Probablemente sea cosa del Windows 2000, porque en XP va bien.

Lemus

  • Miembro activo
  • **
  • Mensajes: 46
    • Ver Perfil
OTRA VEZ!!! BLOQUEO DE TECLADO Y MOUSE
« Respuesta #4 en: Lunes 31 de Marzo de 2003, 09:27 »
0
Fijate que si va a ser cosa del win2000 por que ya lo probe en WinXP y si funciona...

Gracias...!!!
___________________________________________________

::: LEMUS ::: TheGreatHomeless :::
___________________________________________________

http]