如何监视系统剪贴板变化?

来源:互联网 发布:淘宝手包 编辑:程序博客网 时间:2024/05/11 10:03

 

       今天在上网时,复制了一个数据,可是因为其他事情忘记粘贴了,后来就找不到了,所以想到做一个监视系统剪贴板变化的程序,然后把内容放到一个RIchtextbox中,可是我不知道应该如何监视系统剪贴板变化,所以就用Timer来不断的浏览剪贴板内容,可是这样比较占用内存,不是理想的做法,所以想监视系统剪贴板变化,一旦发现有复制或者剪切,就把剪贴板内的可以转化为文本的内容放到Richtextbox中,实现内容的保存,不知道哪位曾经有过这方面的经验,希望能给予指点!

       现在我做的一个放到网上,供大家参考,同时希望有人能给出更好的意见! 

Dim CurInfo As String   '''用于上次记录的剪贴板信息

    
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Timer1.Interval 
= 10000   '''十秒刷新
        Timer1.Start()
        GetInfo()
    
End Sub


    
Sub GetInfo()    '''获取剪贴板信息
        Dim Idata As IDataObject
        Idata 
= System.Windows.Forms.Clipboard.GetDataObject()

        
If Idata.GetDataPresent(DataFormats.Text) = True Then
            
If Idata.GetData(DataFormats.Text).ToString = CurInfo Then
                
Exit Sub
            
End If
            CurInfo 
= Idata.GetData(DataFormats.Text).ToString
            RTBox.AppendText(
">>>>>>" & Now & vbCrLf)           '''RTBox是一个Richtextbox
            RTBox.AppendText(Idata.GetData(DataFormats.Text).ToString & vbCrLf & vbCrLf)
        
End If
    
End Sub


    
Private Sub Timer1_Elapsed(ByVal sender As System.Object, ByVal e As System.Timers.ElapsedEventArgs) Handles Timer1.Elapsed
        GetInfo()
    
End Sub

原创粉丝点击