主题:键盘鼠标信息
wang1122yang
[专家分:50] 发布于 2008-11-28 00:33:00
各位:帮帮忙!
我在编一个屏幕保护小程序!翻了好多书就是不知道怎么去判断键盘和鼠标有无操作!哪位知道的帮帮我:写个代码看看了!
回复列表 (共9个回复)
沙发
merry05 [专家分:8920] 发布于 2008-11-28 09:32:00
看窗体有没有接收到键盘和鼠标的消息啊
记得鼠标的消息都来自WM_NCHITTEST
键盘消息就用WM_KEYDOWN
或都用这个
Private Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Long) As Integer
3 楼
tanchuhan [专家分:15140] 发布于 2008-11-28 13:45:00
当鼠标和键盘无操作到达用户设定的时间,系统会自动调用你的屏保程序
而屏保程序一般在前台的吧,应该可以接收到输入信息。
所以呢,直接在KeyDown 和 MouseDown这里处理就是了。
哈哈,不知道楼主在找什么?
4 楼
merry05 [专家分:8920] 发布于 2008-11-28 16:02:00
估计LZ是要用于跳出屏保,而不是启动屏保
5 楼
一江秋水 [专家分:9680] 发布于 2008-11-28 18:05:00
一般屏保运行时,窗体都是最大化,那么,就可以用以下代码来判断鼠标是否移动,如果移动了一个像素(15缇)以上,就结束屏保:
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) '移动鼠标时退出程序
Static currentX As Single, currentY As Single
Dim orignX As Single, orignY As Single
orignX = X: orignY = Y '把当前的鼠标值赋给orignX和orignY
If currentX = 0 And currentY = 0 Then currentX = orignX: currentY = orignY: Exit Sub
If Abs(orignX - currentX) > 15 Or Abs(orignY - currentY) > 15 Then End '或者转去结束屏保模块
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) '按键时退出程序
End '退出
End Sub
6 楼
wang1122yang [专家分:50] 发布于 2008-11-28 22:35:00
看来我的表达能力不行!呵呵
我是不知道怎么去判断鼠标和健盘有无动作!
我的思路是:我先设置好一开机就运行我编的程序并且隐藏了窗体。程序中规定当计算机在指定时间内没有发生任何操作,将运行XX工作!
7 楼
tanchuhan [专家分:15140] 发布于 2008-11-28 23:16:00
真正的屏保需要一开机运行的吗?
屏保应该是由Windows下调用你,没必要自己去运行。
8 楼
wang1122yang [专家分:50] 发布于 2008-11-29 11:55:00
拜托告诉我怎么去判断键盘鼠标了?真的急。。。。。。!
9 楼
一江秋水 [专家分:9680] 发布于 2008-11-30 08:11:00
根据楼主的意思,那么就要在你的窗体上添加一个计时器,在计时器的Timer1_Timer事件中按照1楼所说的,用相应的API函数去判断
我来回复