阅读量:0
效果图
鱼C屏幕保护程序
添加背景图片
在additional添加image组件,修改picture属性上传图片。 这个图片可以截屏桌面,方便后面满屏不留白操作。
实现无边框
即上面的“- □ ×”不显示
将Form1的borderstyle属性改为bsnone
实现最大化,满屏
将windowstate属性改为wsMaximized
将图片固定住、输入框和按钮隐藏
使用Form1的events的oncreate事件,双击命名为FormCreate
//窗体生成时 procedure TForm1.FormCreate(Sender: TObject); begin //设置图片位置 img1.Left:=0; img1.Top:=0; //将输入框和按钮隐藏 btn1.Visible:=False; edt1.Visible:=False; end;
设置一个时钟,定时移动标签
procedure TForm1.tmr1Timer(Sender: TObject); begin //置顶这个保护程序,让它很难被kill掉 SetWindowPos(Handle,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE+swp_nomove); //随机生成标签的位置 lbl1.Left:=Random(2000); lbl1.Top:=Random(1000); //随机生成标签字体的大小 lbl1.Font.Size:=Random(50); //随机标签字体的颜色 case (Random(5)) of 0:lbl1.Font.color:=clRed; 1:lbl1.Font.color:=clGreen; 2:lbl1.Font.color:=clYellow; 3:lbl1.Font.color:=clBlack; 4:lbl1.Font.color:=clOlive; end; //随机标签的颜色 case (Random(5)) of 0:lbl1.color:=clWhite; 1:lbl1.color:=clGray; 2:lbl1.color:=clNavy; 3:lbl1.color:=clBlue; 4:lbl1.color:=clFuchsia; end; end;
取消按钮和输入框的隐藏
//按下按键,取消按钮和输入框的隐藏 procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if(key=VK_SPACE)and (flag=True) then begin edt1.Visible:=True; btn1.Visible:=True; end; end;
确认密码,触发新的时钟
//按下按钮,确认解锁密码 procedure TForm1.btn1Click(Sender: TObject); begin if(edt1.Text=mima)and (n>0)then Close else if(n>0)then begin MessageBox(Handle,'密码错误','警告',MB_OK or MB_ICONSTOP); n:=n-1; end else begin MessageBox(Handle,'错误太多次了,请稍后再尝试','警告',MB_OK or MB_ICONSTOP); flag:=False; //让确认按钮变灰 btn1.Enabled:=False; //第二个时钟起作用,触发第二个时钟 tmr2.Enabled:=True; end; end;
实现等待时间功能
//每9秒这个时钟重置一下输入标记和输入次数 //将timer的interval属性设置为9000 procedure TForm1.tmr2Timer(Sender: TObject); begin flag:=True; n:=2; //关闭第二个时钟,不让它继续重置 tmr2.Enabled:=False; btn1.Enabled:=True; end;
免费在线视频裁剪、转gif
今天用到这个网站进行简单的剪辑,不需要登录,页面也很简洁。
完整代码
unit screenprotect; interface uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Dialogs, Forms,Form, Formprpt, jpeg, ExtCtrls, dxGDIPlusClasses, StdCtrls; type TForm1 = class(MForm) tmr1: TTimer; img1: TImage; lbl1: TLabel; edt1: TEdit; btn1: TButton; tmr2: TTimer; procedure FormCreate(Sender: TObject); procedure tmr1Timer(Sender: TObject); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure btn1Click(Sender: TObject); procedure tmr2Timer(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; mima:string='yucbaohu'; n:Integer=2; //用来标记是否能输入密码,因为输错3次就得等一段时间才能输入 flag:Boolean=True; implementation {$R *.DFM} //窗体生成时 procedure TForm1.FormCreate(Sender: TObject); begin //设置图片位置 img1.Left:=0; img1.Top:=0; //将输入框和按钮隐藏 btn1.Visible:=False; edt1.Visible:=False; end; //设置一个时钟,定时移动标签 procedure TForm1.tmr1Timer(Sender: TObject); begin //置顶这个保护程序,让它很难被kill掉 SetWindowPos(Handle,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE+swp_nomove); //随机生成标签的位置 lbl1.Left:=Random(2000); lbl1.Top:=Random(1000); //随机生成标签字体的大小 lbl1.Font.Size:=Random(50); //随机标签字体的颜色 case (Random(5)) of 0:lbl1.Font.color:=clRed; 1:lbl1.Font.color:=clGreen; 2:lbl1.Font.color:=clYellow; 3:lbl1.Font.color:=clBlack; 4:lbl1.Font.color:=clOlive; end; //随机标签的颜色 case (Random(5)) of 0:lbl1.color:=clWhite; 1:lbl1.color:=clGray; 2:lbl1.color:=clNavy; 3:lbl1.color:=clBlue; 4:lbl1.color:=clFuchsia; end; end; //按下按键,取消按钮和输入框的隐藏 procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if(key=VK_SPACE)and (flag=True) then begin edt1.Visible:=True; btn1.Visible:=True; end; end; //按下按钮,确认解锁密码 procedure TForm1.btn1Click(Sender: TObject); begin if(edt1.Text=mima)and (n>0)then Close else if(n>0)then begin MessageBox(Handle,'密码错误','警告',MB_OK or MB_ICONSTOP); n:=n-1; end else begin MessageBox(Handle,'错误太多次了,请稍后再尝试','警告',MB_OK or MB_ICONSTOP); flag:=False; //让确认按钮变灰 btn1.Enabled:=False; //第二个时钟起作用,触发第二个时钟 tmr2.Enabled:=True; end; end; //每9秒这个时钟重置一下输入标记和输入次数 //将timer的interval属性设置为9000 procedure TForm1.tmr2Timer(Sender: TObject); begin flag:=True; n:=2; //关闭第二个时钟,不让它继续重置 tmr2.Enabled:=False; btn1.Enabled:=True; end; end.