当前位置:编程学习 > VB >>

FindWindow可以用通配符吗

我现在要查找以某些字符开头的已打开的程序,只要找到第一个既可,比如我已在运行了“AAA.EXE”、“ABA.EXE”以A开头的程序,只要A%.EXE有一个运行了,就反回第一个的句柄 --------------------编程问答-------------------- 不行。

至少微软的文档没有这样的描述。 --------------------编程问答-------------------- 楼主的思路很值得研究,改写一个?
--------------------编程问答-------------------- 对了,不知FindWindow是否要调用到EnumWindows呢 --------------------编程问答-------------------- 我之前发布过的clsWindow1.8封装了包含这样功能的函数GetWindowHwndByAppName,支持正则表达式匹配,根据楼主的需求可以这样写:

Dim w As New clsWindow
MsgBox w.GetWindowHwndByAppName("^A.*.EXE", 1, , True)
'MsgBox w.GetWindowHwndByAppName("note.*.exe", 1, , True)'如果进程中有notepad.exe那么就会获取到,它的窗口句柄。
 不过未经过严格测试,有问题可以报告。

下载:http://files.cnblogs.com/sysdzw/Windows%E7%AA%97%E5%8F%A3%E8%87%AA%E5%8A%A8%E5%8C%96%E6%93%8D%E4%BD%9C%E7%B1%BBforVB6_V1.8.rar
介绍:http://bbs.csdn.net/topics/390488924

--------------------编程问答-------------------- 可以自己写函数,就是历遍所有结果再匹配的问题. --------------------编程问答-------------------- FindWindow() 的结果,跟 XXX.exe是否运行,没直接关系吧!

还得要另外几个API配合,通过窗口句柄得到PID,再得到进程的完整路径,再看它的文件名是否匹配才行的。
--------------------编程问答-------------------- 4F 的代码,GetWindowHwndByAppName中有个 “ByAppName”,应该是能符合楼主需求的。
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,