麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Visual Basic > 正文

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

2020-01-31 16:30:55
字體:
供稿:網(wǎng)友

我想要實(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 ExplicitPrivate Declare Function GetLastInputInfo Lib "user32" (plii As LASTINPUTINFO) As BooleanPrivate Declare Function GetTickCount Lib "kernel32" () As LongPrivate Type LASTINPUTINFO  cbSize As Long  dwTime As LongEnd 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 IfEnd Sub

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 国产午夜精品久久久久久免费视 | 在线男人天堂 | 欧美日韩国产一区二区三区在线观看 | 91网站链接| 韩国一大片a毛片 | 国产资源视频在线观看 | 一区二区高清视频在线观看 | 日本a在线观看 | 亚洲欧美一区二区三区在线观看 | 黄色av网站在线观看 | 国产午夜精品在线 | 免费人成在线播放 | 性插视频 | 极品美女一级毛片 | 91久久国产综合精品女同国语 | 黄色电影免费提供 | 亚洲精品午夜在线 | 欧美a∨亚洲欧美亚洲 | 欧美日韩在线免费观看 | 色网站免费观看 | 欧美日本综合 | 欧美成人性生活 | 鲁人人人鲁人人鲁精品 | 青久草视频 | 国产免费福利视频 | 免费a级片在线观看 | 国产电影精品久久 | 日韩色视频| 女人久久久www免费人成看片 | 久久精品伊人网 | 毛片一区二区三区 | 久久精品亚洲一区二区三区观看模式 | 国产盼盼私拍福利视频99 | 欧美十区 | 九九热在线视频免费观看 | 免费看成年人网站 | 成人三级电影在线 | 在线播放免费人成毛片乱码 | 欧美一级高潮片免费的 | 92精品国产自产在线 | 龙的两根好大拔不出去h |