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

如何用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能把控件也透明吗

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,