VB怎么点击外部程序中ListView的某一行

VB怎么点击外部程序中ListView的某一行,第1张

用ListView1的ItemClick事件监测如:Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem) MsgBox "你点击了" &ListView

首先你需要获得你要点击的按钮的句柄,然后你可以通过你的Delphi程序给该按钮发送消息(sendmessage之类的API函数)。消息的格式你可以通过spy++来获得(spy++不但可以获得你需要的句柄,还可以得到某个事件发生时所产生的消息。)具体做法为:把spy++获得消息的靶型图标拖到你要发送消息的按钮上,这是你就会得到该按钮的所有句柄继承关系(包括按钮本身的句柄。),然后你按下你需要发送消息的按钮,这时在spy++的消息显示框里就得到了单击该按钮产生的所有消息。接下来你就可以讲这些消息通过你的程序发送到该按钮上。(具体产生的消息主要就是这两个:鼠标按下(mousedown),鼠标d回(mouseup))。

小屁屁红豆实在是不很负责任。

利用vb *** 作一个外部程序的窗体上的按钮可以用到控制鼠标的API函数。

Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long

'而仅仅有这个函数是不够的,还需要定义一个type格式的自定义变量。定义为:

Private Type POINTAPI

X As Long

Y As Long

End Type

'它用于存放鼠标的位置(屏幕上的位置)。

'获得鼠标在屏幕上的位置要用到另一个函数:GetCursorPos,它的功能是获得屏幕上鼠标的坐标。

'它的声明如下:

Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

举个例子,放置1个Command控件,并且复制它,粘贴,点确定生成一控件数组。

Private Sub Command1_Click(Index As Integer)

Dim msX, msY As Long

Dim Pos As POINTAPI

a = GetCursorPos(Pos)

Select Case Index

Case 0 'up

msY = Pos.Y - 15

msX = Pos.X

Case 1 'left

msX = Pos.X - 15

msY = Pos.Y

Case 2 'down

msY = Pos.Y + 15

msX = Pos.X

Case 3 'right

msX = Pos.X + 15

msY = Pos.Y

Case Else

Exit Sub

End Select

a = SetCursorPos(msX, msY) '这个是利用API移动鼠标

End Sub

mouse_event

声明

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)

说明

模拟一次鼠标事件

参数表

参数 类型及说明

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函数可取得这个值。可用的值取决于特定的驱动程序

注解

进行相对运动的时候,由SystemParametersInfo函数规定的系统鼠标轨迹速度会应用于鼠标运行的速度


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11495630.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存