如何使程序到达指定时间时使系统假死机,只有按Ctrl+Alt+Del后输入密码才能正常继续?(内详)

coolqiang 2000-05-18 04:56:00
此程序通过修改注册表实现随Windows启动后即开始计时,到达设定时间(如10分钟后)就使系统不接受键盘、鼠标输入(模拟死机),只有按下Ctrl+Alt+Del才会弹出一对话框,要求输入密码,输入正确则Windows恢复正常,计时重新开始;输入错误则继续模拟死机。

请高手指点一下该怎样写程序?如果有源代码作参考当然最好,谢谢!
...全文
602 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
skt642 2001-05-31
  • 打赏
  • 举报
回复
83015关注!
码狂 2000-05-23
  • 打赏
  • 举报
回复
我可是会的不多!
我写了个程序,就是不知你的邮箱。
首先做一个全屏的Form,设一下属性。
BorderIcons = [biSystemMenu]
BorderStyle = bsNone
FormStyle = fsStayOnTop
KeyPreview = True
然后把Form做成透明的:
private
{ Private declarations }
procedure CMEraseBkgnd(var Message:TWMEraseBkgnd); Message WM_ERASEBKGND;
public
{ Public declarations }
ShouldClose: boolean;
end;

procedure TfmMain.CMEraseBkgnd(var Message:TWMEraseBkgnd);
begin
brush.style:=bsClear;
Inherited;
end;

编写程序的出口:
procedure TfmMain.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key = VK_Delete) and (Shift = [ssAlt, ssCtrl]) then
begin
dlgPassword.ShowModal;
if (dlgPassword.ModalResult = mrOk) then
Self.Close;
end;
//以下是紧急出口,调试时请不要注释
if (Key = VK_F10) then
begin
ShouldClose := true;
Self.Close;
end;
end;

procedure TfmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if ShouldClose then
Action := caFree
else
Action := caNone;
end;

屏蔽热键:
procedure TfmMain.FormCreate(Sender: TObject);
var
Temp: Integer;
begin
Temp := 0;
//屏蔽 Alt-Tab
SystemParametersInfo(SPI_SETFASTTASKSWITCH, 1, @Temp, 0);
//屏蔽 Ctrl-Alt-Del
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, @Temp, 0);
Self.Cursor := crNone;
end;

在核对密码的对话框中,正确时将: ShouldClose := true;

只能在Win 9X,中屏蔽热键,在NT或2000中要用hook函数过滤消息。最好通过OICQ交流。
kxy 2000-05-18
  • 打赏
  • 举报
回复
http://www.csdn.net/Delphi/Samples/SCRSAV95.ZIP
coolqiang 2000-05-18
  • 打赏
  • 举报
回复
谢谢!这个例子在哪里?方便的话可以给我妹一个吗?
kxy 2000-05-18
  • 打赏
  • 举报
回复
你没有明白我的意思,screensaver 是一个程序,定时由windows启动。
你把屏保的功能做在你的程序中,由你定时执行不就行了。
coolqiang 2000-05-18
  • 打赏
  • 举报
回复
按屏保写?不行!因为用户试用时会用鼠标和键盘,而屏保是在无人操作下一定时间后启动的。有其它方法吗?
kxy 2000-05-18
  • 打赏
  • 举报
回复
就按屏保的写法写。本站有例子。
coolqiang 2000-05-18
  • 打赏
  • 举报
回复
不是,是有特殊用途的程序。在进行业务演示,有用户试用时可用来限定时间(免得有人觉得好玩半天不走而影响别人试用)。怎么样,可以给我一点帮助吗?
kxy 2000-05-18
  • 打赏
  • 举报
回复
什么意思,屏保?

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧