VB如何判断鼠标下的程序

Love约定__ 2018-04-27 12:25:05
比如我的鼠标在A程序的窗口上我可以获得a的进程名 PID和路径
...全文
844 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
无·法 2018-07-22
  • 打赏
  • 举报
回复
'根据窗口句柄得到应用程序的路径
Public Function AppPath(Optional ByVal hwn1) As String
Dim dwProcessID As Long, hProcess As Long, hModule As Long
Dim nSize As Long
If IsMissing(hwn1) Then '如果没写则表示处理当前存储的句柄
If hWnd_ > 0 Then dwProcessID = ProcessID() 'GetWindowThreadProcessId hWnd_, dwProcessID
Else
dwProcessID = ProcessID(hwn1)
End If
hProcess = OpenProcess(PROCESS_ALL_ACCESS, 0, dwProcessID)
AppPath = Space(255)
nSize = GetModuleFileNameEx(hProcess, 0, StrPtr(AppPath), 255)
AppPath = Mid(AppPath, 1, nSize)
Call CloseHandle(hProcess)
End Function
通过WindowFromPoint得到的句柄(不用管控件还是窗口的)可以直接传入这个函数得到程序路径。相关api函数和常数声明自己补充。 函数是摘自clswindow类,如果懒得找声明可以直接下载,然后调用。

w.hWnd = 332302 '自己通过WindowFromPoint得到
MsgBox w.AppName
cbm6666 2018-07-22
  • 打赏
  • 举报
回复
GetForegroundWindow 获取当前置顶的窗口

GetCursorPos( ) 取得鼠标当前所在的坐标

判断鼠标是否在这置前的窗体内
****************************************************************

另种方法使用 WindowFromPoint与GetCursorPos 这两个API

Private Sub Timer1_Timer()
GetCursorPos Pt
HwndVal = WindowFromPoint(Pt.X, Pt.Y)
If HwndVal = Me.hWnd Then
Me.Caption = "鼠标在窗体上"
ElseIf HwndVal = Picture1.hWnd Then
Me.Caption = "鼠标在图片框内"
ElseIf HwndVal = Text1.hWnd Then
Me.Caption = "鼠标在文本框内"
End If
End Sub
赵4老师 2018-04-28
  • 打赏
  • 举报
回复
使用Spy++软件。
Love约定__ 2018-04-27
  • 打赏
  • 举报
回复
咋说呢就是事实判断如果鼠标离开窗口指向桌面那么得到的结果应该是explorer.exe这个意思
Love约定__ 2018-04-27
  • 打赏
  • 举报
回复
并不是想做任务管理器那种的枚举进程
Love约定__ 2018-04-27
  • 打赏
  • 举报
回复
我主要是想靠鼠标的移动来判断悬停所处的程序位置这样很方便 比如通过鼠标的双坐标来判断坐标所对应的窗口句柄在从句柄取pid得到进程名
舉杯邀明月 2018-04-27
  • 打赏
  • 举报
回复
既然进程名、PID、路径,这些都获得了,那不就知道是哪个“程序”了吗,还要判断什么……
舉杯邀明月 2018-04-27
  • 打赏
  • 举报
回复
搞了半天,你是“想取得”鼠标所在处的窗口是哪个程序啊, 并不是你“已经取得了”…… 给你一个参考方法: 1. GetCursorPos( ) 取得鼠标坐标。 2. WindowFromPoint( ) 取得鼠标处的窗口句柄。   注意,获取到的有可能是控件句柄,或者“子窗口”句柄,     这是就要“往上找”父窗口,直到它的“父窗口”是“桌面”为止。 3. 按“顶级窗口”的句柄,用 GetWindowThreadProcessId( )获取到窗口所属进程的PID。  有了“PID”,剩下的事,就有N多种方法处理了,自己搜索一下相关API吧……

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧