vb实现远程共享显示及声音

vb实现远程共享显示及声音

ID:30806358

大小:107.18 KB

页数:8页

时间:2019-01-03

vb实现远程共享显示及声音_第1页
vb实现远程共享显示及声音_第2页
vb实现远程共享显示及声音_第3页
vb实现远程共享显示及声音_第4页
vb实现远程共享显示及声音_第5页
资源描述:

《vb实现远程共享显示及声音》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、VB实现远程共享显示及声音发表日期:2005-08-03作者:[转贴]出处:    在局域网内共享调制解调器以及共享打印机都是我们非常熟悉的,而对于显示器和声卡的共享一般比较陌生。  当你在进行教学、演示或展示时,也许你希望主控电脑上的画面同时也出现在其它电脑上;当你在跟踪调试程序时,你也许梦想过两台显示器能够同步,以便观看源代码时不破坏运行程序画面;还有,出于管理的目的,或许你需要远程监控其它电脑的运行状况,等等。上述所有情况都是远程共享显示的例子。  共享声卡的需求也不少:首先这可以降低硬件投资,让没有装或者没法装声卡的电脑(如某些笔记本电脑)也有了“喉舌”;其次,即使每台机器都有

2、声卡也不无用武之地:至少你的mp3背景音乐与你的英语有声软件不再经常发生冲突了;还有,共享声卡使得“远程有声通知”成为可能,其作用类似于立即型声音邮件,在日常工作中有广泛的应用。  共享显示器或声卡的硬件(一般在扩展槽内插一块卡)在市场上不难找到。但扩充本文的示例程序即可以用软件轻松实现这些功能。一、共享显示  我们通过一个完整的示例程序(VB6.0)来说明。在例子中,被共享端(即服务器端)的任务是:自动捕获本机的当前显示画面,并将之传给共享端(即客户端)。  1.服务器端程序(frmServer.frm)  这里有三点需要重点说明:一是自动捕获画面问题。为了模拟“捕获屏幕键”被按下的

3、动作,程序里使用了API调用keybd_event。虽然VB的SendKeys语句也有类似功能,但它不如keybd_event稳定和可靠。二是画面粘贴和压缩存储问题。为了能把已经被捕获到系统剪贴板中的图像粘贴下来并存储到文件,程序里使用了ImgEdit控件。该控件强大的功能远非PictureBox控件或Image控件可比。ImgEdit不仅支持多种压缩图像格式(如JPG、TIFF等),而且它对画面进行操纵和编辑的功能也非常强大(如图像旋转、缩放、嵌入等)。ImgEdit还能对剪贴板进行Copy、Cut、Paste等操作。使用Ctrl+T或菜单(工程->部件)来添加Windows标准的I

4、mgEdit控件(参见图一)。三是文件传输问题。用ImgEdit存储的压缩文件一般只有40KB左右,使用Winsock控件可以一次传输出去。但由于接收方的Winsock控件一般是4K至8K调用一次DataArrival子程,故程序使用主动分块进行传输,接收方确认后再发下一块。   服务器端源程序如下:'frmServer.frmOptionExplicitConstFileName="C:sys1.tmp",BlockSize=3072'传送包大小PrivateDeclareSubkeybd_eventLib"user32"_(ByValbVkAsByte,ByValbScanAsB

5、yte,_ByValdwFlagsAsLong,ByValdwExtraInfoAsLong)PrivateSubForm_Load()tcpServer.LocalPort=1001'设置监听端口号tcpServer.Listen'开始监听EndSubPrivateSubtcpServer_ConnectionRequest(ByValrequestIDAsLong)IftcpServer.State<>sckClosedThentcpServer.ClosetcpServer.AcceptrequestIDtcpServer.SendData"SH"'成功连接后,发送“握手”信

6、息EndSubPrivateSubtcpServer_DataArrival(ByValbytesTotalAsLong)StaticFileIDAsInteger,Cur_PosAsLong,FileLenAsLongDimstrDataAsString,jDimBuf()AsByte'定义一个可变大小的数组,用于传送二进制图像包tcpServer.GetDatastrDataSelectCasestrDataCase"Close"'接到“Disconnect”命令后,关闭当前连接,并继续监听tcpServer.CloseImgEdit1.ClearDisplaytcpServer

7、.LocalPort=1001tcpServer.ListenCase"SavePicture"Callkeybd_event(vbKeySnapshot,1,0,0)'模拟按键操作j=DoEvents()IfDir$(FileName)<>""ThenKillFileNameIfImgEdit1.IsClipboardDataAvailableThen'当剪贴板上有数据时ImgEdit1.ClearDisplayImgEdit1.Displa

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。