Delphi5实现鱼C屏幕保护程序

效果图

鱼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)) of0: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)) of0: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);
beginif(key=VK_SPACE)and (flag=True) thenbeginedt1.Visible:=True;btn1.Visible:=True;end;
end;

确认密码,触发新的时钟

//按下按钮,确认解锁密码
procedure TForm1.btn1Click(Sender: TObject);
beginif(edt1.Text=mima)and (n>0)thenCloseelseif(n>0)thenbeginMessageBox(Handle,'密码错误','警告',MB_OK or MB_ICONSTOP);n:=n-1;endelsebeginMessageBox(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);
beginflag:=True;n:=2;//关闭第二个时钟,不让它继续重置tmr2.Enabled:=False;btn1.Enabled:=True;
end;

免费在线视频裁剪、转gif

今天用到这个网站进行简单的剪辑,不需要登录,页面也很简洁。

在这里插入图片描述

完整代码

unit screenprotect;interfaceusesSysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,Dialogs, Forms,Form, Formprpt, jpeg, ExtCtrls, dxGDIPlusClasses, StdCtrls;typeTForm1 = 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;varForm1: 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)) of0: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)) of0: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);
beginif(key=VK_SPACE)and (flag=True) thenbeginedt1.Visible:=True;btn1.Visible:=True;end;
end;//按下按钮,确认解锁密码
procedure TForm1.btn1Click(Sender: TObject);
beginif(edt1.Text=mima)and (n>0)thenCloseelseif(n>0)thenbeginMessageBox(Handle,'密码错误','警告',MB_OK or MB_ICONSTOP);n:=n-1;endelsebeginMessageBox(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);
beginflag:=True;n:=2;//关闭第二个时钟,不让它继续重置tmr2.Enabled:=False;btn1.Enabled:=True;
end;end.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/50595.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用API Monitor探测C++程序在调用HtmlHelp接口打开.chm文件时传入了哪些参数

目录 1、API Monitor介绍 2、为何要使用API Monitor工具? 2、HtmlHelp函数在API列表函数中找不到,将所在模块作为外部Extern DLL模块添加到API Monitor中 3、开启对Beyond Compare工具软件的实时监测 4、在Beyond Compare软件中打开chm帮助文档&…

0719_驱动3 printk使用方法

一、printk使用方法 1.应用层打印使用printf,内核层使用printk 2.如何查看内核层中printk如何使用 3.在内核空间执行grep "printk" * -nR 4.在内核空间执行vi -t KERN_INFO 5.printk有8中打印级别(0-7),打印级别用来过滤…

学习大数据DAY22 Linux 基 本 指 令 3与 在 Linux 系 统 中 配 置MySQL 和 Oracle

目录 网络配置类 ps 显示系统执行的进程 kill systemctl 服务管理 配置静态 ip 常见错误---虚拟机重启网卡失败或者网卡丢失 mysql 操作 上机练习 6---安装 mysql---参考《mysql 安装》文档 解锁 scott 重启后的步骤 上机练习 7---安装 oracle---参考《oracle 安装》…

Java数据结构与算法--链表(Linked List)

博客主页:誓则盟约系列专栏:Java SE关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 深入了解链表: 链表是一种常见的数据结构,它由一系列节点…

jdk版本区别

JDK(Java Development Kit)是 Java 开发工具包,它包括了 Java SE(Standard Edition)、编译器、调试器和其他开发工具。Oracle 公司是 JDK 的主要供应商,它提供了多个版本的 JDK,每个版本都有自己…

SQLException:Operation not allowed after ResultSet closed

运行代码时出现的错误: 这是在运行简单的JDBC访问数据库时出现的问题,原因是在ResultSet方法中添加了close()关闭方法,如图: ResultSet 是通过 query 方法获得的,并且在 try-catch 块中没有显式地关闭它。这实际上是 一个常见的…

暴雨宅家?AI拯救你的无聊暑假!高中生必藏神器大公开

嘿,各位高中生朋友们,最近是不是被这没完没了的暴雨困在家里,感觉暑假生活都快发霉了?别急,今天我要揭秘一个宝藏网站—— ai123.cn,它简直就是咱们暑期宅家必备的救星!接下来,我就来…

whaler_通过镜像导出dockerfile

1、Whaler简介 Whaler:从镜像导出Dockerfile,whaler英文释义捕鲸船。 2、下载安装 # wget -cO /usr/local/bin/whaler https://github.com/P3GLEG/Whaler/releases/download/1.0/Whaler_linux_amd64 3、赋予可执行权限 [rootlocalhost ~]# chmod x /usr/local/…

Web漏洞扫描工具(AWVS、Goby)

一、背景 想针对自己项目或者小公司的Web安全做相关扫描,自己做漏洞进行自查工作,能够减少自身系统的安全风险,提高系统的安全性。但是没有找到一些开源性质的、扫描质量比较高的相关工具,使用安全公司的专业产品价格又承受不起。…

每日一练,java06

这里写目录标题 题目1.局部变量能否和成员变量重名?2.下面哪个不属于HttpServletResponse接口完成的功能?3.以下代码结果是什么?4.实现或继承了Collection接口的是()知识点局部变量与成员变量重名equals与HttpServletR…

5. 开发环境搭建

1. 概述 基于ubuntu20.04搭建开发环境 2. 开发环境安装 恒玄SDK编译,依赖gcc-arm的编译工具,编译工具由恒玄提供; 2.1 配置编译工具链的环境变量 修改~/.profile文件 source ~/.profile 2.2 安装依赖包 sudo apt install ccache sudo a…

一刷代码随想录(回溯4)

递增子序列 题意: 给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。 示例: 输入: [4, 6, 7, 7]输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]] 说明: 给定数组的长度不会…

【最新】cuda和cudnn和显卡驱动的对应关系

NV官方文档Support Matrix — NVIDIA cuDNN v9.2.1 documentation下列的非常清楚,如图:

【SpringBoot】 4 Thymeleaf

官网 https://www.thymeleaf.org/ 介绍 Thymeleaf 是一个适用于 Web 和独立环境的现代服务器端 Java 模板引擎。 模板引擎:为了使用户界面和业务数据分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎会生成一个标准的 html 文档…

捉虫笔记(1)之 WinDbg符号配置

WinDbg符号配置 1、WinDbg简单介绍 WinDbg 是微软的一款强大的调试工具,用于 Windows 平台的内核和用户模式调试。它提供了一系列强大的功能,包括内存和寄存器的查看、断点设置、堆栈跟踪、性能分析等。 WinDbg 的历史可以追溯到微软早期的调试工具&a…

[Unity] ShaderGraph实现不同贴图素材的同一材质球复用

无意间发现的ShaderGraph小技巧, 可以实现同一个ShaderGraph,同一个Material材质球, 但使用不同的Texture贴图,而Sprite显示不会相互覆盖。 具体实现方法如下: 声明Texture2D时,把名字命名成&#xff1a…

51单片机嵌入式开发:17、STC89C52的嵌入式 遥控器 控制步进电机 转速 和 转向 操作并 printf打印信息

51单片机嵌入式开发 STC89C52的嵌入式 遥控器 控制步进电机 转速 和 转向 操作并 printf打印信息 51单片机嵌入式开发STC89C52的嵌入式 遥控器 控制步进电机 转速 和 转向 操作并 printf打印信息1 概述2 硬件电路2.1 遥控器2.2 红外接收器电路2.3 STC89C52单片机电路2.4 数码管…

skynet热更新之inject

游戏服务器的热更新是一种常见的需求,skynet可以通过inject的方式,来修改一个服务的消息处理函数,达到热更新的效果。 skynet内置服务debug_console skynet自带了一个调试控制台服务。inject注入代码需要先启动这个服务。 skynet.newservi…

【python】python大学排名数据抓取+可视化(源码+数据集+可视化+论文)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

uart开发调试

1. Uart基本框架 1.1概念 通信系统有两种方式,同步通信和异步通信. 同步通信的典型特征:通信双方公用同一个时钟,发送/接受速率完全一致,通信时需要带时钟信号传输. 异步通信的典型特征:通信双方各自具有独立的时钟…