程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> VB鍵盤鼠標無舉措挪用法式的測驗考試

VB鍵盤鼠標無舉措挪用法式的測驗考試

編輯:VB綜合教程

VB鍵盤鼠標無舉措挪用法式的測驗考試。本站提示廣大學習愛好者:(VB鍵盤鼠標無舉措挪用法式的測驗考試)文章只能為提供參考,不一定能成為您想要的結果。以下是VB鍵盤鼠標無舉措挪用法式的測驗考試正文


我想要完成的功效是,當鍵盤無輸出、鼠標無挪動或點擊舉措時挪用法式。起首想到的是用鉤子HOOK來獲得鍵盤或許鼠標的舉措,假如無舉措時挪用法式。我測驗考試的成果是HOOK來HOOK去老是有成績。

後來想到Windows的屏幕掩護法式就是當鍵盤鼠標無舉措時進入屏幕掩護的,因而轉變思緒,想把法式做成如許的情勢,鍵盤鼠標無舉措,體系進入屏幕掩護,然後檢測體系能否運轉屏幕掩護法式,假如運轉的話則挪用法式。這類方法就是以屏幕掩護法式作為中介,把檢測鍵盤鼠標舉措的任務交給屏幕掩護法式來完成了。SystemParametersInfo可以完成獲得屏幕掩護信息的函數。參考代碼以下:

'API挪用與經常使用界說:
Private Declare Function SystemParametersInfo _
  Lib "user32" _
  Alias "SystemParametersInfoA" _
   (ByVal uiAction As Long, _
    ByVal uiParam As Long, _
    pvParam As Any, _
    ByVal fWInIni As Long) As Boolean
 
Private Const SPI_GETSCREENSAVEACTIVE As Long = &H10  '屏保能否啟用的常量
Private Const SPI_GETSCREENSAVERRUNNING As Long = &H72 '屏保能否運轉的常量

Private Sub Timer1_Timer()
  Dim bRunning As Boolean   '屏保能否運轉的變量,固然你可以界說全局變量
  SystemParametersInfo SPI_GETSCREENSAVERRUNNING, 0, bRunning, False '挪用API,bRunning前往屏保運轉狀況
  Debug.Print Time; "屏保運轉="; bRunning '演示:打印屏保能否運轉的信息
End Sub
 
'別的,檢查屏保能否啟用,也能夠用上面辦法:
SystemParametersInfo SPI_GETSCREENSAVEACTIVE, 0, bActive, False 'bActive為前往值(邏輯型)

可是不曉得為何我在WIN7下調試照樣有成績,提醒SystemParametersInfo SPI_GETSCREENSAVERRUNNING, 0, bRunning, False
中的bRunning類型毛病,只能作罷。

最初來講一下終究完成的計劃是應用GetLastInputInfo函數獲得體系的余暇時光,參考代碼以下:

Option Explicit
Private Declare Function GetLastInputInfo Lib "user32" (plii As LASTINPUTINFO) As Boolean
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Type LASTINPUTINFO
  cbSize As Long
  dwTime As Long
End Type
 
Private Sub Form_Load()
   Timer1.Interval = 1000  
End Sub
 
Private Sub Timer1_Timer()
  Dim lii As LASTINPUTINFO
  lii.cbSize = Len(lii)
  If GetLastInputInfo(lii) Then
    If (GetTickCount - lii.dwTime) / 60000 >= 15 Then      
      Call MsgBox("因為本機15分鐘沒有操作,假如3分鐘後沒有反響,體系將強迫關機", vbYesNo + vbExclamation + vbDefaultButton2, "提醒")
    End If
  End If
End Sub

以上所述就是本文的全體內容了,願望年夜家可以或許愛好。

  1. 上一頁:
  2. No
Copyright © 程式師世界 All Rights Reserved