一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - VB - VB鍵盤鼠標無動作調用程序的嘗試

VB鍵盤鼠標無動作調用程序的嘗試

2021-10-15 12:09VB教程網 VB

這篇文章主要介紹了VB鍵盤鼠標無動作調用程序的嘗試,記錄下整個思路和過程,有需要的小伙伴可以參考下。

我想要實現的功能是,當鍵盤無輸入、鼠標無移動或點擊動作時調用程序。首先想到的是用鉤子HOOK來獲取鍵盤或者鼠標的動作,如果無動作時調用程序。我嘗試的結果是HOOK來HOOK去總是有問題。

后來想到Windows的屏幕保護程序就是當鍵盤鼠標無動作時進入屏幕保護的,于是改變思路,想把程序做成這樣的形式,鍵盤鼠標無動作,系統進入屏幕保護,然后檢測系統是否運行屏幕保護程序,如果運行的話則調用程序。這種方式就是以屏幕保護程序作為中介,把檢測鍵盤鼠標動作的工作交給屏幕保護程序來完成了。SystemParametersInfo可以實現獲取屏幕保護信息的函數。參考代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
'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函數獲取系統的空閑時間,參考代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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

以上所述就是本文的全部內容了,希望大家能夠喜歡。

延伸 · 閱讀

精彩推薦
  • VBVB的TextBox文本框實現垂直居中顯示的方法

    VB的TextBox文本框實現垂直居中顯示的方法

    這篇文章主要介紹了VB的TextBox文本框實現垂直居中顯示的方法,比較實用的功能,需要的朋友可以參考下...

    VB教程網15092021-10-11
  • VBVB實現的16位和32位md5加密代碼分享

    VB實現的16位和32位md5加密代碼分享

    這篇文章主要介紹了VB實現的16位和32位md5加密代碼分享,需要的朋友可以參考下...

    VB.NET教程網8592021-10-08
  • VB分享如何在VB中調用VC編寫的DLL

    分享如何在VB中調用VC編寫的DLL

    一般來說,VB和VC共同編程有3種方式:一種是VC生成DLL,在VB中調用DLL;一種是VC生成ActiveX控件(.ocx),在VB中插入;還有一種是在VC中生成ActiveX Automation服務器...

    VB教程網4452021-10-07
  • VBVB鍵盤鼠標無動作調用程序的嘗試

    VB鍵盤鼠標無動作調用程序的嘗試

    這篇文章主要介紹了VB鍵盤鼠標無動作調用程序的嘗試,記錄下整個思路和過程,有需要的小伙伴可以參考下。...

    VB教程網4452021-10-15
  • VBVB返回記錄集結果到HTML表格的方法

    VB返回記錄集結果到HTML表格的方法

    這篇文章主要介紹了VB返回記錄集結果到HTML表格的方法,實例分析了VB獲取記錄集與HTML表格生成的相關技巧,需要的朋友可以參考下...

    小卒過河10682021-10-15
  • VBVB獲取文件大小的方法

    VB獲取文件大小的方法

    這篇文章主要介紹了VB獲取文件大小的方法,可實現準確獲取文件大小的功能,需要的朋友可以參考下...

    小卒過河13192021-10-15
  • VBVB關機惡搞小程序

    VB關機惡搞小程序

    本文給大家匯總了一些使用VB實現的關機惡搞小程序,大家娛樂一下就行了,千萬別做壞事哦...

    VB教程網10142021-10-16
  • VBVB6實現連接Access數據庫的ADODB代碼實現方法

    VB6實現連接Access數據庫的ADODB代碼實現方法

    這篇文章主要介紹了VB6實現連接Access數據庫的ADODB代碼實現方法,對于初學者掌握VB鏈接access數據庫有著很好的借鑒價值,需要的朋友可以參考下...

    VB教程網9832021-10-11
主站蜘蛛池模板: 国产成人精品综合在线观看 | 婷婷丁香视频 | 亚洲国产精品久久久久久网站 | 国产91精品久久久久久 | 福利视频导航大全 | 黄瓜视频免费 | 国产精品福利在线观看入口 | 亚洲视频免费 | 嗯啊在线观看免费影院 | 国产特黄a级在线视频 | 国产男女爱视频在线观看 | 污漫日本E同人 | 日韩国产欧美视频 | 91制片厂(果冻传媒)原档破解 | 国产精品极品 | 久久er99热精品一区二区 | 久久亚洲精品AV无码四区 | 日韩免费一级 | 亚洲黄色图 | 精品一区二区三区高清免费不卡 | 国产91一区二区在线播放不卡 | 国产精品成人网红女主播 | 国产成人在线视频播放 | 91制片厂果冻传媒杨柳作品 | 国产一级精品高清一级毛片 | 色综合久久丁香婷婷 | 99视频在线国产 | 欧美精品一区二区三区免费播放 | 香蕉久久夜色精品国产尤物 | 国产高清在线播放刘婷91 | 久久精品一区 | 久久精品中文闷骚内射 | 青青久久久国产线免观 | 九色PORNY真实丨国产大胸 | 羞羞视频麻豆 | 午夜影院一区二区三区 | 天天色综合6| 亚洲欧美影院 | 被教官揉了一晚上的奶小说 | 亚洲乱码一区二区三区国产精品 | 香蕉视频在线观看网址 |