问题有两个:1、如何提高传输速度,如果用Winsock来做,一般使用什么样的方法传输速度最快?
2、如何将被监控机的鼠标也保存在截屏图象中?
2、如何将被监控机的鼠标也保存在截屏图象中?
解决方案 »
- VSFlexGrid的列设为单选框等问题
- SOS----IIS调用DLL的默认用户最权限
- datareport问题(我在里面只画一个线条,其他什么也没有,datasource怎么设置)
- 这种形式的radio该怎样选中?
- 求求你们了,谢谢大家~~~~~~~~~~~~
- 新建函数时用什么方法建立可选参数??
- vb 的 SOCK的问题
- 如何新建一个Access库,添加所需记录,然后保存?
- 问题>>>>>>>>>>>>>>>>>>>>>可不可以介绍几个财务管理软件。适用于超市或者饭店。运行在普通PC机那种
- 我想将VB,PB,VC,合编的程序打包(包括ODBC数据源两个)
- 我要设打印纸横向纵向, 打了sp5补丁用 DataReport.Orientation 就可以设了,但是对于老的DataReport,怎么办?
- 有人会用ZEROMEMORY函数吗?
现在我主要是这样实现的,用Winsock的udp将机器Bind后,在监控方发送监控指令到被监控计算机上,同时监控计算机设置一个共享文件夹用以存放被监控计算机保存的截屏图像,并将此共享文件夹名称等相关信息用Winsock发送到被监控计算机上,被监控计算机接收到信息后开始截屏并使用SavePicture保存图像(bmp文件)到上述文件夹中,此时被监控计算机发送一个消息给监控计算机通知已截取了一个屏幕图像(图像一共定义截取10幅的一个数组,因为存在延时现象,监控计算机在收到第2幅图像时删除前一幅图像,以此循环,用Timer计时),在监控计算机方读取并加载图像到PictureBox中。问题1:受监控计算机截取的图像没有鼠标指针
2:尽管图像直接保存在监控计算机中,但文件太大,一般都在1.5M以上(受监控计算机的分辨率还是24色)
请问我该如何解决,我想到用API函数的GetBitmapBits和SetBitmapBits先获取受控计算机的截屏图像数据然后发送给监控方再做处理,但不知速度如何,请问怎样实现???
谢谢。
http://www.realvnc.com/download.html
2。如何将被监控机的鼠标也保存在截屏图象中? 我不会,但是我会控制鼠标的位置和点击
图像截获和转成jpg的代码,需要引用 kodak其他是乱玛的那个控件 的ImgEdit 控件,还有1个timmer控件Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal Scan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)'使用:
'一个抓屏的例子
Const VK_SNAPSHOT As Byte = &H2C
' 把应用窗口图象放到剪贴板:Private Sub Form_Load()
Me.Hide
Dim i As Long
i = Timer
'
Me.ImgEdit1.Image = App.Path & "\1.BMP"
'先让ImgEdit随便显示一幅图片,不然后面的语句执行时会发生错误
ImgEdit1.Display
Call keybd_event(VK_SNAPSHOT, 0, 0, 0)
If (ImgEdit1.IsClipboardDataAvailable And ImgEdit1.ImageDisplayed) Then
'从剪贴板粘贴图象,其参数为Imgedit的显示区域的起始坐标
ImgEdit1.ClipboardPaste 0, 0
ImgEdit1.CompletePaste
End If
ImgEdit1.SaveAs "c:\mytest.jpg", wiFileTypeJPG, , 6, 256 '保存图片为jpg格式
MsgBox Timer - i
End SubPrivate Sub Timer1_Timer()
Dim i As Long
i = TimerCall keybd_event(VK_SNAPSHOT, 0, 0, 0)
If (ImgEdit1.IsClipboardDataAvailable And ImgEdit1.ImageDisplayed) Then
'从剪贴板粘贴图象,其参数为Imgedit的显示区域的起始坐标
ImgEdit1.ClipboardPaste 0, 0
ImgEdit1.CompletePaste
End If
ImgEdit1.SaveAs "c:\mytest.jpg", wiFileTypeJPG, , 6 '保存图片为jpg格式
MsgBox Timer - i
End Sub
Private Sub Command1_Click()
Dim ldwHwnd As Long
Dim ldwDc As Long
Dim lngRet As Long
Dim Pt As POINTAPI
Dim lCu As Long ldwHwnd = GetDesktopWindow()
ldwDc = GetDC(ldwHwnd)
lngRet = GetCursorPos(Pt)
lngRet = BitBlt(picScreen.hdc, 0, 0, picScreen.Width, picScreen.Height, ldwDc, 0, 0, vbSrcCopy)
lCu = GetCursor()
DrawIcon picScreen, Pt.X, Pt.Y, lCu
SavePicture picScreen.Image, App.Path & "\MyTest.bmp"End Sub不知有没有好的办法了。