一个自动下歌词的思路
作为蛋疼群的一员,正如sxd所说:不蛋疼/装13不足以在此群立足.
因此,此为蛋疼贴+装13+无水平贴.不喜请按下Ctrl+W
作为一个捡破烂的,硬盘里面垃圾多是必然的.
我搜集了700G的MP3音乐(APE啥的另算,低于192Kbps的直接丢弃,按专辑下,电骡上拖,0DAY上拉).
改ID3倒是好说,因为有现成的工具(即使里面没有任何ID3信息)自动匹配ID3与MP3.
下歌词才是一个问题.特别是我那蛋疼的网速下.
现在研究研究:
下歌词要解决几个问题:
1.歌词资源多.
2.下载速度快.
3.识别率高.
综合了一下认为某度旗下的产品<千千X听>适合下歌词.资源,速度,识别率都不是问题,按照MP3目录保存的功能也有了.
开刀:
Global $hWnd = ControlGetHandle("","","SkinButton11")
While 1
If Not IsHWnd($hwnd) Then Exit
ControlClick($hWnd,'','')
Sleep(10000)
WEnd
依靠鼠标每10秒点击下一曲按钮来让<千千X听>下歌词.
问题来了.ControlClick会让处于后台的窗口置于前台,严重影响了观赏日本爱情动作片,欧美动物世界的心情.
作为一个控件,必须处理用户与程序的交互信息.例如:我点击了一个XX按钮,按钮会收到一个鼠标点击的信息.而这个带按钮的程序就必须对这类消息进行处理,如果不处理,这个按钮就没有任何意义.
由此,我参考MSDN文档(http://msdn.microsoft.com/en-us/library/bb775941(VS.85).aspx),发现有如下几个鼠标消息可以进行尝试:
BM_CLICK 单击
WM_LBUTTONDBLCLK 双击
WM_LBUTTONDOWN 鼠标左键按下
WM_LBUTTONUP 鼠标左键释放
怎么找到这些事件的常量值? Google:#define WM_LBUTTONUP
经过测试,BM_CLICK <千千X听>不工作,WM_LBUTTONDBLCLK不符合我们的要求.所以我们使用WM_LBUTTONDOWN和WM_LBUTTONUP
为什么控件不响应单击事件?因为要响应哪些事件是由控件本身定义的.而且控件还可以定义属于自己的消息.
再次改下代码:
Global $WM_LBUTTONDOWN = 0x0201
Global $WM_LBUTTONUP = 0x0202
Global $hWnd = ControlGetHandle("","","SkinButton11")
While 1
If Not IsHWnd($hwnd) Then Exit
_SendMessage($hWnd,$WM_LBUTTONDOWN)
_SendMessage($hWnd,$WM_LBUTTONUP)
Sleep(10000)
WEnd
Func _SendMessage($hWnd, $iMsg, $wParam = 0, $lParam = 0, $iReturn = 0, $wParamType = "wparam", $lParamType = "lparam", $sReturnType = "lresult")
Local $aResult = DllCall("user32.dll", $sReturnType, "SendMessageW", "hwnd", $hWnd, "uint", $iMsg, $wParamType, $wParam, $lParamType, $lParam)
If @error Then Return SetError(@error, @extended, "")
If $iReturn >= 0 And $iReturn <= 4 Then Return $aResult[$iReturn]
Return $aResult
EndFunc ;==>_SendMessage
PS:可以设置静音后最小化.
---------
全文完. 又一蛋疼的来看下,老潇的作品。。。。。学习学习思路,然后继续。。。。。。 发点资料让大家看看,期待高手把代码改成AU3的!~~
最早版本:
http://code.google.com/p/lyriczilla/
之后的PHP版本:
http://forum.byr.edu.cn/wForum/disparticle.php?boardName=NetResources&ID=41717
后来的C#的版本:
http://www.ycgker.com.cn/article.asp?id=305 谢谢分享,认真看看 700G的MP3音乐?估计单听这些歌曲完也要数年吧? 之前见过直接就有批量下载歌词的东西。。。用的资源好像就是千千x听的。。。 路过,看看,帮顶 楼主的方法真强...
也在找批量下载歌词的方法,QQ baidu,千千,还有kugoo不知道哪个好点
baidu现在都做flash比较难找了 简单实用,支持一下 还有一新手都会的方法,将千千的全局热键打开
While 1
send("^!{right}")
Sleep(10000)
WEnd 还有一新手都会的方法,将千千的全局热键打开
While 1
send("^!{right}")
Sleep(10000 ...
xyold1 发表于 2010-8-2 12:48 http://www.autoitx.com/images/common/back.gif
说了是装13帖,用热键不是很没面子...{:1_302:} 只看怎么实现了
没注意
但对新手来说可以学学API 学习思路 谢谢分享 支持一下,虽然看不懂。。。。 楼主的文采 和 代码同样精彩
页:
[1]
2