效果图
鱼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.