- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章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
|
以上所述就是本文的全部内容了,希望大家能够喜欢.
最后此篇关于VB键盘鼠标无动作调用程序的尝试的文章就讲到这里了,如果你想了解更多关于VB键盘鼠标无动作调用程序的尝试的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
说真的,你怎么能在不发疯的情况下处理所有这些异常呢?我是不是读了太多关于异常处理的文章或什么?我尝试重构了几次,但每次似乎都以更糟糕的结果告终。也许我应该承认确实会发生异常(exception)情况,
背景 两者 try/rescue和 try/catch是 Elixir 中的错误处理技术。根据 corresponding chapter在介绍指南中。 Errors can be rescued u
每当我尝试在 Raspberry PI 上运行此 python 脚本时,我都会遇到问题: import socket import sys # Create a TCP/IP socket sock
我想知道一些关于 PHP 的 try , catch声明。 让我们考虑以下示例。 abstract class ExceptionA extends Exception {} class Except
我的 laravel v5.4 项目中有两个模型,user 和 admin。 在 config/auth.php 中,我向守卫和提供者添加了管理员,如下所示: 'guards' => [ 'w
try: r = requests.get(url, params={'s': thing}) except requests.ConnectionError, e: print e
我有以下代码。 但是,它并不能捕获所有错误,而我仍然会收到“throw er;//未处理的'错误'事件”。 为什么是这样? app.post('/api/properties/zip/:zip/bed
问题与细节 我正在使用自定义错误处理,遇到的错误之一是“路径中的非法字符”。我有一个自定义函数,旨在通过路径字符串查找此类非法字符,并在找到它们时引发自定义错误。但是我发现,取决于非法字符,Test-
This question already has answers here: How do I catch a numpy warning like it's an exception (not j
我正在使用其他人的代码,但我不熟悉try/catch,因此我举了一个类似的小例子。在第11行上,如果我写了error(''),似乎没有发现错误并增加了索引j。但是,编写error(' ')或error
我在我的一个程序中遇到了这个问题,在这种情况下,尝试/异常(exception)的错误使程序变得更好,以防用户意外输入了他们不应该输入的内容。它仍然给我错误,我为为什么感到困惑。如果对我的问题确实很重
我在尝试TRY ... CATCH块时遇到问题。有人可以解释为什么以下代码无法执行我的sp吗? DECLARE @Result int SET @Result = 0 BEGIN TRY SE
我有一个相当大的 powershell 脚本,其中包含许多(20 多个)执行各种操作的函数。 现在所有代码实际上都没有任何错误处理或重试功能。如果某个特定的任务/功能失败,它就会失败并继续。 我想改进
为什么我尝试时需要导入 inputmismatchException catch(InputMismatchException e){ System.out.println("
我对此感到困惑 - 我为辅助方法编写了一个 try/catch 。它的目的是捕获任何无效输入(任何不是“男性”或“女性”的内容(没有特定情况)。如果输入无效,它将通知用户,然后让他们重试。如果有效,则
我有时会发现自己处于如下场景。尽可能简单地陈述问题 “有时我会创建一段代码,Java 让我将其包含在 try/catch 语句中。我没有使用 catch,所以我将其留空。为什么这是错误的?” boo
我有点困惑为什么当我不使用 Try block 时会出现 Try block 错误。 我在代码块底部附近收到错误通知。如果我不使用 try/catch,有人可以向我解释为什么会发生这种情况吗? 它是否
我已经盯着我的电脑两个小时了,我不知道我做错了什么。谁能帮助我看到光明? package blackjack; import java.util.Random; import java.util.Sc
我想将方法保存在 Enum 中,但 Class.getDeclaredMethod 抛出 NoSuchMethodException,那么我该如何处理呢?我的代码: public enum Car
这个问题已经有答案了: Executing multi-line statements in the one-line command-line (18 个回答) 已关闭 3 年前。 如何使用try.
我是一名优秀的程序员,十分优秀!