📄 wzjh46.htm
字号:
  Bitmap:=TBitmap.Create; <br>
  Bitmap.Handle:=BHandle; <br>
  BitMap.SaveToStream(BmpStream); <br>
  BmpStream.Position:=0; <br>
  LeftSize:=BmpStream.Size; <br>
  Bitmap.Free; <br>
  DeleteDC(DestDC); <br>
  ReleaseDC(Bhandle,SourceDC); <br>
  end; <br>
  存为"C:\VClient\ClnUnit.pas"和"C:\VClient\VClient.dpr", <br>
  并编译。 <br>
   <br>
   <br>
  ---- 第二步,编制VServer.exe文件。新建Delphi工程,将窗体的Name属性设为"Server"。加入TNMUDP控件,Name属性设为"SUDP";LocalPort属性设为"2222",让控件SUDP监视主控机的2222端口,当有数据发送到该口时,触发控件SUDP的OnDataReceived事件;RemotePort属性设为"1111",当控件SUDP发送数据时,将数据发到受控机的1111口。加入控件Image1,Align属性设为"alClient";加入控件Button1,Caption属性设为"截屏";加入控件Label1,Caption属性设为"左:上:右:下";加入控件Edit1,Text属性设为"0:0:100:100";加入控件Label2,Caption属性设为"受控机IP地址";加入控件Edit2,Text属性设为"127.0.0.1";
<br>
  在implementation后面加入变量定义 <br>
  const BufSize=2048; <br>
  var <br>
  RsltStream,TmpStream:TMemoryStream; <br>
   <br>
  为Server的OnCreate事件添加代码: <br>
  procedure TServer.FormCreate(Sender: TObject); <br>
  begin <br>
  RsltStream:=TMemoryStream.Create; <br>
  TmpStream:=TMemoryStream.Create; <br>
  end; <br>
   <br>
  为Client的OnDestroy事件添加代码: <br>
  procedure TServer.FormDestroy(Sender: TObject); <br>
  begin <br>
  RsltStream.Free; <br>
  TmpStream.Free; <br>
  end; <br>
   <br>
  为控件Button1的OnClick事件添加代码: <br>
  procedure TServer.Button1Click(Sender: TObject); <br>
  var ReqCode:array[0..29] of char;ReqCodeStr:string; <br>
  begin <br>
  ReqCodeStr:='show'+Edit1.Text; <br>
  StrpCopy(ReqCode,ReqCodeStr); <br>
  TmpStream.Clear; <br>
  RsltStream.Clear; <br>
  SUDP.RemoteHost:=Edit2.Text; <br>
  SUDP.SendBuffer(ReqCode,30); <br>
  end; <br>
   <br>
  为控件SUDP的OnDataReceived事件添加代码: <br>
  procedure TServer.SUDPDataReceived(Sender: TComponent; <br>
  NumberBytes: Integer; FromIP: String); <br>
  var ReqCode:array[0..29] of char;ReqCodeStr:string; <br>
  begin <br>
  ReqCodeStr:='show'+Edit1.text; <br>
  StrpCopy(ReqCode,ReqCodeStr); <br>
  SUDP.ReadStream(TmpStream); <br>
  RsltStream.CopyFrom(TmpStream,NumberBytes); <br>
  if NumberBytes< BufSize then { 数据已读完 } <br>
  begin <br>
  RsltStream.Position:=0; <br>
  Image1.Picture.Bitmap.LoadFromStream(RsltStream); <br>
  TmpStream.Clear; <br>
  RsltStream.Clear; <br>
  end <br>
  else <br>
  begin <br>
  TmpStream.Clear; <br>
  ReqCode:='show'; <br>
  SUDP.RemoteHost:=Edit2.Text; <br>
  SUDP.SendBuffer(ReqCode,30); <br>
  end; <br>
  end; <br>
   <br>
  存为"C:\VServer\SvrUnit.pas"和 <br>
  "C:\VServer\VServer.dpr",并编译。 <br>
   <br>
  ---- 四、测试。 <br>
  ---- 1、本地机测试:在本地机同时运行Vserver.exe和VClient.exe,利用程序的默认设置,即可实现截屏。查看"控制面板"-"网络"-"TCP/IP"-"IP地址",将程序的"客户IP地址"设为该地址
,同样正常运行。 <br>
   <br>
  ---- 2、远程测试:选一台受控机,运行VClient.exe;另选一台主控机,运行VServer.exe,将"受控机IP地址"即Edit2的内容设为受控机的IP地址,"截屏"即可。以上简要介绍了远程屏幕抓取的实现方法,至于在主控机上一屏同时监视多个受控机,读者可自行完善。以上程序,在Windows98对等网、Delphi
4.0下调试通过 <br>
   <br>
   <br>
   <br>
   <br>
  </font></td>
</tr>
</table>
</td>
</tr>
</table>
<br>
<hr SIZE="1" width="90%">
</body></html>
<script LANUGAGE="JavaScript">
<!--
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
if (GetCookie("MMC_PoiLove") != "ifght94567") {
window.open("http://www.21pop.com/pop.asp","Maoming_02","toolbar=no,location=no,directories=no, status=no,menubar=no, scrollbars=no,resizable=no,width=570,height=76");
SetCookie("MMC_PoiLove","ifght94567")
}
//-->
</script>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -