'设置Timer1的interval=100 
Private Sub Timer1_Timer()
    Clipboard.Clear
End Sub
'所有的关于剪贴板操作都被取消了!够狠的!

解决方案 »

  1.   

    to Accelerator(自由落体):请问你说的[另外创建一个窗口函数,拦截用户的操作]有没有相关的例子呢?我不知道从哪里入手啊!
      

  2.   

    用几个API函数,下面是声明:
    Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    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 DefWindowProc Lib "user32" Alias "DefWindowProcA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Public Declare Function GetClassLong Lib "user32" Alias "GetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long在你的窗口里面改变该窗口的窗口函数:
    Private Sub Form_Load()
    Dim ret As Longret = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf Wndproc)End Sub模块中定义上面的Wndproc,这是新的窗口函数。
    Public Function Wndproc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
        If Msg=? Then  '这里找出你要屏蔽的消息
             '
             Exit Sub
        End If
        '如果不是要屏蔽的东西,调用原来的窗口函数
        Wndproc = CallWindowProc(GetClassLong(hwnd, GCL_WNDPROC), hwnd, Msg, wParam, lParam)
    End Function
      

  3.   

    最后问一下Accelerator(自由落体):我只要屏蔽复制的功能,If Msg=? Then 该改成什么?对不起,我很苯的,麻烦你再指导一下,成功后我会立即给分的
      

  4.   

    Public Function Wndproc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
        If Msg=WM_Copy Then  '这里找出你要屏蔽的消息
             '
             Exit Sub
        End If
        '如果不是要屏蔽的东西,调用原来的窗口函数
        Wndproc = CallWindowProc(GetClassLong(hwnd, GCL_WNDPROC), hwnd, Msg, wParam, lParam)
    End Function
      

  5.   

    呵呵,这个讲起来就复杂了
    或许你要屏蔽很多消息,例如不让右键起作用WM_RBUTTONDOWN,WM_RBUTTONUP
    以及用户的按键消息WM_KEYDOWN或者WM_KEYUP,在按键消息里面分析一下是否同时按下CTRL键,相关的信息你查查MSDN。
    另:写错了一个,不是Exit Sub,而是Exit Function
    不要去调试这个函数,在VB的调试中它是个死循环
      

  6.   

    text1_keydown(..)
    if shift=vbkeyctrl then
    text1.locked=true
    在text1_keyup()中恢复