对于一个控件.我不想让键盘写入任何东西或者删除它原有的东西,understand???
解决方案 »
- 我外甥高考了大专线,想学导游,什么学校、专业好?还是复读考本科好?
- Crystal Report 控件自带的导出功能为何不能使用(在线等答案)
- 求助VB一个简单的算法,我初学者碰见这种题目,脑袋就大了。
- 用vb写了个控件,可是再ie里面调用的时候,它就提示"在此页上的ActiveX控件和本页上的其它不分交互可能不安全,你想允许这种交互吗??"
- 请问,怎样固定MDI子窗口的大小和在MDI中的位置?
- 有关工程硕士专业学位
- 该怎么做可以达到目的呢???谢谢大家
- 求:SQL语法解析器控件、工具和源码,详情进入...
- 我才学啊,帮帮我 谢谢啦
- 请问如何处理MDI子窗体的最大化最小化问题!-------菜鸟急询????!!!!
- 有一字符串,里面包含了一个加减乘除的表达式.如:"1+2-(3*2)/3",怎样得到这个表达式运算过的值
- 这是我我第三天学编程。初用VB。可有点问题。请各“大虾”指教。
如果是Text,只要指定属性Text1.Locked = True就行了
至于别的要在KeyDown、KeyPress中加入下面的事件,以Text为例
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
KeyCode = 0
End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)
KeyAscii = 0
End Sub
to dbcontrols(泰山):你绝对是高手!!!
如下:
BOOL OnDeviceInit(VMHANDLE hVM, PCHAR CommandTail)
{
VKD_Disable_Keyboard(Get_Sys_VM_Handle());
return TRUE;
}
BOOL OnSysDynamicDeviceInit()
{
VKD_Disable_Keyboard(Get_Sys_VM_Handle());
return TRUE;
}
这时用户的按键都被屏蔽了。
当你们的程序启动后用DeviceIoControl给vxd发个命令,
让vxd调用VKD_Enable_Keyboard();即可。
在 VB 的应用得到以前就处理键盘动作,实现对键盘的全面控制, 可过滤任意的键。下面的例子过滤了 CTRL+C 键, 并把该键模拟为在 Command1 上单击。Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPublic Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As LongPublic Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As LongPublic Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPublic Const WH_KEYBOARD = 2
Public Const KBH_MASK = &H20000000
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_LBUTTONUP = &H202Global hHook As Long'KeyboardProc 在 VB 应用动作前发生
Public Function KeyboardProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If nCode >= 0 Then
'处理你希望过滤的键
If wParam = Asc("C") And (lParam And KBH_MASK) <> 0 Then
If (lParam And &HC0000000) = 0 Then
'模拟在Command1 中单击
Form1.Command1.SetFocus
Call PostMessage(Form1.Command1.hwnd, WM_LBUTTONDOWN, 0, &H20002)
Call PostMessage(Form1.Command1.hwnd, WM_LBUTTONUP, 0, &H20002)
KeyboardProc = 1
Exit Function
End If
End If
End If
KeyboardProc = CallNextHookEx(hHook, nCode, wParam, lParam)
End FunctionPrivate Sub Form_Load()
'将 KeyboardProc 连接到中断上
hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf KeyboardProc, 0&, App.ThreadID)
End SubPrivate Sub Form_Unload(Cancel As Integer)
Call UnhookWindowsHookEx(hHook)
End Sub