本帖最后由 needanothercoder 于 2012-03-24 08:00:43 编辑

解决方案 »

  1.   

    Clipboard.Clear '清空剪贴板
      

  2.   

    使用一个定时器,定时时间可以设置为100到500吧sub timer1_Timer
     Clipboard.Clear 
    end sub
      

  3.   

    谢以上回复
    你们的思路是一样的
    我目前也是这么做的
    但这个方法,timer的interval需要很小,不然还是有可能不行,timer这么频繁调整用一定影响程序的畅性有没有更根本的让剪贴板失效的办法?失常也行。
      

  4.   

    剪贴板有内容时再干掉吧,这样不需要定时器了.'新建窗体
    Option Explicit
    '让剪贴板失效
    '
    'By 嗷嗷叫的老马
    'http://www.m5home.com/Private Const WM_DRAWCLIPBOARD As Long = &H308&Private Declare Function SetClipboardViewer Lib "user32.dll" ( _
         ByVal hWnd As Long) As Long
    Private Declare Function ChangeClipboardChain Lib "user32.dll" ( _
         ByVal hWnd As Long, _
         ByVal hWndNext As Long) As LongDim WithEvents oSubClass As cSubclass  '单类模块子类化类,作者为PctGL,下载地址:http://www.m5home.com/bak_blog/article/487.html
    Dim lPreClipboard As LongPrivate Sub Form_Load()
        Set oSubClass = New cSubclass       '对象实例化
        oSubClass.SetMsgHook Me.hWnd      '挂上自己
        
        lPreClipboard = SetClipboardViewer(Me.hWnd)         '插入一个观察窗口
    End SubPrivate Sub Form_Unload(Cancel As Integer)
        Call ChangeClipboardChain(Me.hWnd, lPreClipboard)   '恢复下一个观察窗口
        
        oSubClass.SetMsgUnHook          '解除子类化
        Set oSubClass = Nothing             '销毁对象
    End SubPrivate Sub oSubClass_GetWindowMessage(Result As Long, ByVal cHwnd As Long, ByVal Message As Long, ByVal wParam As Long, ByVal lParam As Long)
        Select Case Message
            Case WM_DRAWCLIPBOARD       '剪贴板中有内容了
                Clipboard.Clear         '干掉.....
        End Select
        Result = oSubClass.CallDefaultWindowProc(cHwnd, Message, wParam, lParam)
    End Sub