由于本人不清楚SendInput、Keybd_event的详细用法,希望各位指定以及给个代码例子
还有是否可以利用mouse_event移动到绝对坐标点?如果可以麻烦给出代码例子
还有是否可以利用mouse_event移动到绝对坐标点?如果可以麻烦给出代码例子
解决方案 »
- VB里如何插入超链接啊?
- 求助:如何用VB编写一个带播放列表的音乐播放器,谢谢。
- 再发,如何关闭数据库?100分!就几句语句,解决后马上结分!
- 怎样全屏播放AVI或其他格式视频?
- VB中的FORM加了锁,不能编辑了CODE了,怎么解啊?
- 有没有一种说法,excel的编程只能在250行以内?急求答案
- 求vb的抽籤指令
- 终于可以提200分的问题了,散分!学习.net的朋友请谈一下vb.net比VB6有哪些好的改进,来者有分!
- 真的没人会么??????
- 求救!为什么VB的format函数(数值、时间、日期)不听话?
- 超菜,如何用表达式表示bool的相反值?
- 如何检测一个应用程序是否在运行,如果运行又该如何关闭?
VB声明
Declare Sub keybd_event Lib "user32" Alias "keybd_event" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
说明
这个函数模拟了键盘行动
参数表
参数 类型及说明
bVk Byte,欲模拟的虚拟键码
bScan Byte,键的OEM扫描码
dwFlags Long,零;或设为下述两个标志之一
KEYEVENTF_EXTENDEDKEY 指出是一个扩展键,而且在前面冠以0xE0代码
KEYEVENTF_KEYUP 模拟松开一个键
dwExtraInfo Long,通常不用的一个值。api函数GetMessageExtraInfo可取得这个值。允许使用的值取决于特定的驱动程序
注解
这个函数支持屏幕捕获(截图)。在win95和nt4.0下这个函数的行为不同 2、mouse_event
【VB声明】
Private Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long) 【说明】
模拟一次鼠标事件 【备注】
进行相对运动的时候,由SystemParametersInfo函数规定的系统鼠标轨迹速度会应用于鼠标运行的速度 【参数表】
dwFlags -------- Long,下述标志的一个组合
MOUSEEVENTF_ABSOLUTE dx和dy指定鼠标坐标系统中的一个绝对位置。在鼠标坐标系统中,屏幕在水平和垂直方向上均匀分割成65535×65535个单元 - MOUSEEVENTF_MOVE
移动鼠标
MOUSEEVENTF_LEFTDOWN
模拟鼠标左键按下
MOUSEEVENTF_LEFTUP
模拟鼠标左键抬起
MOUSEEVENTF_RIGHTDOWN
模拟鼠标右键按下
MOUSEEVENTF_RIGHTUP
模拟鼠标右键按下
MOUSEEVENTF_MIDDLEDOWN
模拟鼠标中键按下
MOUSEEVENTF_MIDDLEUP
模拟鼠标中键按下
dx
Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定水平方向的绝对位置或相对运动 dy ------------- Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定垂直方向的绝对位置或相对运动 cButtons ------- Long,未使用 dwExtraInfo ---- Long,通常未用的一个值。用GetMessageExtraInfo函数可取得这个值。可用的值取决于特定的驱动程序
有代码例子吗?比如写一段代码键盘事件如何输入一个字符“A”,
鼠标事件写一段代码如何移动到绝对坐标300,300
Public Const VK_SPACE = &H20keybd_event VK_SPACE, 0, 0, 0 '空格按下
keybd_event VK_SPACE, 0, KEYEVENTF_KEYUP, 0 '空格弹起下面是鼠标的,你自已试一下吧
如果鼠标被移动,用设置MOUSEEVENTF_MOVE来表明,dX和dy保留移动的信息。给出的信息是绝对或相对整数值。
如果指定了MOWSEEVENTF_ABSOLOTE值,则dX和dy含有标准化的绝对坐标,其值在0到65535之间。事件程序将此坐标映射到显示表面。坐标(0,0)映射到显示表面的左上角,(6553,65535)映射到右下角。
如果没指定MOWSEEVENTF_ABSOLOTE,dX和dy表示相对于上次鼠标事件产生的位置(即上次报告的位置)的移动。正值表示鼠标向右(或下)移动;负值表示鼠标向左(或上)移动。
鼠标的相对移动服从鼠标速度和加速度等级的设置,一个最终用户用鼠标控制面板应用程序来设置这些值,应用程序用函数SystemParameterslnfo来取得和设置这些值。
在应用加速时系统对指定相对鼠标移动提供了两个测试。如果指定的沿X轴y轴的距离比第一个鼠标阈值大,并且鼠标的加速等级非零,则操作系统将距离加倍。如果指定的沿X轴或y轴的距离比第二个鼠标阈值大,并且鼠标的加速等级为2,则操作系统将从第一个阈测试得来的距离加倍。这样就允许操作系统将指定鼠标沿X轴或y轴的相对位移加到4倍。
一旦应用了加速,系统用期望的鼠标速度换算合成的值。鼠标速度的范围是从1(最慢)到20(最快),并代表基于鼠标移动的距离指示符移动的数量。缺省值是10,表示对鼠标的移动设有附加的修改。
函数mouse_event需要用的应用程序用来合成鼠标事件。也被应用程序用来取得鼠标位置和鼠标按键状态之外的鼠标信息。例如,如果输入板制造商想将基于画笔的信息传给自己的应用程序,可以写一个直接与输入板硬件通信的动态键接库(DLL),获得附加的信息,并保存到一个队列中。DLL然后调用mouse_event,用标准按键和x/y位置数据,并在参数dwExtralnfo设置排列的附加信息的指针或索引。当应用程序需要附加信息时,调用DLL(连同存贮在dwEXtralnfo中的指针或索引),则DLL返回附加信息。
Windows CE:Windows CE不支持参数 dwFlags取MOOSE EVENTF WHEEL常数。'模拟鼠标单击
mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_LEFTUP, 0,0, 0, 0
进行相对运动的时候,由SystemParametersInfo函数规定的系统鼠标轨迹速度会应用于鼠标运行的速度