CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

怎样判断剪贴板中的内容是否被刷新。

楼主laisiwei(.:RNPA:.刺猬)2002-02-14 10:53:20 在 VB / 基础类 提问

用HOOK   ,注意:是刷新,不是改变 问题点数:100、回复次数:2Top

1 楼qsheep(阿里路亚)回复于 2002-02-15 00:39:17 得分 10

I   did   can   help   you   ,i   love   score   score   分分分分   huohuo....  
  look   below:  
   
  //USE   SetClipboardViewer   API  
  The   SetClipboardViewer   function   adds   the   specified   window   to   the   chain   of   clipboard   viewers.   Clipboard   viewer   windows   receive   a   WM_DRAWCLIPBOARD   message   whenever   the   content   of   the   clipboard   changes.    
   
  Public   Declare   Function   SetClipboardViewer   Lib   "user32"   Alias   "SetClipboardViewer"   (ByVal   hwnd   As   Long)   As   Long  
   
  hwnd       //   handle   to   clipboard   viewer   window  
   
  例如:  
  sub   form_load()  
        dim   iPrev   as   long          
        iPrev=SetClipboardViewer(me.hwnd)  
  end   sub  
   
  当change时,form   收到   WM_DRAWCLIPBOARD   消息,OK?ahah.Top

2 楼Chice_wxg(学)(习)回复于 2002-02-15 07:59:23 得分 90

什么叫刷新?如果刷新了内容不变,与不刷新不是一样吗?  
   
  1、程序开始设置监视器:  
  SetNewWndProc   frmMain.hwnd  
  NextViewerHandle   =   SetClipboardViewer(Me.hwnd)  
   
  2、程序结束,关闭监视  
  UnsetNewWndProc   Me.hwnd  
  ChangeClipboardChain   Me.hwnd,   NextViewerHandle  
   
   
  3、模块声明:  
  Public   Const   GWL_WNDPROC   =   (-4)  
   
  Public   Const   WM_CHANGECBCHAIN   =   &H30D  
  Public   Const   WM_DRAWCLIPBOARD   =   &H308  
   
  Declare   Function   SetWindowLong   Lib   "user32"   Alias   "SetWindowLongA"   (ByVal   hwnd   As   Long,   ByVal   nIndex   As   Long,   ByVal   dwNewLong   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  
  Declare   Function   SetClipboardViewer   Lib   "user32"   (ByVal   hwnd   As   Long)   As   Long  
  Declare   Function   ChangeClipboardChain   Lib   "user32"   (ByVal   hwnd   As   Long,   ByVal   hWndNext   As   Long)   As   Long  
   
  Public   OldWindowProc   As   Long  
  Public   NextViewerHwnd   As   Long  
   
  '参数含义如下:  
  'h---hWnd句柄         m---Msg消息号         w---wParam系统第1参数         l---lParam系统第2参数  
  Public   Function   WindowProc(ByVal   h   As   Long,   ByVal   m   As   Long,   ByVal   w   As   Long,   ByVal   l   As   Long)   As   Long  
          Select   Case   m  
                  Case   WM_CHANGECBCHAIN:  
                          If   w   =   NextViewerHwnd   Then  
                                  NextViewerHwnd   =   l  
                          Else  
                                  If   NextViewerHwnd   <>   0   Then   SendMessage   NextViewerHwnd,   m,   w,   l  
                          End   If  
                  Case   WM_DRAWCLIPBOARD:  
                          If   NextViewerHwnd   <>   0   Then   SendMessage   NextViewerHwnd,   m,   0,   0  
          好了,这里就是要处理的地方。用户执行了拷贝命令!剪贴板被改变/刷新了  
          End   Select  
  WindowProc   =   CallWindowProc(OldWindowProc,   h,   m,   w,   l)  
  End   Function  
   
  Public   Sub   SetNewWndProc(ByVal   hwnd   As   Long)  
  OldWindowProc   =   SetWindowLong(hwnd,   GWL_WNDPROC,   AddressOf   WindowProc)  
  End   Sub  
   
  Public   Sub   UnsetNewWndProc(ByVal   hwnd   As   Long)  
  SetWindowLong   hwnd,   GWL_WNDPROC,   OldWindowProc  
  End   Sub  
   
   
   
   
  注;以上代码是我的一个软件的部分代码,调试通过!完全正常。Top

相关问题

  • 怎样用vba判断剪贴板是否为空、清除word剪贴板内容
  • 怎样判断剪贴板是否为空啊?不考虑格式
  • 怎样操作剪贴板,从而实现复制、剪切与粘贴?同时判断剪贴板里边的数据是否是文本。
  • 请问如何将文件拷贝到剪贴板?如何判断剪贴板里的内容是否为我们定义的文件?
  • 如何判断剪贴板不为空?
  • 怎么判断剪贴板中的数据是否为字符串而不是图片或别的信息?
  • 如何判断剪贴板内容是否为字符串?如何阻止程序关闭?
  • 在c++builder中如何用Tclipboard类刷新剪贴板.
  • 怎么判断剪贴板数据是从哪里来的?
  • 如何得到剪贴板中是否写入了信息。

关键词

  • me
  • setclipboardviewer
  • 刷新
  • nextviewerhwnd
  • longdeclare
  • drawclipboard
  • byval
  • hwnd
  • oldwindowproc
  • clipboard viewer

得分解答快速导航

  • 帖主:laisiwei
  • qsheep
  • Chice_wxg

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo