如果我们不想让别人动我们的计算机,最好的办法就是装上一个开机密码程序来限制一些不速之客的入侵,但要是你手头没有这类软件或者你太懒惰不想去找。没问题!你可以用Windows 下的屏幕保护程序,因为屏幕保护程序在Windows下是可以设置密码的,我们就是通过这一特征实现用屏保来设置开机密码的。
这里以Win98为例介绍一下具体的 *** 作步骤:
1首先在桌面上右击,在d出菜单中选择“属性”,出现“显示属性”窗口,选择“屏幕保护程序”页,选择你喜欢的屏幕保护程序(这里选择Aquarium屏保程序),等待时间任填,在“密码保护”前的复选框上打上钩,然后点击“设置”,填入你的密码,这个密码就是开机密码。
2单击“开始”→“查找”,(或者直接按“Win+F”组合键)在d出的查找窗口中的名称输入框输入刚才选择的屏保程序名,输入Aquariumscr,查找范围为C盘,输完后单击“查找”按钮。将查找到的这个屏保程序拖放到“开始”→“程序”→“启动”中,也就是每次开机都运行这个加过密的屏保程序。
虽然这个屏幕保护程序可以实现限制非法用户的进入,但是如果遇到的这个非法用户是一只老鸟,他可能会通过进入“安全模式”的方式把启动项中的屏保程序删除,这样屏保密码就会被破解掉。
下面笔者就实行另一个计划,禁止非法用户进入“安全模式”,也就是非法用户无法在开机时激活Windows启动菜单。
3单击“开始”→“查找”,找到“Msdossys”文件,用记事本打开它,然后在该文件中的[option]小节中加入如下几行:
“BootMulti=0”表示设置系统不能显示启动菜单
@echo off & title 一键设置屏幕保护 By 依梦琴瑶
::设置屏幕保护程序路径
set ScrFile=%SystemRoot%\System32\我的屏幕保护scr
::设置等待时间(分钟),有效值(1-9999)
set TimeOut=10
::设置是否启用登录屏幕,1 启用,0 禁用
set Login=1
::是否立即生效,1 立即(系统将会注销当前帐户),其它数字下次开机后生效
set Effective=1
::主执行代码
ver|find "51">nul && goto Setting
%1 echo 正在请求管理员权限。。。&&mshta vbscript:CreateObject("ShellApplication")ShellExecute("cmdexe","/c %~s0 ::","","runas",1)(windowclose)&&exit
:Setting
set /a TimeOut=60
set "Key=HKCU\Control Panel\Desktop"
reg add "%key%" /v SCRNSAVEEXE /t REG_SZ /d "%ScrFile%" /f
reg add "%key%" /v ScreenSaveTimeOut /t REG_SZ /d "%TimeOut%" /f
reg add "%key%" /v ScreenSaverIsSecure /t REG_SZ /d "%Login%" /f
echo, & echo,
if %Effective% equ 1 (
echo 按下任意键,系统将注销当前帐户,再次登录后,相关设置即可生效。
pause>nul
shutdown /l >nul 2>nul
) else (
echo 按下任意键,将直接退出脚本,但屏幕保护设置页面的参数可能不会有变化。但有可能设置已经生效,建议注销帐户或重启电脑,以便正常生效。
pause>nul
)
exit
命令行设置屏保时间需要代码进行设置。
屏保的文件扩展名是scr,一般存放在windows中,找到带这个文件后缀的文件,在命令行里输入文件名就可以实现命令设置屏保了。
首先鼠标右键点击电脑桌面空白位置,打开菜单列表;接下来点击菜单列表中的个性化选项;进入个性化界面后点击界面右下角的屏幕保护程序按钮,这个时候就可以看到屏幕保护程序界面中有等待设置选项了,直接输入自己想要设置的等待时间就可以。
按Win+R键,输入cmd后回车
然后在黑色窗口中输入以下代码后回车:
assoc scr=打开类型
注意,这里的“打开类型”请根据已有的类型标识来写,比如用记事本打开,那么就是txtfile
具体,您可以单独输入assoc后回车即可看到已知的类型列表
准备:一个窗口(_启动窗口),一个画板(画板1),一个时钟(时钟1)
_启动窗口 和 画板1 的 可视 都为 假,时钟1 的 时间周期 为 0,_启动窗口 的 总在最前 为 真。
到 _启动窗口 对应的 窗口程序集,把下面的代码拷贝过去即可。
版本 2支持库 OPenGL
支持库 EThread
支持库 spec
支持库 iext
支持库 eAPI程序集 窗口程序集1, , , 高仿黑客帝国
程序集变量 t, 整数型
程序集变量 x, 整数型
程序集变量 y, 整数型
程序集变量 z, 整数型
程序集变量 屏幕高度, 整数型, , , 屏幕高度
程序集变量 屏幕宽度, 整数型, , , 屏幕宽度子程序 __启动窗口_创建完毕屏幕高度 = 取屏幕高度 ()
屏幕宽度 = 取屏幕宽度 ()
画板1画板背景色 = #黑色
_启动窗口移动 (0, 0, 屏幕宽度, 屏幕高度)
画板1移动 (0, 0, 屏幕宽度, 屏幕高度)
t = 0
z = 屏幕高度 ÷ 20
显示光标 (假)
_启动窗口可视 = 真
画板1可视 = 真
_启动窗口调整层次 (1)
定义 ()
画板1获取焦点 ()
时钟1时钟周期 = 400 ' 每列产生间隔(ms)
启动线程 (&数字雨输出, , )
延迟 (400)
启动线程 (&数字雨输出, , )
延迟 (300)
启动线程 (&数字雨输出, , )
延迟 (200)
启动线程 (&数字雨输出, , )
延迟 (200)
启动线程 (&数字雨输出, , )
延迟 (200)
启动线程 (&数字雨输出, , )
延迟 (200)
时钟2时钟周期 = 1000
_时钟2_周期事件 ()
子程序 _画板1_鼠标位置被移动, 逻辑型
参数 横向位置, 整数型
参数 纵向位置, 整数型
参数 功能键状态, 整数型如果真 (取绝对值 (横向位置 - x) > 50 或 取绝对值 (纵向位置 - y) > 50)
定义 ()
t = t + 1
如果真 (t > 3) ' 事不过三
结束 ()
如果真结束如果真结束
子程序 _画板1_按下某键, 逻辑型
参数 键代码, 整数型
参数 功能键状态, 整数型结束 ()
子程序 定义x = 取鼠标水平位置 ()
y = 取鼠标垂直位置 ()
子程序 数字雨输出, , , 数字雨输出
局部变量 E, 整数型, , , 垂直位置
局部变量 F, 整数型, , , 水平位置,起点
局部变量 G, 整数型, , , 显示长度,单位=位
局部变量 H, 整数型, , , 下降速度
局部变量 I, 整数型, , , 移动次数
局部变量 J, 整数型, , , 绿与白
局部变量 CHR, 文本型, , "1000"置随机数种子 ()
J = 取随机数 (1, 5)
如果 (J = 1 或 J = 3 或 J = 5)
置随机数种子 ()
E = 取随机数 (0, 屏幕宽度)
置随机数种子 ()
F = 取随机数 (0, 到整数 (屏幕高度 × 075))
置随机数种子 ()
G = 取随机数 (z × 02, z × 065)
置随机数种子 ()
H = 取随机数 (10, 600)
判断循环首 (真)
' 画板1字体字体名称 = “黑体”
' 画板1字体字体大小 = 16
CHR [I + 1] = 获取字符 ()
画板1文本颜色 = #绿色
画板1定位写出 (E, F + I × 20, CHR [I + 1])
如果真 (I ≠ 0)
画板1文本颜色 = #墨绿
画板1定位写出 (E, F + (I - 1) × 20, CHR [I])
如果真结束
如果真 (I > G + 1)
画板1文本颜色 = 取颜色值 (0, 40, 0)
画板1定位写出 (E, F + (I - G - 1) × 20, CHR [I - G])
画板1文本颜色 = #黑色
画板1定位写出 (E, F + (I - G - 2) × 20, CHR [I - G - 1])
如果真结束
I = I + 1
如果真 (F + I × 20 > 屏幕高度)
跳出循环 ()
如果真结束
延迟 (H) ' 避免CPU过高
如果真 (I > 1000)
结束 ()
如果真结束 判断循环尾 ()
判断循环首 (真)
如果真 (I > G + 1)
画板1文本颜色 = 取颜色值 (0, 40, 0)
画板1定位写出 (E, F + (I - G - 1) × 20, CHR [I - G])
画板1文本颜色 = #黑色
画板1定位写出 (E, F + (I - G - 2) × 20, CHR [I - G - 1])
如果真结束
I = I + 1
如果真 (F + I × 20 - (G + 2) × 20 > 屏幕高度)
跳出循环 ()
如果真结束
延迟 (H) ' 避免CPU过高
如果真 (I > 1000)
结束 ()
如果真结束 判断循环尾 ()
否则 置随机数种子 ()
E = 取随机数 (0, 屏幕宽度)
置随机数种子 ()
F = 取随机数 (0, 到整数 (屏幕高度 × 075))
置随机数种子 ()
G = 取随机数 (z × 02, z × 065)
置随机数种子 ()
H = 取随机数 (10, 600)
判断循环首 (真)
' 画板1字体字体名称 = “黑体”
' 画板1字体字体大小 = 16
CHR [I + 1] = 获取字符 ()
画板1文本颜色 = #白色
画板1定位写出 (E, F + I × 20, CHR [I + 1])
如果真 (I ≠ 0)
画板1文本颜色 = #浅灰
画板1定位写出 (E, F + (I - 1) × 20, CHR [I])
如果真结束
如果真 (I > G + 1)
画板1文本颜色 = #灰色
画板1定位写出 (E, F + (I - G - 1) × 20, CHR [I - G])
画板1文本颜色 = #黑色
画板1定位写出 (E, F + (I - G - 2) × 20, CHR [I - G - 1])
如果真结束
I = I + 1
如果真 (F + I × 20 > 屏幕高度)
跳出循环 ()
如果真结束
延迟 (H) ' 避免CPU过高
如果真 (I > 1000)
结束 ()
如果真结束 判断循环尾 ()
判断循环首 (真)
如果真 (I > G + 1)
画板1文本颜色 = #灰色
画板1定位写出 (E, F + (I - G - 1) × 20, CHR [I - G])
画板1文本颜色 = #黑色
画板1定位写出 (E, F + (I - G - 2) × 20, CHR [I - G - 1])
如果真结束
I = I + 1
如果真 (F + I × 20 - (G + 2) × 20 > 屏幕高度)
跳出循环 ()
如果真结束
延迟 (H) ' 避免CPU过高
如果真 (I > 1000)
结束 ()
如果真结束 判断循环尾 ()如果结束
子程序 获取字符, 文本型
局部变量 A, 文本型置随机数种子 ()
A = 字符 (取随机数 (27, 127))
判断循环首 (A = “” 或 A = “ ” 或 A = “ ”)
置随机数种子 ()
A = 字符 (取随机数 (27, 127))
判断循环尾 ()
A = 到全角 (A)
返回 (A)
子程序 _时钟1_周期事件启动线程 (&数字雨输出, , )
貌似有2年没回答过问题了。汗……
MouseMove是不行的,因为鼠标必须要在窗口上移动,才能触发这个事件。正如上面所说,如果鼠标在另一个屏幕上呢?又或者,别人动的不是鼠标,而是键盘呢?就不会触发MouseMove了。最简单的做法是,检测有没有输入,有个TLastInputInfo类可以做到。不管是鼠标还是键盘,只要有动作,这个类就能捕捉到。可以这样实现:
窗口上放个闹钟,设置为一秒就行(时间越短,检测越快)。再放一个标签Label。下面看代码
procedure TForm1Timer1Timer(Sender: TObject);
var
IsInput: TLastInputInfo;
begin
IsInputcbSize := SizeOf(IsInput);
GetLastInputInfo(IsInput);
if GetTickCount - IsInputdwTime > 5000 then //这里设置多久开始进入屏保,单位毫秒
begin
Label1Caption:='已经5秒没有动静了';
//这里放置你的屏保代码,进入屏保状态。
end
else
begin
Label1Caption:='检测到鼠标或键盘有动作';
//这里退出屏保状态代码
end;
end;
以上代码Delphi7 + Windows7旗舰版测试通过
以上就是关于如何设置屏幕保护程序全部的内容,包括:如何设置屏幕保护程序、用批处理或者VBS脚本设置WIN/XP系统屏幕保护程序、等待时间和恢复时显示密码、命令行设置屏保时间 rundll等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)