zerozha 发表于 2009-2-25 09:15:59

WinGetTitle的一个小问题

If ProcessExists("kugoo.exe") Then
   $title = WinGetTitle("", "")
        MsgBox(0, "完整的标题为:", $title)
EndIf

此段代码获取kugoo正在播放的歌曲名称,但是标题是滚动的,每次获取的字序不同。

请问应该怎样去正确获取kugoo是否在放歌,放的是什么歌呢?

解决方法:

While 1
        $Kugootitle = WinGetTitle("", "")
        If $Kugootitle=1 Then
                MsgBox(0,"","酷狗已经退出")
                ContinueLoop
        EndIf       


        If $Kugootitle = "酷狗音乐" Then ;没有播放歌曲
                $lastSingString = "酷狗音乐"
                ;MsgBox(0, "", "没有播放歌曲")
        ElseIf StringRight($Kugootitle, 4) = "酷狗音乐" And StringLen($Kugootitle) > 8 And $Kugootitle <> $lastSingString Then;正在播放歌曲或者暂停


                        MsgBox(0, "完整的标题为:", "["&$Kugootitle&"]")
                       

               
        EndIf

        Sleep(100)
WEnd


[ 本帖最后由 zerozha 于 2009-2-26 20:54 编辑 ]

sxd 发表于 2009-2-25 17:45:57

汗 我不觉得这个是小问题...
滚动啊 汗

gogo023 发表于 2009-2-25 17:52:37

问题有价值,
关注中。。

pusofalse 发表于 2009-2-25 22:22:33

这个问题。。。千千静听也是滚动的,用它测试了一下,貌似很多种情况没有说明白,比如:“许巍_旅行 - 千千靜聽   ” 这个是完整的标题,“行 - 千千静听   许巍_旅”这个也是完整的,要机器自己判断哪个才是正确的标题,感觉比词法解析器还难。还有标题长度大于标题栏长度显示不全面的问题~ OMG~~ 在此先膜拜下将要解答出此题的高人~

zerozha 发表于 2009-2-26 09:28:08

是啊,这个问题看似简单,实际上还挺复杂的吧。

计划写一个在qq、msn等聊天软件上根据播放的歌曲,更新 个性签名的 小工具。

希望大家支持哦。!

顽固不化 发表于 2009-2-26 09:53:48

感觉只从窗口标题来判断,很难。
配合各自播放器的特点去分别处理吧

比如:用“千千静听”播放
If ProcessExists("TTPlayer.exe") Then
        While 1
                Sleep(100)
                $title = WinGetTitle("", "")
                $TEST = StringInStr($title, "千千静听")
                If $TEST <> 0 Then ExitLoop
        WEnd
        $title = StringMid($title, $TEST + 5) & StringLeft($title, $TEST - 1)
        MsgBox(0,"找到了歌曲名","歌曲名称是:" & $title)
EndIf

[ 本帖最后由 顽固不化 于 2009-2-26 10:28 编辑 ]

zerozha 发表于 2009-2-26 12:57:54

想到一个方法,感觉挺傻的,但是有效:

获取标题后判断一下,是否“酷狗”开头,是的话,就取值。不是的换轮询,知道是。


呵呵。
页: [1]
查看完整版本: WinGetTitle的一个小问题