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 编辑 ] 汗 我不觉得这个是小问题...
滚动啊 汗 问题有价值,
关注中。。 这个问题。。。千千静听也是滚动的,用它测试了一下,貌似很多种情况没有说明白,比如:“许巍_旅行 - 千千靜聽 ” 这个是完整的标题,“行 - 千千静听 许巍_旅”这个也是完整的,要机器自己判断哪个才是正确的标题,感觉比词法解析器还难。还有标题长度大于标题栏长度显示不全面的问题~ OMG~~ 在此先膜拜下将要解答出此题的高人~ 是啊,这个问题看似简单,实际上还挺复杂的吧。
计划写一个在qq、msn等聊天软件上根据播放的歌曲,更新 个性签名的 小工具。
希望大家支持哦。! 感觉只从窗口标题来判断,很难。
配合各自播放器的特点去分别处理吧
比如:用“千千静听”播放
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 编辑 ] 想到一个方法,感觉挺傻的,但是有效:
获取标题后判断一下,是否“酷狗”开头,是的话,就取值。不是的换轮询,知道是。
呵呵。
页:
[1]