|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jun 2001
Città: Catania
Messaggi: 2690
|
[VB2010] - Disabilitare tastiera
Salve ragazzi,
sapete come fare via codice a bloccare l'uso della tastiera e quindi obbligare l'utente ad usare solo il mouse? Ho visto che questa funzione è presente nel file rundll32.exe ma quando lo utilizzo mi da errore. Premetto che utilizzo VB2010 su Windows7 e questo è il presunto codice per disabilitare la tastiera: Codice:
Public Class Form1
Private Sub Disable_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Disable.Click
Shell("C:\Windows\System32\rundll32.exe keyboard,disable")
End Sub
End Class
![]() Avete avuto modo di trovarvi e quindi risolvere il problema? Grazie
__________________
Unisciti a noi: http://www.swproduction.altervista.org/ - http://www.enews.altervista.org/
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jun 2001
Città: Catania
Messaggi: 2690
|
...sono sempre alla ricerca di una procedura per bloccare l'utilizzo della tastiera durante l'avvio del mio progetto.
In giro per la rete ho trovato questa funzione Codice:
Function CheckDate()
Dim objCtl
objCtl = Window.Event.SrcElement
sKeyCode = Window.Event.KeyCode
If Len(objCtl.value) >= 8 Then
If (sKeyCode >= 0 And sKeyCode <= 255) Then
Window.Event.KeyCode = Empty
End If
Else
If (sKeyCode >= 48 And sKeyCode <= 57) Then
If Len(objCtl.Value) = 2 Or Len(objCtl.Value) = 5 Then
objCtl.Value = objCtl.Value & "/"
End If
Else
Window.Event.KeyCode = Empty
End If
End If
End Function
![]() Mi aiutate a risolvere?
__________________
Unisciti a noi: http://www.swproduction.altervista.org/ - http://www.enews.altervista.org/
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jun 2001
Città: Catania
Messaggi: 2690
|
Salve ragazzi,
ho trovato questo codice ma non riesco a provarlo perchè mi segnala un errore sulla linea in grassetto e sottolineata. Il codice originario è per VB6 ma l'ho modificato in modo da essere leggibile da VB 2010 a parte l'errore di cui parlo sopra. Codice:
Public Class Form1
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As Object, ByVal Source As Object, ByVal Length As Long)
Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Object) As Long
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public Const HC_ACTION = 0
Public Const WM_KEYDOWN = &H100
Public Const WM_KEYUP = &H101
Public Const WM_SYSKEYDOWN = &H104
Public Const WM_SYSKEYUP = &H105
Public Const VK_TAB = &H9
Public Const VK_ESCAPE = &H1B
Public Const VK_SHIFT = &H10 'SHIFT key
Public Const VK_CONTROL = &H11 'CTRL key
Public Const VK_MENU = &H12 'ALT key
Public Const VK_LWIN = &H5B 'Left Windows key (Microsoft® Natural® keyboard)
Public Const VK_RWIN = &H5C 'Right Windows key (Natural keyboard)
Public Const VK_APPS = &H5D 'Applications key (Natural keyboard)
'VK_LAUNCH_MAIL B4 Windows 2000: Start Mail key
'VK_LAUNCH_MEDIA_SELECT B5 Windows 2000: Select Media key
'VK_LAUNCH_APP1 B6 Windows 2000: Start Application 1 key
'VK_LAUNCH_APP2 B7 Windows 2000: Start Application 2 key
Public Const WH_KEYBOARD_LL = 13
Public Const LLKHF_ALTDOWN = &H20
Dim hhkLowLevelKybd As Long
Private Sub chkDisable_Click()
'If chkDisable = vbChecked Then
' hhkLowLevelKybd = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf LowLevelKeyboardProc, App.hInstance, 0)
'Else
' UnhookWindowsHookEx(hhkLowLevelKybd)
' hhkLowLevelKybd = 0
'End If
End Sub
Public Structure KBDLLHOOKSTRUCT
Dim vkCode As Long
Dim scanCode As Long
Dim flags As Long
Dim time As Long
Dim dwExtraInfo As Long
End Structure
Dim p As KBDLLHOOKSTRUCT
Public Function LowLevelKeyboardProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim fEatKeystroke As Boolean
If (nCode = HC_ACTION) Then
If wParam = WM_KEYDOWN Or wParam = WM_SYSKEYDOWN Or wParam = WM_KEYUP Or wParam = WM_SYSKEYUP Then
CopyMemory(p, lParam, Len(p))
fEatKeystroke = _
p.vkCode = VK_LWIN Or _
p.vkCode = VK_RWIN Or _
p.vkCode = VK_APPS Or _
p.vkCode = VK_CONTROL Or _
p.vkCode = VK_SHIFT Or _
p.vkCode = VK_MENU Or _
((GetKeyState(VK_CONTROL) And &H8000) <> 0) Or _
((p.flags And LLKHF_ALTDOWN) <> 0)
End If
End If
If fEatKeystroke Then
LowLevelKeyboardProc = -1
Else
LowLevelKeyboardProc = CallNextHookEx(0, nCode, wParam, lParam)
End If
End Function
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
If hhkLowLevelKybd <> 0 Then UnhookWindowsHookEx(hhkLowLevelKybd)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
hhkLowLevelKybd = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf LowLevelKeyboardProc, System.Runtime.InteropServices.Marshal.GetHINSTANCE(System.Reflection.Assembly.GetExecutingAssembly.GetModules()(0)).ToInt32(), 0)
End Sub
End Class
__________________
Unisciti a noi: http://www.swproduction.altervista.org/ - http://www.enews.altervista.org/
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:33.





















