如何用VB关闭动态标题的窗口
我知道能用Findwindow(vbnullstring,"窗口标题")来获取窗口的句柄,然后用SendMessage来关闭窗口。举个例子:我用Findwindow(vbnullstring,"千千静听")来关闭千千静听的窗口。但千千静听在播放歌曲的时候是把歌曲名称和标题作为窗口标题的。这样动态的窗口标题如何截取关键字来关闭?
麻烦各路高手给点建议(完美解决问题,我一定追加分数)。谢谢!
追问:你通过SPY来获得千千静听的类,然后发送关闭消息。哪怎么用上述的方法去关闭诸如"暴风影音"---"资源管理器"---"QQ(不是登录窗口)"?
这些用类或是标题都无法关闭,因该用什么方法?
麻烦指点一下,谢谢。
答案:你运气真好,刚好让我看见了.你说的这个API可以查找窗口,但不仅限于用标题,还可以用类,我用SPY查了一下,静听的窗口类是自己的,所以可以用,废话不说,看代码
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) 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 Sub Form_Load()
Dim Hand As Long
'Hand就是静听的句柄了
Hand = FindWindow("TTPlayer_PlayerWnd", vbNullString)
'为了表示确实取到了句柄,做个验证
Dim Cap As String * 256
GetWindowText Hand, Cap, 256
MsgBox Left(Cap, InStr(1, Cap, Chr(0)) - 1)
End Sub
直接关闭他的进程。
(千千静听的标题是 歌名 + 千千静听 字样的吧。我以前用过就是这样的而且他有自定义的 窗口类)
或者就查找他的窗口类名,然后 Getwindowtext ,再用 instr 查找 千千静听 这四个字。
找到了那就是他了。
千千静听的进程名为TTPlayer.exe
所以只要
Shell "taskkill /im TTPlayer.exe"
就行了,已测试
上一个:VB中接收键盘鼠标的方法
下一个:VB能把控件也透明吗