我这个目的呢...说白了,就是起到监视作用,也类似...木马的远程控制那样吧
有一个服务端,一个客户端
客户端能把图片(当前屏幕)传给服务端.并显示出来!(最好能0.5秒实现一次,能更少更好...呵呵)1\如何能提高速度.(是否要压缩成JPG再传)
2\这样传输能否直接把Image1.Picture的值直接给WINSOCK发出去?
是否把它保存为文件,再读取用十六进制发送去过?
哪个更好?寻找速度最快,质量较好的方案/方法!提供方案.提供代码更好为好!呵呵........求助!
有一个服务端,一个客户端
客户端能把图片(当前屏幕)传给服务端.并显示出来!(最好能0.5秒实现一次,能更少更好...呵呵)1\如何能提高速度.(是否要压缩成JPG再传)
2\这样传输能否直接把Image1.Picture的值直接给WINSOCK发出去?
是否把它保存为文件,再读取用十六进制发送去过?
哪个更好?寻找速度最快,质量较好的方案/方法!提供方案.提供代码更好为好!呵呵........求助!
Option ExplicitPrivate Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
Private Declare Function GetCursor Lib "user32" () As LongPrivate Sub Command1_Click()
Dim hdc As Long, nWidth As Integer, nHeight As Integer, nScreenWidth As Integer, nScreenHeight As Integer
Dim CurPos As POINTAPI
Dim Cur As Long
Me.Hide
DoEvents
Picture1.AutoRedraw = True
hdc = GetDC(0)
nScreenWidth = Screen.Width
nScreenHeight = Screen.Height
Picture1.Width = nScreenWidth
Picture1.Height = nScreenHeight
nWidth = nScreenWidth / Screen.TwipsPerPixelX
nHeight = nScreenHeight / Screen.TwipsPerPixelY
BitBlt Picture1.hdc, 0, 0, nWidth, nHeight, hdc, 0, 0, vbSrcCopy
Me.Show
GetCursorPos CurPos
Cur = GetCursor
DrawIcon Picture1.hdc, CurPos.x - 10, CurPos.y - 10, Cur
ReleaseDC 0, hdc
Picture1.AutoRedraw = False
End Sub
------------------
截屏解决了,改变大小所用的API是?
另一个关键,减少颜色的位数...不知如何办...嘿嘿.转JPG到知道..
BmpTo256(原目录,目标目录)这样就能转换的.不需要经常其它控件(PictureBox)调,直接转换的方法呢??改变大小是?