如何锁定程序(100分)

  • 主题发起人 alan stephen
  • 开始时间
A

alan stephen

Unregistered / Unconfirmed
GUEST, unregistred user!
希望大家踊跃回答:<br>&nbsp; 有这样一个需求,执行一个应用程序之后,如果在一段时间内没有键盘或者鼠标的操作,<br>程序就被锁定,当有键盘或者鼠标操作后通过输入密码来解锁!在这段时间内如果干别的<br>事情(比如玩扫雷),那么时间到了程序还是要被锁定,有哪位世外高人可以给予指点,在<br>下感激涕零
 
可以采用Hook与定时器。
 
首先定时器是需要的<br>如果窗口的焦点失去了,就启动定时器,到达设定的时间就执行:<br>if 窗口得到焦点 then 先把主窗体隐藏然后弹出警告窗体要求输入密码<br>很简单吧?
 
需要用到Hook和定时器,检测系统消息,但是如果除去玩游戏的话,比较难。
 
去玩游戏时,本程序不是不active啦么,此时计时不就行么,有人有codes么??<br><br>学學
 
var islock: boolean;<br>procedure TForm1.FormCreate(Sender: TObject);<br>begin<br>&nbsp; islock := false;<br>&nbsp; Application.HookMainWindow(LockApplication);<br>end;<br><br>procedure TForm1.FormDestroy(Sender: TObject);<br>begin<br>&nbsp; Application.UnhookMainWindow(LockApplication);<br>end;<br><br>function TForm1.LockApplication(var Message: TMessage): boolean;<br>begin<br>&nbsp; result := false;<br>&nbsp; if (Message.Msg = WM_KEYDOWN) or (Message.Msg = WM_MBUTTONDOWN)<br>&nbsp; or (Message.Msg = WM_MOUSEMOVE) then<br>&nbsp; begin<br>&nbsp; &nbsp; if not islock then<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; Timer1.Enabled := false;<br>&nbsp; &nbsp; &nbsp; Timer1.Enabled := true;<br>&nbsp; &nbsp; end<br>&nbsp; &nbsp; else<br>&nbsp; &nbsp; &nbsp; //弹出锁定窗体<br>&nbsp; end;<br>end;<br><br>procedure TForm1.Timer1Timer(Sender: TObject);<br>begin<br>&nbsp; islock := true;<br>end;<br>现在的问题是如果是键盘消息的话没有问题,可是鼠标消息捕捉不到,为何?
 
你们这些来大富翁论坛的都是一坨屎呀?这么简单的问题都解决不了,还不如去死呢!<br>要不要我指导你们呀?需要的话给我来句话!
 
if 程序有焦点 then<br>&nbsp; &nbsp; if 鼠标不动,键盘没有输入 一定时间 then<br>&nbsp; &nbsp; &nbsp; &nbsp; 锁定<br>else <br>&nbsp; &nbsp; if 一定时间 then<br>&nbsp; &nbsp; &nbsp; &nbsp; 锁定
 
"你们这些来大富翁论坛的都是一坨屎呀?这么简单的问题都解决不了,还不如去死呢!<br>要不要我指导你们呀?需要的话给我来句话"<br>我这里有代码,可是我看到这样的话,就不想发了
 
盛利是一个啥都不懂的傻屄,你根本就不懂编程还到这里来现世,看看你写的都是一些什么<br>狗屎,哈哈哈哈哈哈哈哈哈!!!!!!!!!!!!!!!!!!!!
 
顶部