问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

vb问题,如何获取窗口标题及对应的pid值

发布网友 发布时间:2022-05-10 06:51

我来回答

4个回答

热心网友 时间:2023-11-17 22:13

Option Explicit
'获取窗体标题名声明
Private Const GW_CHILD = 5
Private Const GW_HWNDNEXT = 2
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function GetWindow Lib "user32" (ByVal hWnd As Long, ByVal wCmd As Long) As Long

Private Type PROCESSENTRY32
dwsize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32MoleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szExeFile As String * 260
End Type

'获取进程名pid声明
Private Const TH32CS_SNAPheaplist = &H1
Private Const TH32CS_SNAPPROCESS = &H2
Private Const TH32CS_SNAPthread = &H4
Private Const TH32CS_SNAPmole = &H8
Private Const TH32CS_SNAPall = TH32CS_SNAPPROCESS + TH32CS_SNAPheaplist + TH32CS_SNAPthread + TH32CS_SNAPmole

Private Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Private Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapshot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

'函数功能:获取窗体标题
'参数说明:WndTitle 窗体标题
'返回值:输入某个窗体名的时候显示它的pid值,不输人任何参数则获取所有窗体的标题名
Function FindWindow_EX(Optional ByVal WndTitle As String)
Dim level, iFound, Resu
Dim hWnd As Long, K As Long
Dim sWindowText As String
Dim sClassname As String
Dim sID
hWnd = GetWindow(GetDesktopWindow, GW_CHILD)
Do Until hWnd = 0
DoEvents
'sWindowText = GetWinText(hWnd)
sWindowText = Space$(254)
K = GetWindowText(hWnd, sWindowText, 254)
sWindowText = StrConv(LeftB(StrConv(sWindowText, vbFromUnicode), K), vbUnicode)

If sWindowText = WndTitle Or WndTitle = vbNullString Then
If WndTitle <> "" Then '返回窗口句柄
Resu = hWnd
Exit Do
Else '获取所有窗体的标题名
If sWindowText <> "" Then Resu = Resu & sWindowText & vbNewLine
End If
End If
hWnd = GetWindow(hWnd, GW_HWNDNEXT)
Loop
FindWindow_EX = Resu
End Function

'函数功能:获取进程名pid
'参数说明:ProcName 进程名称
'返回值:进程名的pid值,如有多个则分行显示出来.
Function GetPIDFromProcName(ByVal ProcName As String) As String '根据路径获取被监控进程的进程句柄
Dim lPid As Long, S As String, i As Integer
Dim Proc As PROCESSENTRY32, hSnapshot As Long
Dim mSnapshot As Long
hSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPall, 0) '创建一个snapshot对象
Proc.dwsize = Len(Proc)
lPid = ProcessFirst(hSnapshot, Proc) '获取第一个进程的PROCESSENTRY32结构信息数据
Do While lPid <> 0
mSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPmole, Proc.th32ProcessID)
S = Proc.szExeFile
i = InStr(S, Chr(0))
If i Then S = Left(S, i - 1)
If LCase(ProcName) = LCase(S) Then '如果找到了,则…
GetPIDFromProcName = GetPIDFromProcName & Proc.th32ProcessID & vbNewLine
End If
CloseHandle (mSnapshot)
lPid = ProcessNext(hSnapshot, Proc) '循环获取下一个进程的PROCESSENTRY32结构信息数据
Loop
CloseHandle hSnapshot
End Function

热心网友 时间:2023-11-17 22:14


GetWindowThreadProcessId

GetWindowText

热心网友 时间:2023-11-17 22:14

看书吧

热心网友 时间:2023-11-17 22:15

大哥 API 太多 说了你也看不明白
还是看书吧
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我是北京人,五一去长沙玩,请问长沙有什么好玩的,大概穿什么衣服?_百度... 从湖南大众传媒学院到湖南商学院怎么走? 从商学院到长沙劳动西路220号电控大厦坐什么车 搜一下坡坡子街在哪个位置我现在在商学院门口怎么走我现在乘什么公交车... 为什么我的手机(ME525+)没有了3G网信号,连QQ都上不了,提示网络错误,桌面... 摩托罗拉me525 图标删了怎么恢复 ME525连接电脑问题,手机显示连接,电脑智能听到连接的声音,但桌面什么也... 摩托罗拉me525安装了一个桌面后QQ软件怎么没了 摩托罗拉me525锁屏后过有时再进入桌面时会不显示全部图标要过一会才会出... 我用的是摩托ME525+安装了360安全桌面,每次用USB连接电脑后,我的桌面主... 欧体和楷体能有多大区别 易语言 指定窗口句柄获取所有窗口标题拜托了各位 谢谢 小楷和欧楷有区别吗? 怎样根据程序进程名获得窗口标题 获取所有窗口句柄标题 VB 获取指定窗口标题和句柄 vb如何获取程序的标题 c 获取本身程序窗口的标题 VB怎么获取窗口标题 如何获取指定进程的窗口标题 用C语言获取窗口标题 如何获得当前窗口的标题 或句柄 金蝶kis云专业版账没做完就结转损益了怎么办 河北农信贷款系统不开 2008年至今刑满释放十三年了宁夏农村信用社说不能贷款,我应该怎么办? 为什么我的四川农信手机银行的贷款支用不能用? 农信手机银行怎么办理贷款?我在信用社贷了二万,还可以在手机银行贷吗 内蒙农信新版咋不能贷款了 集成电路设计前端和后端的设计流程(模拟&数字) 加入广告联盟,必须有自己的网站吗 按键精灵怎么样读取窗口标题? 易语言如何取进程的窗口标题 vb 获取指定进程里所有窗口标题 怎么获得任意窗口标题 请高手解答:颜体和欧体的区别 欧体与颜体有些什么区别? 柳体、颜体、欧体、魏体、赵体等字有什么特别和区别 新手如何组装主机 python 输入平面上第一象限中的一个点坐标,第三象限中的一个点的坐标,计算两点间的距离。 土豆有什么吃法 吃土豆的好处有哪些,盘点各国土豆吃法? 大学一定要考雅思或托福吗? 土豆怎么吃?? 梦到用桶井里打水倒另一个桶里怎么都倒不满? 大学生备考雅思的黄金时间是什么时候? 对于国内大学生而言,英语四六级和雅思托福哪个更有说服力? 在校大学生可以考雅思/托福什么的出国吗? 艾叶在拼多多里面选哪个类目? 拼多多避孕套选什么类目 2021年注会综合考试主要考什么?