2014年10月10日星期五

VB键盘鼠标无动作调用程序的尝试

我想要实现的功能是,当键盘无输入、鼠标无移动或点击动作时调用程序。首先想到的是用钩子HOOK来获取键盘或者鼠标的动作,如果无动作时调用程序。我尝试的结果是HOOK来HOOK去总是有问题。

后来想到Windows的屏幕保护程序就是当键盘鼠标无动作时进入屏幕保护的,于是改变思路,想把程序做成这样的形式,键盘鼠标无动作,系统进入屏幕保护,然后检测系统是否运行屏幕保护程序,如果运行的话则调用程序。这种方式就是以屏幕保护程序作为中介,把检测键盘鼠标动作的工作交给屏幕保护程序来完成了。SystemParametersInfo可以实现获取屏幕保护信息的函数。参考代码如下:

'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函数获取系统的空闲时间,参考代码如下:

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键盘鼠标无动作调用程序的尝试

我想要实现的功能是,当键盘无输入、鼠标无移动或点击动作时调用程序。首先想到的是用钩子HOOK来获取键盘或者鼠标的动作,如果无动作时调用程序。我尝试的结果是HOOK来HOOK去总是有问题。

后来想到Windows的屏幕保护程序就是当键盘鼠标无动作时进入屏幕保护的,于是改变思路,想把程序做成这样的形式,键盘鼠标无动作,系统进入屏幕保护,然后检测系统是否运行屏幕保护程序,如果运行的话则调用程序。这种方式就是以屏幕保护程序作为中介,把检测键盘鼠标动作的工作交给屏幕保护程序来完成了。SystemParametersInfo可以实现获取屏幕保护信息的函数。参考代码如下:

'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 BooleanPrivate 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函数获取系统的空闲时间,参考代码如下:

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 TypePrivate Sub Form_Load()     Timer1.Interval = 1000    End SubPrivate 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 IfEnd Sub

2014年10月8日星期三

学车记(1)

很久很久以前,听到他人学车考驾照的事情,觉得和自己很无关,既没有想过开车谋生,也没有想过有生之年会买车。在学费便宜又有假期的时候,错过很多次学车机会。

hillway总在强调有车比无车的种种好处与便利。好处肯定是有的,最起码不用像我去年那样怀孕大着肚子去挤公交车上下班,周末偶尔开车带着家人出去转悠转悠,春运回老家可以选择自驾……万事有利有弊,从心里我却不赞成买车。首先停车难,没有车位。其次费用大,使用次数少,平均下来比坐出租车还贵。再次危险多,开车既要专心,更要操心。

hillway又说,你可以不开车,不买车,但是作为一门技能,掌握了总有好处,万一到急需的时候你就知道了。就这样,从去年一直“游说”到今年,总是催着我去学车,逼得太紧,实在没有办法,想想也有一定道理,虽然手头不甚宽裕,还是趁着十一假期去找教练报了名。

不愿意去学车的另一个原因是害怕。传闻如今考驾照越来越难了,自己从未接触过汽车,相关知识知之甚少,交通事故那么多,听说碰掉一块儿车漆就要几百块钱……想想这些,就觉得紧张的厉害。

害怕归害怕,紧张归紧张,既然报名交费了,hillway一直把送我到驾校大门口,我只好硬着头皮去学。

前两天在模拟教室,主要学习转方向盘。首先是观看一段年代久远模糊不清的视频,内容是史光辉教练讲解驾车基础知识。大概半个小时后,模拟教室的小哥把我们叫到一起,在模拟驾驶台上传授转方向盘的技能,并逐个纠正。那位小哥身材虽说瘦瘦小小,脾气挺大耐心很小。为了防止被训,我在心里模拟N遍才上机,一边想动作一边慢慢转方向盘。

那段史光辉视频讲到握方向盘是十点二十的位置,而模拟教室的小哥教的是九点和三点的位置。有位大姐坚持使用视频里十点二十的手势,换手速度比较快,又频繁犯错,被小哥作为炮火主攻对象,噼噼啪啪训了一通。还有一位农民工大哥,衬衣的领口袖口都扣的紧紧的,刚学习转方向盘时,比较生疏,双手配合不太好,小哥便手把手指导他,可惜又不够耐心,语气也不太好,那位大哥在这种情况下,变得更加拘谨和紧张,指导成效自然并不明显。那位小哥留下一句“我都要被你气到吐血了,是一大滩血!”就不管他了。

会者不难,对于初学者来说总要有一段适应和熟练的过程,哪有刚开始就很流利的呢?为何就不能多一些理解和耐心?大家花几千块钱学费,抽出时间来学习,就不能好好教吗?

接下来的两天跟着教练学开真正的车。如同报名时的等待,而且等待的时间更长,从上午九点到驾校一直等到十一点钟,教练招呼我上车,刚开始还是有些紧张,幸亏hillway提前在家里教我起步、停车和换挡的动作和原理,虽说不熟练,但总算可以缓慢地开着车前进和后退了。仅仅按着套路还好,面对那些忽然而来的指令还是会乱了手脚。

这两天的开车经历消除了我十分紧张和害怕的情绪,感觉开车并没有想象的那般艰难与复杂,渐渐地有了信心。十一长假结束了,接下来就是利用上班空余时间学习相关知识,准备科目一的考试啦。

学车记(1)

很久很久以前,听到他人学车考驾照的事情,觉得和自己很无关,既没有想过开车谋生,也没有想过有生之年会买车。在学费便宜又有假期的时候,错过很多次学车机会。

hillway总在强调有车比无车的种种好处与便利。好处肯定是有的,最起码不用像我去年那样怀孕大着肚子去挤公交车上下班,周末偶尔开车带着家人出去转悠转悠,春运回老家可以选择自驾……万事有利有弊,从心里我却不赞成买车。首先停车难,没有车位。其次费用大,使用次数少,平均下来比坐出租车还贵。再次危险多,开车既要专心,更要操心。

hillway又说,你可以不开车,不买车,但是作为一门技能,掌握了总有好处,万一到急需的时候你就知道了。就这样,从去年一直“游说”到今年,总是催着我去学车,逼得太紧,实在没有办法,想想也有一定道理,虽然手头不甚宽裕,还是趁着十一假期去找教练报了名。

不愿意去学车的另一个原因是害怕。传闻如今考驾照越来越难了,自己从未接触过汽车,相关知识知之甚少,交通事故那么多,听说碰掉一块儿车漆就要几百块钱……想想这些,就觉得紧张的厉害。

害怕归害怕,紧张归紧张,既然报名交费了,hillway一直把送我到驾校大门口,我只好硬着头皮去学。

前两天在模拟教室,主要学习转方向盘。首先是观看一段年代久远模糊不清的视频,内容是史光辉教练讲解驾车基础知识。大概半个小时后,模拟教室的小哥把我们叫到一起,在模拟驾驶台上传授转方向盘的技能,并逐个纠正。那位小哥身材虽说瘦瘦小小,脾气挺大耐心很小。为了防止被训,我在心里模拟N遍才上机,一边想动作一边慢慢转方向盘。

IMG_20141006_095045_副本

那段史光辉视频讲到握方向盘是十点二十的位置,而模拟教室的小哥教的是九点和三点的位置。有位大姐坚持使用视频里十点二十的手势,换手速度比较快,又频繁犯错,被小哥作为炮火主攻对象,噼噼啪啪训了一通。还有一位农民工大哥,衬衣的领口袖口都扣的紧紧的,刚学习转方向盘时,比较生疏,双手配合不太好,小哥便手把手指导他,可惜又不够耐心,语气也不太好,那位大哥在这种情况下,变得更加拘谨和紧张,指导成效自然并不明显。那位小哥留下一句“我都要被你气到吐血了,是一大滩血!”就不管他了。

会者不难,对于初学者来说总要有一段适应和熟练的过程,哪有刚开始就很流利的呢?为何就不能多一些理解和耐心?大家花几千块钱学费,抽出时间来学习,就不能好好教吗?

接下来的两天跟着教练学开真正的车。如同报名时的等待,而且等待的时间更长,从上午九点到驾校一直等到十一点钟,教练招呼我上车,刚开始还是有些紧张,幸亏hillway提前在家里教我起步、停车和换挡的动作和原理,虽说不熟练,但总算可以缓慢地开着车前进和后退了。仅仅按着套路还好,面对那些忽然而来的指令还是会乱了手脚。

这两天的开车经历消除了我十分紧张和害怕的情绪,感觉开车并没有想象的那般艰难与复杂,渐渐地有了信心。十一长假结束了,接下来就是利用上班空余时间学习相关知识,准备科目一的考试啦。

游汕头的湿地公园

在网上看到汕头北郊新开了一家湿地公园,我并不知道所谓的“湿地公园”是怎么回事,在我头脑中浮现出滩涂水草和丹顶鹤的景象。

促使我去这家湿地公园的动力是那几张荷叶田田的照片,为了这些荷叶去看看也无妨,说不定会让我产生荷塘日色的意境来。

进了公园,四通八达的柏油路分割开来大大小小的水塘,路旁种着人头高的细树——日光强烈的天气最好多带几把遮阳伞。

我们接下来就开始从事压马路的活动,游览了水塘中颓败了的荷叶,路过了烧烤区饮茶区喧闹的的人群,观赏了儿童游乐场和成人垂钓区,然后就打道回府了。

总体来说,整个水塘园没什么好玩,而且远离市区交通不便,如果没见过水塘和荷叶的话去看看也不错嘀。

2014年10月7日星期二

游汕头的湿地公园

在网上看到汕头北郊新开了一家湿地公园,我并不知道所谓的“湿地公园”是怎么回事,在我头脑中浮现出滩涂水草和丹顶鹤的景象。

促使我去这家湿地公园的动力是那几张荷叶田田的照片,为了这些荷叶去看看也无妨,说不定会让我产生荷塘日色的意境来。

进了公园,四通八达的柏油路分割开来大大小小的水塘,路旁种着人头高的细树——日光强烈的天气最好多带几把遮阳伞。

我们接下来就开始从事压马路的活动,游览了水塘中颓败了的荷叶,路过了烧烤区饮茶区喧闹的的人群,观赏了儿童游乐场和成人垂钓区,然后就打道回府了。

总体来说,整个水塘园没什么好玩,而且远离市区交通不便,如果没见过水塘和荷叶的话去看看也不错嘀。

2014年10月3日星期五

泡汤的十一长假游玩

5月1日劳动节的时候就计划要利用10月的7天长假出去游玩。

问Jasmine想去哪里。她不假思索地说,成都!问她为啥想去。她说,成都有好多小吃呀。

也许是天公作美,汕头在今年9月开通了到重庆的火车。我把这个消息告诉Jasmine,她也很是激动。于是抓紧进行旅行计划,先去重庆,再去成都。

离10月越来越近,Jasmine却变卦了。她说,去重庆不划算,坐火车卧铺一个人要400多,2个人来回路费将近两千块。加上住宿和景点门票可能要4千块钱,太贵了不去了。于是,她建议我们去周边游,什么潮州梅州漳州惠州。

眼看就十一了,Jasmine再次变卦了。她说,去周边游本来就两三天,十一期间去不划算,住宿太贵,还不如周末去。

我是看出来了,Jasmine想去一个好玩又不舍得花钱的地方,这个地方地球上真的很少。最终,我们今年的十一哪都没去成,呆在家里睡大觉最省钱。

2014年10月2日星期四

泡汤的十一长假游玩

5月1日劳动节的时候就计划要利用10月的7天长假出去游玩。

问Jasmine想去哪里。她不假思索地说,成都!问她为啥想去。她说,成都有好多小吃呀。

也许是天公作美,汕头在今年9月开通了到重庆的火车。我把这个消息告诉Jasmine,她也很是激动。于是抓紧进行旅行计划,先去重庆,再去成都。

离10月越来越近,Jasmine却变卦了。她说,去重庆不划算,坐火车卧铺一个人要400多,2个人来回路费将近两千块。加上住宿和景点门票可能要4千块钱,太贵了不去了。于是,她建议我们去周边游,什么潮州梅州漳州惠州。

眼看就十一了,Jasmine再次变卦了。她说,去周边游本来就两三天,十一期间去不划算,住宿太贵,还不如周末去。

我是看出来了,Jasmine想去一个好玩又不舍得花钱的地方,这个地方地球上真的很少。最终,我们今年的十一哪都没去成,呆在家里睡大觉最省钱。

2014年10月1日星期三

开药清单(更新)

一、新生儿科出院
思连康双歧杆菌四联活菌片
唯康乐多维铁口服液
贝特令维生素AD滴剂【后改为:伊可新维生素AD滴剂(0-1岁)】

二、脐带护理
酒精(浓度75%)
医用棉签

三、大便颜色异常
妈咪乐
头孢克肟颗粒

四、苹果卡到呕吐(疑吸入性肺炎)
思连康双歧杆菌四联活菌片
希刻劳头孢克洛干混悬剂
扑尔敏马来酸氯苯那敏片

五、耳朵发脓
金霉素眼膏

六、咳嗽
(1)小儿消积止咳口服液
吗丁啉多潘立酮混悬液
(2)叶酸片
开瑞坦氯雷他定片
酪酸俊菌二连活菌胶囊
(3)沐舒坦盐酸氨溴索片
顺尔宁孟鲁司特钠咀嚼片

七、大便稀
(1)那宁谷氨酰胺胶囊
(2)维生素B1

宝宝能不能吹空调

夏天到了,一天比一天热,对平常人来说吹吹电扇和空调是最直接的降温方式了。可是对万事都要特殊对待的宝宝来说,事前都要仔细考虑一番。针对宝宝是否能吹空调的事情,家里展开了辩论,姥姥和奶奶是反对派,我自己是支持派,Jasmine搞中立。

反对派说,小孩子哪能受得了空调?!

支持派说,夏天不吹空调孩子才受不了,孩子的皮肤调节能力比成人差,容易出汗,很容易起痱子。

反对派说,小孩子出点汗怕什么,你们要是让她吹空调也行,吹出事儿来我可不管。

支持派无言以对,只好让宝宝忍受闷热,不能吹空调,不能吹电风扇。

看着宝宝额头和颈部的痱子一天比一天多,我还是趁着夜里开了空调,反对派早上知道后会反问,你们夜里开空调了?!

如此几天,反对派看到宝宝没出事,额头的痱子慢慢减少,也没说什么了。之后会叮嘱,夜里空调不要打太低,多给宝宝穿条裤子。

眼看夏天就快过去了,宝宝吹了一个夏天的的空调也没出什么事,有空调的夜里睡得很好。只是有次咳嗽两个星期才好把我们都吓到了,同事说空调房间太干燥建议买台加湿器。之后我们赶紧就买了,只要夜里开空调就把加湿器打开。

总结一下:(1)宝宝是可以呆在空调房间的,温度要适宜;(2)不要让空调出风口直接对着宝宝吹;(3)每天空调房要开窗换气;(4)空气干燥要人工加湿。