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

📄 showpic.pas

📁 海盗远控1.23源代码
💻 PAS
字号:
unit ShowPic;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, DynamicSkinForm, jpeg, Menus, SkinCtrls, SkinBoxCtrls,
  StdCtrls, Mask, Buttons, ToolWin, ComCtrls, SkinMenus, Gauges, IdGlobal, LangFrm;

type
  TShowPm = class(TLangForm)
    ClickTimer: TTimer;
    SaveDialog1: TSaveDialog;
    ControlBar1: TspSkinControlBar;
    MainPanel: TspSkinPanel;
    Gauge1: TGauge;
    spDynamicSkinForm1: TspDynamicSkinForm;
    PopupMenu3: TspSkinPopupMenu;
    N4: TMenuItem;
    Loadskin1: TMenuItem;
    Storedskin1: TMenuItem;
    About1: TMenuItem;
    N7: TMenuItem;
    N16: TMenuItem;
    N11: TMenuItem;
    N256: TMenuItem;
    ScrollBox1: TScrollBox;
    SaveButton: TspSkinSpeedButton;
    PaintBox1: TPaintBox;
    jianpanButton: TspSkinSpeedButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormResize(Sender: TObject);
    procedure ClickTimerTimer(Sender: TObject);
    procedure N16Click(Sender: TObject);
    procedure N256Click(Sender: TObject);
    procedure N11Click(Sender: TObject);
    procedure Loadskin1Click(Sender: TObject);
    procedure Storedskin1Click(Sender: TObject);
    procedure JianpanButtonClick(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure SaveButtonClick(Sender: TObject);
    procedure PaintBox1Paint(Sender: TObject);
    procedure PaintBox1Click(Sender: TObject);
    procedure PaintBox1DblClick(Sender: TObject);
    procedure PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
    LastX      : integer;
    LastY      : integer;
    but        : integer;
    NumClick   : integer;
    procedure FullScreen;
    procedure HuiFuScreen;
  public
    { Public declarations }
    
  end;

var
  ShowPm: TShowPm;
implementation
uses
  Main;
{$R *.dfm}
function IntToByteStr(Value: integer): string;
begin
   SetLength(Result, 4);
   Move(Value, Result[1], sizeof(integer));
end;


procedure TShowPm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  try
    jianpanButton.Down:=False;
    ViKing.ScreenCThread.Connection.Disconnect;
    ViKing.ScreenCThread.Terminate;
  except
  end;
  try
    ViKing.ScrControl.Connection.Disconnect;
    ViKing.ScrControl.Terminate;
  except
  end;
  ViKing.ZhuDongCmdSend('004', '0', True);
end;

procedure TShowPm.FormResize(Sender: TObject);
begin
  try
    MainPanel.Width:= ShowPm.Width;
  except
  end;
end;

procedure TShowPm.ClickTimerTimer(Sender: TObject);
begin
   ClickTimer.Enabled := False;
try
   if (NumClick=1) and (but=1) then   //单击左键
    begin
     ViKing.ScrControl.Connection.Write(IntToByteStr(1)+IntToByteStr(LastX) + IntToByteStr(LastY)+ EOL);
    end;

   if (NumClick=2) and (but=1) then   //双击左键
    begin
     ViKing.ScrControl.Connection.Write(IntToByteStr(2)+IntToByteStr(LastX) + IntToByteStr(LastY)+ EOL);
    end;

   if (NumClick=1) and (but=2) then   //单击右键
    begin
     ViKing.ScrControl.Connection.Write(IntToByteStr(3)+IntToByteStr(LastX) + IntToByteStr(LastY)+ EOL);
    end;

   if (NumClick=2) and (but=2) then   //双击左键
    begin
     ViKing.ScrControl.Connection.Write(IntToByteStr(4)+IntToByteStr(LastX) + IntToByteStr(LastY)+ EOL);
    end;

except
end;
   ViKing.Enabled:=True;
end;



//远程主机屏幕颜色
procedure TShowPm.N16Click(Sender: TObject);
begin
  N16.Checked := True;
  ViKing.ZhuDongCmdSend('079',InttoStr(2), True);
end;

procedure TShowPm.N256Click(Sender: TObject);
begin
  N256.Checked := True;
  ViKing.ZhuDongCmdSend('079',InttoStr(0), True);
end;

procedure TShowPm.N11Click(Sender: TObject);
begin
  N11.Checked := True;
  ViKing.ZhuDongCmdSend('079',InttoStr(1), True);

end;
//屏幕控制
procedure TShowPm.Loadskin1Click(Sender: TObject);
begin
  Loadskin1.Checked:=True;
  Storedskin1.Checked:=False;
  JianpanButton.Down:=True;
end;

//屏幕监视
procedure TShowPm.Storedskin1Click(Sender: TObject);
begin
  Storedskin1.Checked:=True;
  Loadskin1.Checked:=False;
  JianpanButton.Down:=False;
end;

procedure TShowPm.JianpanButtonClick(Sender: TObject);
begin
  if JianpanButton.Down then
  begin
    Loadskin1.Checked:=True;
    Storedskin1.Checked:=False;
  end else
  begin
    Storedskin1.Checked:=True;
    Loadskin1.Checked:=False;
  end;
end;


procedure TShowPm.SpeedButton1Click(Sender: TObject);
begin
  FullScreen;
end;


procedure TShowPm.N3Click(Sender: TObject);
begin
  HuiFuScreen;
end;

procedure TShowPm.N5Click(Sender: TObject);
begin
  FullScreen;
end;

procedure TShowPm.FullScreen;
begin

  showpm.BorderStyle := bsNone;
  ScrollBox1.BorderStyle:= bsNone;
  ControlBar1.Visible:=False;
  showpm.Left:= 0;
  showpm.Top:= 0;
  showpm.Width:=Screen.Width;
  showpm.Height:=Screen.Height;
 // with showpm do
 // begin
   // DefaultMonitor:= dmDesktop;
  //  FormStyle:= fsStayOnTop;
 // end;
  showpm.WindowState := wsMaximized;
end;

procedure TShowPm.HuiFuScreen;
begin
  showpm.BorderStyle := bsSizeable;
  ScrollBox1.BorderStyle:= bsSingle;
  ControlBar1.Visible:=True;
  showpm.WindowState := wsNormal;
  showpm.Left:=192;
  showpm.Top:=140;
  showpm.Width:=657;
  showpm.Height:=477;
  //with showpm do
//  begin
   // DefaultMonitor:= dmActiveForm;
//  end;

end;

procedure TShowPm.SaveButtonClick(Sender: TObject);
begin
try
  if SaveDialog1.Execute then
    begin
      Viking.FDoubleBuffer.SaveToFile(SaveDialog1.FileName);
    end;
except
end;
end;

procedure TShowPm.PaintBox1Paint(Sender: TObject);
begin
  try
    if (PaintBox1.Width<>ViKing.FDoubleBuffer.Width)
    or (PaintBox1.Height <> ViKing.FDoubleBuffer.Height) then
    begin
      PaintBox1.Top:=0;
      PaintBox1.Left:=0;
      PaintBox1.Width := ViKing.FDoubleBuffer.Width;
      PaintBox1.Height := ViKing.FDoubleBuffer.Height;
    end;
    PaintBox1.Canvas.Draw(0, 0, ViKing.FDoubleBuffer);
  except
  end;
end;

procedure TShowPm.PaintBox1Click(Sender: TObject);
begin
  if jianpanButton.Down then
  begin
    NumClick := 1;
    ClickTimer.Enabled := False;
    ClickTimer.Enabled := True;
  end;
end;

procedure TShowPm.PaintBox1DblClick(Sender: TObject);
begin
  if jianpanButton.Down then
  begin
   NumClick := 2;
   ClickTimer.Enabled := False;
   ClickTimer.Enabled := True;
  end;
end;

procedure TShowPm.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if jianpanButton.Down then
  begin
   but := 1;
   if Button = mbRight then but := 2;
   //HgzVip.ZhuDongCmdSend('015',IntToStr(X) + IntToStr(Y)+ IntToStr(but),-1);
  end;
end;

procedure TShowPm.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
begin
  if jianpanButton.Down then
  begin
   LastX := X;
   LastY := Y;
   try
     Viking.ScrControl.Connection.Write(IntToByteStr(0)+IntToByteStr(LastX) + IntToByteStr(LastY)+ EOL);
   except
   end;
   //HgzVip.AddLineStr(inttostr(X) +' '+ inttostr(Y),1,False);
  end;
end;

procedure TShowPm.PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if jianpanButton.Down then
  begin
   if but = 2 then
    begin //单击右键
      ViKing.ScrControl.Connection.Write(IntToByteStr(3)+IntToByteStr(LastX) + IntToByteStr(LastY)+ EOL);
    end;
  end;
end;

end.

⌨️ 快捷键说明

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