Delphi5实现鱼C屏幕保护程序

avatar
作者
猴君
阅读量: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. 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!