想弄个小程序,实现检测键盘鼠标活动时间,每活动半小时锁定电脑半小时然后自动解锁继续检测,以此循环。家里孩子放假了整天长在电脑旁边。想这样限制他一下。
开始想弄一个屏保相反的程序,结果没成功。
哪位有思路还望不吝赐教,要是有代码更是不胜感激,呵呵。

解决方案 »

  1.   

    呵呵,这个也不难啊
    研究一下怎么固定鼠标位置即可。楼主看看这个:
    1、建立一个新工程项目,缺省建立窗体FORM1
    2、添加一个新模体
    3、粘贴下面代码到新模体Option ExplicitDeclare Function ClipCursor Lib "user32" (lpRect As Any) As Long
    Declare Function ClipCursorClear Lib "user32" Alias "ClipCursor" (ByVal lpRect As Long) As Long
    Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
    Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    End Type
    Type POINTAPI
    X As Long
    Y As Long
    End Type
    Public RetValue As Long
    Public ClipMode As Boolean
    Public Sub SetCursor(ClipObject As Object, Setting As Boolean)
    ' used to clip the cursor into the viewport and
    ' turn off the default windows cursor
    Dim CurrentPoint As POINTAPI
    Dim ClipRect As RECT
    If Setting = False Then
    ' set clip state back to normal
    RetValue = ClipCursorClear(0)
    Exit Sub
    End If
    ' set current position
    With CurrentPoint
    .X = 0
    .Y = 0
    End With
    ' find position on the screen (not the window)
    RetValue = ClientToScreen(ClipObject.hwnd, CurrentPoint)
    ' designate clip area
    With ClipRect
    .Top = CurrentPoint.Y
    .Left = CurrentPoint.X
    .Right = .Left + ClipObject.ScaleWidth
    .Bottom = .Top + ClipObject.ScaleHeight
    End With ' clip it
    RetValue = ClipCursor(ClipRect)
    End Sub
    4、添加一个图片框控件(PICTURE1)到窗体(FORM1)
    5、设置PICTURE1的尺寸和FORM1的一样大
    6、在PICTURE1的CLICK事件中添加以下代码:
    Private Sub Picture1_Click()
    ClipMode = Not ClipMode
    SetCursor Picture1, ClipMode
    End Sub
    7、保存工程项目
    8、运行程序。在图片框单击鼠标,鼠标将被包含在图片框控件的区域内。要释放限制状态只需再次单击鼠标。
    注意:如果释放限制状态失败,鼠标将被永久限制,只能用重新启动机器来解决。
    另一个限制鼠标活动范围的方法是关闭鼠标
      

  2.   

    多谢大家,我试试Veron_04的代码。
      

  3.   

    学习一下,顺祝各位新年Happy
      

  4.   

    呵呵...   孩子与家长的斗智中相互成长... hiahia...
    有点魔高一尺道高一丈的意思了呢     ^^
      

  5.   

    LZ你这种办法想要达到完美,要了解很多编辑知识还要对付小孩是否会重启电脑,重启后软件就关闭了,还要让软件在系统重启后自动再启动,还要不停地判断时间,判断开放鼠标,还要考虑软件是否被小孩,在进程中把你的软件KILL掉,要想达到完美较费事建议可以考虑现成类似的软件
      

  6.   

    用 Timer 检测 GetLastInputInfo 具体内容,lz 可以去查msdn等资料
    这个最适合你
      

  7.   

    不用 锁键盘、锁鼠标。要“锁定”时:
      用一无边框空白窗体,全屏、置顶、设置 Alpha = 1
      Hook键盘消息、屏蔽系统键。要“解锁”时:
      把窗体移出屏幕区域,解除系统键的屏蔽。把程序随系统启动运行。
    采取一定的措施防止被“恶意终止”。
      

  8.   

    不用这么麻烦!
    把工程窗体设置成无边框窗体;
    启动时,让窗体全屏启动;
    使用一个Timer 控件。在Timer中调用 SetWindowPos 这个API 将窗体始终置顶即可;
    这样,除非限制事件到后程序自动退出,否则任何程窗体都无法显示出来!
    简单!方便!实用!