请问高手,怎样让键盘上的任意一个键失效?比如让CTRL键失效?也就是说程序运行后按CTRL后没有反应?求高手写段代码SHOW给我学学,谢谢。

解决方案 »

  1.   

    Private Sub Form_KeyPress(KeyAscii As Integer)
    If KeyAscii = 17 Then KeyAscii = 0
    End SubPrivate Sub Form_Load()
    Me.KeyPreview = True
    End Sub
      

  2.   

    这样好象不行哦,这样的代码产生的效果应该是,在你的窗体具有焦点的时候,ctr不能用,而已,我想是这样。
      

  3.   

    你看看王国荣写的《visual basic6.0 windows api讲座》541-550页,关于拦截键盘。我用他的方法和动态库在程序中成功冻结了“引号”键,只是源代码手头没有,找到再说吧。
    *我是在win98下试验的
      

  4.   

    那个 王国荣写的《visual basic6.0 windows api讲座》 书蛮好?? 那个出版社的 多少钱 在那儿有卖????? 我也想要哟
      

  5.   

    Private Sub Form_KeyPress(KeyAscii As Integer)
    If KeyAscii = 你要的那个键的keyascii值 Then KeyAscii = 0
    End Sub
      

  6.   

    .BAS*************Option Explicit
    Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
    Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Public Const GWL_WNDPROC = (-4)
    Public Const WM_LBUTTONDOWN = &H201
    Public Prevwndproc As Long
    Function wndproc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    If Msg = WM_LBUTTONDOWN Then
        wndproc = CallWindowProc(Prevwndproc, hWnd, Msg, wParam, lParam)
        Form1.Text1.Visible = True
    Else
        wndproc = CallWindowProc(Prevwndproc, hWnd, Msg, wParam, lParam)
    End If
    End Function
    .Form************
    Private Sub Form_Load()
        Prevwndproc = GetWindowLong(Command1.hWnd, GWL_WNDPROC)
        SetWindowLong Command1.hWnd, GWL_WNDPROC, AddressOf wndproc
        
        
        
        
        
        
        
        
        
    End SubPrivate Sub Form_Unload(Cancel As Integer)
        If Prevwndproc <> 0 Then
            SetWindowLong Command1.hWnd, GWL_WNDPROC, Prevwndproc
            Prevwndproc = 0
        End If
    End Sub