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

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

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
主站蜘蛛池模板: 国产精品永久免费自在线观看 | 国产日产精品久久久久快鸭 | 黑帮大佬与我的365天2标清中文 | 亚洲AV无码一区二区三区乱子伦 | 2021最新国产成人精品免费 | 欧美色精品天天在线观看视频 | 午夜一级视频 | 婷婷sese| 久久精品热只有精品 | 久久国产视频网站 | 久久这里只精品热在线18 | 91香蕉依人综合久久 | 久久精品视在线观看2 | www久久com | 国产在线一区二区杨幂 | 学校捏奶揉下面污文h | 哇嘎在线精品视频在线观看 | 色天天综合色天天碰 | 亚洲国产一区二区三区青草影视 | 天堂网在线.www天堂在线视频 | 色综合久久天天综合观看 | 小舞同人18av黄漫网站 | 我与白丝同桌的故事h文 | 日本最新免费二区 | 国产高清好大好夹受不了了 | 色屁屁www | 成人国产精品 | 国产nv精品你懂得 | 亚州精品视频 | 亚洲欧美国产自拍 | 亚洲国产日韩欧美一区二区三区 | 暖暖 免费 高清 日本 在线 | 亚洲sss综合天堂久久久 | 亚洲黄色大片 | 国产成人一级 | 99热最新 | 九九精品免视频国产成人 | 欧美日韩精品乱国产 | 国产精品久久久久久久久久久威 | 欧洲老妇人70| 精品久久洲久久久久护士免费 |