怎样用VB获取窗口句柄,进行筛选后将符合的句柄的将标题显示到ListBox中(要全部代码不要思路,谢谢!)

hnnn99 2011-08-21 02:36:37
怎样用VB获取窗口句柄,进行筛选后将符合的句柄的将标题显示到ListBox中, 理由有1个按钮和1个list
按一下按钮就把句柄 在list中显示
...全文
893 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
worldy 2011-08-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 hnnn99 的回复:]
怎样用VB获取窗口句柄,进行筛选后将符合的句柄的将标题显示到ListBox中, 理由有1个按钮和1个list
按一下按钮就把句柄 在list中显示
[/Quote]

伸手党............................................
孤独剑_LPZ 2011-08-22
  • 打赏
  • 举报
回复
lz真懒呀,基本操作
guaiwu326 2011-08-22
  • 打赏
  • 举报
回复
不能这么说哟:

比如我就是业余打发时间学的VB,普通教材上是看不到这些高深的东西,要理解都感到有点困难,在急用时就想有现成的直接用上。

有很多人都不是学计算机专业的,多理解,现在提倡“和谐”了。大家住在天南海北,相识也是有缘。
zoujing1000 2011-08-22
  • 打赏
  • 举报
回复
参见百度
贝隆 2011-08-22
  • 打赏
  • 举报
回复
铜球。。。。。
无·法 2011-08-22
  • 打赏
  • 举报
回复
雄赳赳气昂昂要代码
hnnn99 2011-08-21
  • 打赏
  • 举报
回复
厄...不太会用,我很菜..2楼的能不能把 按钮的代码和怎样显示在list的代码也写出来吧..比如我搜3个同类名的窗口,把这3个都显示在list中
jlf629 2011-08-21
  • 打赏
  • 举报
回复
功能:获取窗口标题及对应的pid值

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
th32ModuleID 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_SNAPmodule = &H8
Private Const TH32CS_SNAPall = TH32CS_SNAPPROCESS + TH32CS_SNAPheaplist + TH32CS_SNAPthread + TH32CS_SNAPmodule

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_SNAPmodule, 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
chinaboyzyq 2011-08-21
  • 打赏
  • 举报
回复
楼下的给代码,谢谢。
打开链接下载源码: https://pan.quark.cn/s/8ec3d104bde6 华为MA5671是一款针对宽带接入需求而研发的智能型光猫设备,其核心应用场景为家庭用户及小型企业环境。该设备运用了千兆以太网技术,能够提供卓越的网络连接性能,从而使用户可以体验到稳定流畅的互联网服务。其完整名称为SmartAX MA5671,其"SmartAX"是华为对其智能接入产品系列的特定命名,意指该设备具备智能化管理功能与自动化配置特性。固件,即Firmware,是指存储于硬件设备内部的一套程序代码,负责控制设备的各项功能运作并合理调配硬件资源。在华为MA5671设备,固件发挥着核心作用,它直接影响着设备的操作系统运行机制、网络协议兼容性、安全防护机制以及性能表现等多个维度。"MA5671V8R313C00SPC100"作为该固件的标识编号,通过此代码可以解析出以下几个关键层面的信息: 1. **V8**:这通常象征固件的主版本号,或许表明这是第8代产品形态或第8次主要升级迭代。 2. **R313**:这可能代表固件的次级版本或修订层级,暗示着相较于V8版本,该版本经历了313次的迭代优化。 3. **C00**:这部分或许与设备的特定型号设定或地域适配性相关,不同的C00编码可能对应不同的功能模块配置或区域适应性调整。 4. **SPC100**:最后的这一段编码可能标识着特殊版本或性能增强配置,SPC(Special Performance Configuration)可能是华为针对特定性能优化版本设定的代号,而100可能代表这种优化措施的等级或序列编号。 在实际部署过程,将固件保持为最新版本是非常重要的,这样做能够有效修正已知的安全隐患,优化设备运作效能,...
代码转载自:https://pan.quark.cn/s/558f943fe8b9 Oracle 11g是由甲骨文公司推出的一款面向企业级应用的数据管理平台,其具备丰富的功能特性与性能优化措施,能够充分满足大型商业机构及组织的复杂数据管理诉求。这份“Oracle 11g官方文帮助文档”作为一份高清晰度且内容全面的资源,专门为文使用者提供系统化的操作指引和必要的技术支持。 1. **Oracle 11g核心构成** - 数据库模型:该系统基于关系数据库架构,负责对结构化数据进行系统化存储和处理。 - 实例与服务机制:数据库实例指的是部署在服务器内存的运行环境,而服务则是客户端接入数据库的核心通道。 2. **部署与设置** - 部署模式:涵盖高级部署流程和快速部署方案,以适应多样化的应用场景。 - 参数配置文件:初始化参数文件(init.ora)用于设定数据库的运行环境参数。 - 逻辑存储与物理存储:表空间作为数据库对象的逻辑组织单元,数据文件则是实际存放数据的物理载体。 3. **SQL与PL/SQL技术** - SQL指令集:主要用于数据库数据的查询、录入、修改及删除等操作。 - PL/SQL编程:作为Oracle的特色编程语言,支持过程化编程范式,常用于开发存储过程和触发器逻辑。 4. **安全防护机制** - 用户身份与角色管理:通过用户账户和角色权限体系来控制数据库的访问权限。 - 授权管理及审计功能:实现数据访问权限的精细化控制,并记录数据库活动日志以保障合规操作。 5. **效能提升策略** - 查询执行优化器:智能选择最优的查询执行路径。 - 重做日志与归档机制:保障事务的持久性和系统故障后的恢复能力。 - 数据分区技术:通过将大型数据表...

1,488

社区成员

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

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