📄 pingmu.pas
字号:
unit Pingmu;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls,jpeg, Menus, ExtDlgs, LZRW1,wsocket, XPMenu,
LMDPopupMenu;
type
TPingMuf = class(TForm)
Image1: TImage;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
Timer1: TTimer;
N4: TMenuItem;
N5: TMenuItem;
Timer2: TTimer;
S1: TMenuItem;
Timer3: TTimer;
N6: TMenuItem;
N7: TMenuItem;
SavePictureDialog1: TSavePictureDialog;
N8: TMenuItem;
N9: TMenuItem;
P1: TMenuItem;
N10: TMenuItem;
Timer4: TTimer;
D1: TMenuItem;
lzrw11: Tlzrw1;
Label1: TLabel;
LMDPopupMenu1: TLMDPopupMenu;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
N18: TMenuItem;
N19: TMenuItem;
N20: TMenuItem;
N21: TMenuItem;
N22: TMenuItem;
N23: TMenuItem;
procedure N1Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure S1Click(Sender: TObject);
procedure Timer3Timer(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure P1Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure D1Click(Sender: TObject);
procedure Timer4Timer(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Label1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Label1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
PingMuf: TPingMuf;
pingmu_ok: boolean;
wsh_move:boolean;
implementation
uses main;
{$R *.DFM}
procedure TPingMuf.N1Click(Sender: TObject);
begin
N11.Enabled := false;
N12.Enabled := false;
N13.Enabled := false;
N14.Enabled := false;
N17.Enabled := false;
N15.Enabled := false;
n5.Enabled := false;
N1.Enabled := FALSE;
// n3.Enabled := false;
P1.Enabled := false;
n8.Enabled := false;
n10.Enabled := false;
d1.Enabled := false;
// n1.checked:=not n1.checked;
wsh_socket[s_selected].SendStr('/*csh*/:' + #13 + #10 + '屏幕监看');
Timer1.Enabled := true;
Timer2.Enabled := true;
end;
procedure TPingMuf.N3Click(Sender: TObject);
begin
timer1.Enabled := false;
timer2.Enabled := false;
timer3.Enabled := false;
timer4.Enabled := false;
wsh_pingmu := false;
if (Wsh_Socket[s_selected].State in [wsConnected]) then
wsh_socket[s_selected].SendStr('/*csh*/:' + #13 + #10 + '结束监看');
close;
// form1.N13Click(sender);
end;
procedure TPingMuf.Timer1Timer(Sender: TObject);
var
bitkan: Tbitmap;
mylzh: Tlzrw1;
destream: Tmemorystream;
begin
if pingmu_ok = true then
begin
//tmpstream.SaveToFile('t.dat');
Timer1.Enabled := false;
pingmu_ok := false;
//解压流
destream := Tmemorystream.Create;
destream.Clear;
tmpstream.Position := 0;
mylzh := Tlzrw1.Create(self);
try
mylzh.Visible := false;
mylzh.CompressMode := Auto;
mylzh.UseStream := true;
mylzh.InputStream := tmpstream;
mylzh.OutputStream := destream;
mylzh.deCompress;
mylzh.Free;
except
mylzh.Free;
tmpstream.Free;
destream.free;
exit;
end;
// image1.Picture.LoadFromFile(ExtractFilePath(Application.EXEName)+'screen.jpg');
//image1.Picture.Graphic.LoadFromStream(TmpStream);
bitkan := Tbitmap.Create;
destream.Position := 0;
bitkan.LoadFromStream(deStream);
image1.Canvas.Draw(0, 0, bitkan);
// bitkan.SaveToFile('test.bmp');
destream.Clear;
destream.Free;
TmpStream.Clear;
TmpStream.Free;
bitkan.FreeImage;
bitkan.free;
//timer3.Enabled:=true;
N1.Enabled := TRUE;
N5.Enabled := TRUE;
n3.Enabled := true;
end;
end;
procedure TPingMuf.N5Click(Sender: TObject);
begin
N1.Enabled := FALSE;
N5.Enabled := FALSE;
try
wsh_socket[s_selected].SendStr('/*csh*/:' + #13 + #10 + '屏幕监看');
except
S1Click(sender);
exit;
end;
Timer1.Enabled := true;
end;
procedure TPingMuf.Timer2Timer(Sender: TObject);
begin
if n5.Enabled = true then
N5Click(sender);
end;
procedure TPingMuf.S1Click(Sender: TObject);
begin
try
wsh_socket[s_selected].SendStr('/*csh*/:' + #13 + #10 + '结束监看');
except
wsh_pingmu:=false;
end;
form1.Wsockethook.Close; //停止遥控
timer1.enabled := false; //停止连续监看
timer2.Enabled := false;
timer3.Enabled := false;
N11.Enabled := true;
N12.Enabled := true;
N13.Enabled := true;
N14.Enabled := true;
N17.Enabled := true;
N15.Enabled := true;
n5.Enabled := true;
N1.Enabled := TRUE;
n3.Enabled := true;
P1.Enabled := true;
n8.Enabled := true;
n10.Enabled := true;
d1.Enabled := true;
// n11.Enabled:=true;
wsh_pingmu := false;
Label1.Caption := Form1.ListView1.Items[s_selected].caption;
Label1.Left:=screen.width-Label1.width;
// DisableMouseHook; //停止操作广播
// form1.keySpy1.Enabled := false;
// form1.wsockethook.close;
end;
procedure TPingMuf.Timer3Timer(Sender: TObject);
begin
N1.Enabled := TRUE;
N5.Enabled := TRUE;
n3.Enabled := true;
timer3.Enabled := false;
end;
procedure TPingMuf.N7Click(Sender: TObject);
{var
p_source:array[0..50] of char;
p_tager:array[0..50] of char;
s_source,s_tager:string;
s_ok:longbool;}
begin
if SavePictureDialog1.Execute then
begin
image1.Picture.SaveToFile(SavePictureDialog1.FileName);
{s_source:=ExtractFilePath(Application.EXEName)+'screen.bmp';
strpcopy(p_source,s_source);
s_tager:=SavePictureDialog1.FileName;
strpcopy(p_tager,s_tager);
s_ok:=copyfile(p_source,p_tager,false);
if s_ok<>false then}
// showmessage('图片保存完成!');
Application.MessageBox('图片保存完成!','提示信息', MB_OK + MB_ICONINFORMATION);
end;
end;
procedure TPingMuf.N8Click(Sender: TObject);
begin
if (s_selected + 1) = student_count then s_selected := -1;
s_selected := s_selected + 1;
Label1.Caption := Form1.ListView1.Items[s_selected].caption;
Label1.Left:=screen.width-Label1.width;
Image1.Canvas.Brush.Color := clBLack;
Image1.Canvas.FillRect(rect(0, 0, image1.width, image1.height));
if Form1.ListView1.Items[s_selected].imageindex <> 0 then
begin
N5Click(sender);
n1.enabled := true;
s1.enabled := true;
end
else
begin
Label1.Caption := Label1.Caption + '尚未登陆!';
Label1.Left:=screen.width-Label1.width;
n1.enabled := false;
s1.enabled := false;
end;
end;
procedure TPingMuf.P1Click(Sender: TObject);
begin
if s_selected = 0 then s_selected := student_count;
s_selected := s_selected - 1;
Label1.Caption := Form1.ListView1.Items[s_selected].caption;
Label1.Left:=screen.width-Label1.width;
Image1.Canvas.Brush.Color := clBLack;
Image1.Canvas.FillRect(rect(0, 0, image1.width, image1.height));
if Form1.ListView1.Items[s_selected].imageindex <> 0 then
begin
N5Click(sender);
n1.enabled := true;
s1.enabled := true;
end
else
begin
Label1.Caption := Label1.Caption + '尚未登陆!';
Label1.Left:=screen.width-Label1.width;
n1.enabled := false;
s1.enabled := false;
end;
end;
procedure TPingMuf.N10Click(Sender: TObject);
begin
N16.Enabled := false;
N11.Enabled := false;
N12.Enabled := false;
N13.Enabled := false;
N14.Enabled := false;
N17.Enabled := false;
N18.Enabled := false;
N5.Enabled := false;
N8.Enabled := false;
N10.Enabled := false;
p1.Enabled := false;
n7.Enabled := false;
N1.Enabled := false;
s1.Enabled := false;
Timer4.Interval := s_repeattime * 1000;
Timer4.Enabled := true;
end;
procedure TPingMuf.D1Click(Sender: TObject);
begin
N16.Enabled := true;
N11.Enabled := true;
N12.Enabled := true;
N13.Enabled := true;
N14.Enabled := true;
N17.Enabled := true;
N18.Enabled := true;
Timer4.Enabled := false;
N5.Enabled := true;
N8.Enabled := true;
N10.Enabled := true;
p1.Enabled := true;
n7.Enabled := true;
N1.Enabled := true;
s1.Enabled := true;
end;
procedure TPingMuf.Timer4Timer(Sender: TObject);
begin
N8Click(sender);
end;
procedure TPingMuf.FormShow(Sender: TObject);
begin
pingmu_ok:=false;
Timer1.Enabled := true;
end;
procedure TPingMuf.Label1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
wsh_move:=true;
end;
procedure TPingMuf.Label1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
wsh_move:=false;
end;
procedure TPingMuf.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
sbpos:Tpoint;
begin
if wsh_move=true then
begin
getcursorpos(sbpos);
label1.Left:=sbpos.x;
label1.Top:=sbpos.y;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -