||| 用API函数 GetCursorPos 我有一个类与模块 那么我告诉你 或是你说TIMER控件不能在其他地方使用 直接一个MOD 也可以搞定 有就将值赋为0没有就计时也就不用写成窗口了 这样可以得到键盘与鼠标当前是否有操作 在程序获得焦点的情况下检测鼠标移动是 Object_MouseMove 事件. 然后每秒检查鼠标的位置是否相同来判定鼠标是否移动.Option ExplicitPrivate Type POINTAPI x As Long y As LongEnd TypePrivate Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As LongDim oldPos As POINTAPIDim a As LongPrivate Sub Timer1_Timer() Dim rc As Long Dim newPos As POINTAPI rc = GetCursorPos(newPos) If newPos.x <> oldPos.x And newPos.y <> oldPos.y Then a = 0 oldPos.x = newPos.x oldPos.y = newPos.y Else a = a + 1 End If Label1.Caption = a If a = 3600 Then Shell "cmd /c shutdown /s /t 60" Timer1.Enabled = False a = 0 End IfEnd Sub 答案补充 另外 这样不管你的程序有没有焦点都能获取鼠标的位置 用API 捕获消息 可以让你在除窗体外的地方使用TIMER 所以类似这种的程序我不会写窗体的