如何获得鼠标当前位置/焦点的进程名,如何将某进程置于获得焦点状态?

sheerfish999 2005-10-28 05:26:03
如题

1 如何获得鼠标当前位置或焦点下的进程名?

2 如何将某进程置于获得焦点状态?
...全文
329 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sheerfish999 2005-10-31
  • 打赏
  • 举报
回复
感谢大家 我有灵感了!
goodname008 2005-10-31
  • 打赏
  • 举报
回复
从函数名就可以看出来,是获得的模块文件名,当然并不是exe。
在用GetWindowModuleFileName时,要找到当前鼠标下的窗口的顶级窗口。
把顶级窗口的句柄传给GetWindowModuleFileName。

VB是个例外,有msvbvmXX.dll作怪。
province_ 2005-10-30
  • 打赏
  • 举报
回复
GetWindowModuleFileName的结果并不是可执行程序文件所在的位置,我以前试过,不成功的。
goodname008 2005-10-30
  • 打赏
  • 举报
回复
嗯,是得需要。
我又试了一下,对于其它进程获得不到ProcessName。
goodname008 2005-10-29
  • 打赏
  • 举报
回复
其实也用不着枚举进程。

Option Explicit

Private Declare Function GetWindowModuleFileName Lib "user32" (ByVal hwnd As Long, lpszFileName As String, ByVal nBufferSize As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long

Private Type POINTAPI
x As Long
y As Long
End Type

Private Const MAX_PATH = 260

Private Sub Command1_Click()
' 获得鼠标坐标
Dim stPos As POINTAPI
GetCursorPos stPos

' 获得进程全路径及文件名
Dim strFileName As String
Dim nBufferSize As Long
nBufferSize = MAX_PATH
strFileName = String(nBufferSize, Chr(0))
Dim nFileNameLen As Long
nFileNameLen = GetWindowModuleFileName(WindowFromPoint(ByVal stPos.x, ByVal stPos.y), ByVal strFileName, ByVal nBufferSize)
strFileName = Left(strFileName, nFileNameLen)

' 获得进程名
Dim strProcessName As String
strProcessName = Mid(strFileName, InStrRev(strFileName, "\") + 1)
MsgBox strProcessName

End Sub
rainstormmaster 2005-10-29
  • 打赏
  • 举报
回复
//其实也用不着枚举进程。

枚举进程是必要的
supergreenbean 2005-10-28
  • 打赏
  • 举报
回复
1.用GetCursorPos获得当前鼠标指针位置;
2.用WindowFromPoint获得当前鼠标所指的窗口句柄
3.用GetWindowThreadProcessId获得该窗口所属的进程id
4.用CreateToolhelp32Snapshot获得系统所有进程的快照
5.用Process32First,Process32Next获得各个进程的详细信息
6.比对详细信息中的进程id与前面所得到的进程id
7.进程id匹配的进程信息结构PROCESSENTRY32里面就包含该进程的所有信息了

1,485

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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