欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

vb

當(dāng)前位置:主頁 > 軟件編程 > vb >

VB鍵盤鼠標(biāo)無動(dòng)作調(diào)用程序的嘗試

來源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:vb|點(diǎn)擊: 次

我想要實(shí)現(xiàn)的功能是,當(dāng)鍵盤無輸入、鼠標(biāo)無移動(dòng)或點(diǎn)擊動(dòng)作時(shí)調(diào)用程序。首先想到的是用鉤子HOOK來獲取鍵盤或者鼠標(biāo)的動(dòng)作,如果無動(dòng)作時(shí)調(diào)用程序。我嘗試的結(jié)果是HOOK來HOOK去總是有問題。

后來想到Windows的屏幕保護(hù)程序就是當(dāng)鍵盤鼠標(biāo)無動(dòng)作時(shí)進(jìn)入屏幕保護(hù)的,于是改變思路,想把程序做成這樣的形式,鍵盤鼠標(biāo)無動(dòng)作,系統(tǒng)進(jìn)入屏幕保護(hù),然后檢測(cè)系統(tǒng)是否運(yùn)行屏幕保護(hù)程序,如果運(yùn)行的話則調(diào)用程序。這種方式就是以屏幕保護(hù)程序作為中介,把檢測(cè)鍵盤鼠標(biāo)動(dòng)作的工作交給屏幕保護(hù)程序來完成了。SystemParametersInfo可以實(shí)現(xiàn)獲取屏幕保護(hù)信息的函數(shù)。參考代碼如下:

'API調(diào)用與常用定義:
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 '屏保是否運(yùn)行的常量

Private Sub Timer1_Timer()
  Dim bRunning As Boolean   '屏保是否運(yùn)行的變量,當(dāng)然你可以定義全局變量
  SystemParametersInfo SPI_GETSCREENSAVERRUNNING, 0, bRunning, False '調(diào)用API,bRunning返回屏保運(yùn)行狀態(tài)
  Debug.Print Time; "屏保運(yùn)行="; bRunning '演示:打印屏保是否運(yùn)行的信息
End Sub
 
'另外,查看屏保是否啟用,也可以用下面方法:
SystemParametersInfo SPI_GETSCREENSAVEACTIVE, 0, bActive, False 'bActive為返回值(邏輯型)

可是不知道為什么我在WIN7下調(diào)試還是有問題,提示SystemParametersInfo SPI_GETSCREENSAVERRUNNING, 0, bRunning, False
中的bRunning類型錯(cuò)誤,只能作罷。

最后來說一下最終實(shí)現(xiàn)的方案是使用GetLastInputInfo函數(shù)獲取系統(tǒng)的空閑時(shí)間,參考代碼如下:

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("由于本機(jī)15分鐘沒有操作,如果3分鐘后沒有反應(yīng),系統(tǒng)將強(qiáng)制關(guān)機(jī)", vbYesNo + vbExclamation + vbDefaultButton2, "提示")
    End If
  End If
End Sub

以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。

上一篇:VBS腳本寫的Windows硬件檢測(cè)工具分享

欄    目:vb

下一篇:vb下的惡搞關(guān)機(jī)程序

本文標(biāo)題:VB鍵盤鼠標(biāo)無動(dòng)作調(diào)用程序的嘗試

本文地址:http://mengdiqiu.com.cn/a1/vb/7187.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有