⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 childwin.cpp

📁 能够远程监视局域网内的桌面
💻 CPP
字号:
//---------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <stdio.h>

#include "ChildWin.h"
#include "Main.h"
#include "FullScr.h"
#include "Socket.h"
//---------------------------------------------------------------------
#pragma resource "*.dfm"
//---------------------------------------------------------------------
__fastcall TMDIChild::TMDIChild(TComponent *Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------

void __fastcall TMDIChild::FormClose(TObject *Sender, TCloseAction &Action)
{
	Action = caFree;  // 关闭后自动释放资源
}
//---------------------------------------------------------------------

void __fastcall TMDIChild::Capture()
{
	TRecvStreamThread *RecvThread = new TRecvStreamThread(true);
	RecvThread->FreeOnTerminate = true;  // 线程执行完毕自动释放资源
	RecvThread->RemoteAddress = RemoteAddress;  // 指定主机IP
	RecvThread->CL = CL;  // 色深
	RecvThread->CQ = CQ;  // 品质
	RecvThread->RemoteScreen = Image1;
	RecvThread->StatusBar = StatusBar1;
  int sock=Connect_Server(RemoteAddress, LISTENPORT);
  Write_Socket(sock, "2\n");
  AnsiString read=Socket_Readln(sock);
  closesocket(sock);
  this->Caption=RemoteAddress+"("+read+")";
  int pos = read.Pos("*");
  R_Width=StrToIntDef(read.SubString(1,pos-1),0);
  read = read.SubString(pos+1,read.Length()-pos);
  R_Height=StrToIntDef(read,0);
  
	RecvThread->Resume();  // 开始执行线程
}

void __fastcall TMDIChild::Image1DblClick(TObject *Sender)
{
	// 双击表示继续捕获下一幅图象,创建一个新的线程发送命令并接收图象数据流
//  Capture();
}
//---------------------------------------------------------------------------

void __fastcall TMDIChild::FormShow(TObject *Sender)
{
	// 设置初始的窗口大小
	ClientWidth = 320;
	ClientHeight = 240;
  Timer1->Enabled=true;
}
//---------------------------------------------------------------------------

void __fastcall TMDIChild::N3Click(TObject *Sender)
{
	// 将图象保存为文件
	if (MainForm->SPDialog->Execute())
		Image1->Picture->Bitmap->SaveToFile(MainForm->SPDialog->FileName);
}
//---------------------------------------------------------------------------

void __fastcall TMDIChild::N2Click(TObject *Sender)
{
	// 全屏显示
	FullScrForm->Image1->Picture = Image1->Picture;
	FullScrForm->Show();
}
//---------------------------------------------------------------------------

void __fastcall TMDIChild::Image1MouseMove(TObject *Sender,
      TShiftState Shift, int X, int Y)
{
char text[32];
int Rx,Ry;
Rx=X*R_Width/Image1->Width;
Ry=Y*R_Height/Image1->Height;
sprintf(text,"Mouse Pos:(%04d,%04d)",Rx,Ry);
StatusBar1->Panels->Items[1]->Text=text;
Rx=X*65535/Image1->Width;
Ry=Y*65535/Image1->Height;
sprintf(text,"3\n1\n%d\n%d\n",Rx,Ry);
int sock=Connect_Server(RemoteAddress, LISTENPORT);
Write_Socket(sock, text);
closesocket(sock);
}
//---------------------------------------------------------------------------

void __fastcall TMDIChild::Image1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
char text[32];
int Rx,Ry;
Rx=X*65535/Image1->Width;
Ry=Y*65535/Image1->Height;
switch(Button)
  {
  case mbLeft:
    sprintf(text,"3\n2\n%d\n%d\n",Rx,Ry);
    break;
  case mbRight:
    sprintf(text,"3\n4\n%d\n%d\n",Rx,Ry);
    break;
  case mbMiddle:
    sprintf(text,"3\n6\n%d\n%d\n",Rx,Ry);
    break;

  }
int sock=Connect_Server(RemoteAddress, LISTENPORT);
Write_Socket(sock, text);
closesocket(sock);

}
//---------------------------------------------------------------------------

void __fastcall TMDIChild::Image1MouseUp(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
char text[32];
int Rx,Ry;
Rx=X*65535/Image1->Width;
Ry=Y*65535/Image1->Height;
switch(Button)
  {
  case mbLeft:
    sprintf(text,"3\n3\n%d\n%d\n",Rx,Ry);
    break;
  case mbRight:
    sprintf(text,"3\n5\n%d\n%d\n",Rx,Ry);
    break;
  case mbMiddle:
    sprintf(text,"3\n7\n%d\n%d\n",Rx,Ry);
    break;

  }
int sock=Connect_Server(RemoteAddress, LISTENPORT);
Write_Socket(sock, text);
closesocket(sock);

}
//---------------------------------------------------------------------------

void __fastcall TMDIChild::FormHide(TObject *Sender)
{
Timer1->Enabled=false;  
}
//---------------------------------------------------------------------------

void __fastcall TMDIChild::Timer1Timer(TObject *Sender)
{
Capture();
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -