源码
功能说明:该程序是一款使用易语言开发的多功能系统辅助软件,其核心设计意图在于提供一种轻量级的系统环境锁定机制,同时集成实用的屏幕色彩采集工具。程序通过注册表管理用户配置,利用 Windows API 对鼠标光标和键盘输入进行干预,实现了类似“访客模式”或“公共机锁定”的功能,并附带了方便的颜色拾取器。
一、程序整体架构与流程
程序主要分为三个功能模块区域,分布在不同的程序集中:
1. 主启动窗口(窗口程序集 1):负责核心的界面展示、密码验证交互以及对系统环境的初始化锁定。
2. 设置窗口(窗口程序集 2):负责密码的初次设置与修改、开机自启选项的管理以及界面隐藏策略的配置。
3. 取色辅助模块:包含取色窗口的激活逻辑及时钟响应事件,用于实时分析鼠标下的像素颜色。
程序启动时优先执行初始化代码,检查注册表是否存在预设密码。若为首次运行(无密码),则锁定关键操作按钮,引导用户进入设置流程;若已设置,则根据上次的配置(如是否隐藏、是否开机运行)恢复状态,并立即执行锁定动作,防止用户跳过验证直接操作。
二、安全锁定机制详解
这是该软件最显著的特征。
1. 输入验证:界面包含密码输入框和解锁按钮。当用户点击解锁按钮时,触发 `_解锁按钮_被单击` 子程序。系统会比对输入的文本与存储在注册表中的字符串。
2. 资源释放:一旦密码正确,程序解除所有限制。包括:
- 启用“退出”、“设置”按钮,允许用户正常退出或修改配置。
- 调用 `取消鼠标限制`,移除之前设定的鼠标活动边界。
- 调用 `锁键` 函数(参数 97),恢复被禁用的系统功能键(通常指 Windows 键或其他特定快捷键)。
3. 持续锁定:若密码错误,程序仅将焦点移回密码框,继续保持锁定状态,确保环境安全性。
三、系统配置持久化
程序通过读写 Windows 注册表来保存用户的个性化设置,确保配置不随程序关闭而丢失。
1. 注册表路径:统一使用 `SYSTEMSET\SET` 作为主键。
2. 配置项说明:
- `PMM`:存储用户设置的访问密码。
- `DESK`:标识 `是否隐藏窗口`,用于决定程序运行时是作为前台应用还是后台隐形服务。
- `BEGIN`:标识 `是否开机运行`,决定程序是否注入到 `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run` 注册表项中以实现开机自启。
3. 配置保存:在设置窗口点击“保存按钮”时,程序会校验两次输入的密码是否一致。若一致,则依次写入上述注册表项,并根据开机自启选项的状态,动态向注册表的“Run”键添加或删除当前可执行文件的路径,最后销毁设置窗口返回主程序。
四、屏幕取色工具功能
除了安全锁定,程序还具备一个独立的实用工具——取色器。
1. 视觉追踪:取色窗口会在 `_首次激活` 时启动内部时钟,每隔一定时间(如 50 毫秒)刷新位置。通过获取鼠标的水平和垂直坐标,将取色窗口紧贴鼠标指针,实现随动效果。
2. 图像截取与渲染:程序利用画板控件,结合截图功能获取鼠标当前位置的屏幕快照,并将其放大显示在画板上,以便用户看清细节。
3. 颜色计算:通过 `取点` 方法获取图像中心点的颜色值(整数型表示)。随后使用数学运算将颜色值分解为蓝色(B)、绿色(G)、红色(R)三个分量,并转换为用户可读的文本格式显示在标签上。同时,程序还会实时显示当前的鼠标 X、Y 坐标,方便精确选取。
五、关键技术手段
1. 系统 API 调用:
- `ClipCursor`:来自 user32.dll,用于将鼠标光标限制在特定的矩形区域内。这在程序中用于锁定主窗口范围,防止用户误触外部。
- `SystemParametersInfoA`:用于更底层的系统参数控制,参数 97 在此处被用作锁定功能键的标志,增强防篡改能力。
2. 易语言原生命令:大量使用了如 `取文本注册表项 `、` 锁键`、` 信息框` 等内置指令,简化了代码编写,保证了程序的稳定性和兼容性。
3. 逻辑控制:利用 `.如果` 分支结构和逻辑变量(如 `第一次运行`),灵活处理不同状态下的界面表现和权限分配。
综上所述,该程序是一个典型的安全工具与辅助效率工具的集合体。对于需要临时固定电脑操作界面的场景(如展示、教学演示、防止误操作),它能有效锁定系统交互;对于设计或开发人员,它又提供了快速的取色支持。代码逻辑展现了易语言在处理 GUI 事件、系统级 API 调用以及注册表管理方面的标准模式。
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ _密码框_内容被改变
| |
| |------ _解锁按钮_被单击
| |
| |------ _设置按钮_被单击
| |
| |------ _退出按钮_被单击
| |
| |------ 设置鼠标位置
| |
| |
======窗口程序集2
| |
| |------ _设置窗口_创建完毕
| |
| |------ _密码编辑框1_内容被改变
| |
| |------ _密码编辑框2_内容被改变
| |
| |------ _桌面选择框_被单击
| |
| |------ _运行选择框_被单击
| |
| |------ _保存按钮_被单击
| |
| |------ _取消按钮_被单击
| |
| |
======调用的Dll
| |
| |---[dll]------ 取消鼠标限制
| |
| |---[dll]------ 限制鼠标
| |
| |---[dll]------ 锁键
======窗口程序集1
| |
| |------ _取色窗口_首次激活
| |
| |
======窗口程序集2
| |
| |------ _时钟_周期事件
| |
| |------ __启动窗口_首次激活
| |
| |------ __启动窗口_将被销毁
| |
| |
======调用的Dll
| |
| |---[dll]------ 取状态
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。