vbRichClient5的ClipBoard对象参考

ClipBoard
    简介:创建剪切板对象,比VB自带的对象好用。
    备注:这个对于使用Office的VBA的人来说,绝对是一个福音。在vba中要使用剪切板,得翻山越岭才能使用,而且相当艰难。
          对于Office各个程序间传递数据,在某些场合下,使用好剪切板,性能会成百倍增强,而且方便。
    原型:Function ClipBoard() As cUniClipBoard
方法
Clear()
原型:Sub Clear()
GetData()
原型:Function GetData([Format]) As StdPicture
GetFiles()
原型:Function GetFiles() As cDataObjectFiles
GetFormat()
原型:Function GetFormat(Format As Integer) As Boolean
GetFormats()
原型:Function GetFormats()
GetFormatString()
原型:Function GetFormatString(Format As Long) As String
GetImageSurface()
原型:Function GetImageSurface() As cCairoSurface
GetText()
原型:Function GetText([Format As ClipBoardFormats = CF_TEXT]) As String
SetData()
原型:Sub SetData(Picture As StdPicture, [Format])
SetFiles()
原型:Sub SetFiles(FileList As cDataObjectFiles)
SetImageSurface()
原型:Sub SetImageSurface(ImageSrf As cCairoSurface)
SetText()
原型:Sub SetText(S As String, [Format As ClipBoardFormats = CF_TEXT])

转载于:https://www.cnblogs.com/Spacecup/p/3488606.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
发现网上关于vbrichclient的教程比较少,但这个实在是好东西,实用性,稳定性都比VB自带的winsock好的多,多客户端不用winsock控件数组。 也不用在各窗体上放winsock,直接在模块中就能实现收发 下面直接上代码,窗体和文本钮、按钮大家自行拖放。要用到VB自带隐藏函数varptr()取内存指针(VbMsdn中没有这个函数,实际上很简单^^)。 VbRichClient5.0.38中包含sqlite3.9支持 上面共享中也包含VbRichClient5.0.38支持库 VbRichClient代替winsock 主要使用 cTCPServer cTCPClient cUDP '--------------------------------------------------------------------- '服务器端,代码最简化,要实现多客户端只要用数组存hsocket就可以 Option Explicit Dim WithEvents sv As cTCPServer Dim WithEvents udp1 As cUDP Dim cHsocket& Private Sub Form_Load() Set sv = New cTCPServer sv.Listen sv.GetHost("127.0.0.1"), 35912 Debug.Print sv.GetHost("") Set udp1 = New cUDP udp1.Bind "127.0.0.1", 5616 End Sub Private Sub sv_DataArrival(ByVal hSocket As Long, ByVal BytesTotal As Long, ByVal FirstBufferAfterOverflow As Boolean) Dim d() As Byte, s$ ReDim d(BytesTotal - 1) sv.GetData hSocket, VarPtr(d(0)), BytesTotal '★★关键代码 s = d Text2.Text = Text2.Text & s & vbCrLf Debug.Print "收到:" & BytesTotal End Sub Private Sub sv_TCPAccepted(ByVal hSocket As Long) cHsocket = hSocket Text1.Text = Text1.Text & sv.GetPeerHostIPAndPort(hSocket) & vbCrLf End Sub Private Sub sv_TCPDisConnect(ByVal hSocket As Long) Text3.Text = Text3.Text & sv.GetPeerHostIPAndPort(hSocket) & vbCrLf End Sub Private Sub udp1_NewDatagram(ByVal BytesTotal As Long, ByVal FirstBufferAfterOverflow As Boolean) Dim d() As Byte, s$ ReDim d(BytesTotal - 1) udp1.GetData VarPtr(d(0)), BytesTotal s = d Text2.Text = Text2.Text & s & vbCrLf End Sub '------------------------------------------------------- '客户端 Option Explicit Dim WithEvents cl As cTCPClient Dim WithEvents udp1 As cUDP Dim cid& Private Sub Command1_Click() cid = cl.Connect("QgB1", 35912) End Sub Private Sub Command2_Click() cl.Disconnect cid End Sub Private Sub Command3_Click() Dim b() As Byte b = Text1.Text cl.SendData cid, VarPtr(b(0)), UBound(b) + 1 End Sub Private Sub Command4_Click() Dim d() As Byte, s$ s = "yessss" d = s udp1.RemoteIP = "127.0.0.1" udp1.RemotePort = 5616 u
说明: 1此程序由ecz00程序优化而来 地址 http://download.csdn.net/download/ecz00/9403630 因此程序可以说是网上唯一的tcpclient使用的中文案例,提供了我思路,在此感谢 ;为什么用这个插件,vb自带的插件winsock 这么有用的插件 居然不是微软自带的插件, 最要命的是 直接注册ocx控件 win7 win10上可能因为序列号无法注册,那么vb下如何开发ip客户端,变得很麻烦,尝试过APi方法的,但是过于复杂,程序量太大,比较麻烦,因此用 此方案比较可行,在原版的基础上花了5天时间摸索和优化, 此版本使用方法 1 把vbRichClient5.dll放进C:\Windows\SysWOW64 (64位系统) 2 在vb6中点击 工程->引用 把上面的dll引用进来就可以额,不需要注册 3:使用sscom5.12.1 或其他tcp调试软件软件启动tcpserver 地址是127,0,0,1 5676 4:直接运行本软件即可使用。点击连接,显示成功,说明连接成功,可以相互发送数据了 服务端的程序在原版上未做修改,请自行优化 此软件改进了原版 1:无法显示连接状态和错误信息 2:只能发送不能接收 3:使用主机名的连接方式,无法直接使用,一开始 4:无法显示byte值 5:界面修改 6:连接的时候,不断开以前的连接,造成重复连接 提示 vbRichClient5的手册找遍了都找不到,估计作者都没写,更别想有中文版了,所以只能 在vb6中点击视图-》对象窗口,可显示vbRichClient5.dll 所有的类和方法 QQ175891641 2018-2-15优化
AB双方交换共享码流程说明:【双方使用一样的素数和原数,最终生成的共享码是完全一致的。】 A方: 用 素数prime,原数base,A任意自定的整数私锁 -> 生成公锁A (把公锁A发给B) B方: 用 素数prime,原数base,B任意自定的整数私锁 -> 生成公锁b (把公锁b发给A) 对应cCrypt中的:属性DiffieHellmanPrime,属性DiffieHellmanBase,属性DiffieHellmanPrivate -> DiffieHellmanCreatePublicKey() A方: 用 素数prime,原来自定的整数私锁A,公锁b-> 生成共享码 B方: 用 素数prime,原来自定的整数私锁b,公锁A-> 生成共享码 对应cCrypt中的:属性DiffieHellmanPrime,属性DiffieHellmanPrivate,属性DiffieHellmanPublic -> DiffieHellmanCreateSharedSecret() 说明:cCrypt中的GenPrime()用于随机生成一个极大的素数,CheckPrime()用于检查该数是否素数。 --------------------------------------------------------------------------------------------------------------------------------------- diffie-hellman算法原理(原理其实很简单,但大素数、原数及高次元方程比较难解^_^): 例子:设密钥交换基于素数P=97 和 97的一个原根G = 5 A和B分别随意选择私有密钥XA=36 和 XB=58。 每人计算其公开钥:YA=5^36=50 mod 97 :YB=5^58=44 mod 97 取了公开钥之后,都把公锁发给对方 再各自用以下公式计算得出双方共享数: Ka = (YB)^XA mod 97 = 44^36 = 75 mod 97 Kb = (YA)^XB mod 97 = 50^58 = 75 mod 97 如上所示,在双方不改变用于生成公锁的私锁值情况下(且素数一致),双方计算得到的shareKey是一样的!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值