为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 2016-2017年delphi源码雅虎音乐

2016-2017年delphi源码雅虎音乐

2018-03-09 13页 doc 33KB 7阅读

用户头像

is_337177

暂无简介

举报
2016-2017年delphi源码雅虎音乐2016-2017年delphi源码雅虎音乐 unit uYahooMusic; {作者,束继涛,转载请保留原注释~~HTTP:\\www.vifachina.com,作者QQ 32240972} interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, XPMan, jpeg, OleCtrls,WinSock, WMPLib_TLB, ...
2016-2017年delphi源码雅虎音乐
2016-2017年delphi源码雅虎音乐 unit uYahooMusic; {作者,束继涛,转载请保留原注释~~HTTP:\\www.vifachina.com,作者QQ 32240972} interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, XPMan, jpeg, OleCtrls,WinSock, WMPLib_TLB, ComCtrls, IdBaseComponent, SHDocVw,IdComponent, ComObj, IdTCPConnection, IdTCPClient,mshtml, ActiveX, IdHTTP, idURI,WinInet,MMSystem, JvComponent, JvTrayIcon, Menus,PerlRegEx, Gauges, IdAntiFreezeBase, IdTCPServer,StrUtils, WinSkinData, IdAntiFreeze; type TfYahooMusic = class(TForm) pnl1: TPanel; pnl2: TPanel; edt1: TEdit; btn1: TButton; rb1: TRadioButton; xpmn1: TXPMan; rb2: TRadioButton; rb3: TRadioButton; img1: TImage; wndwsmdplyr1: TWindowsMediaPlayer; pnl3: TPanel; btn2: TButton; btn3: TButton; TrackBar1: TTrackBar; IdHTTP1: TIdHTTP; chk1: TCheckBox; jvtrycn1: TJvTrayIcon; pm1: TPopupMenu; N1: TMenuItem; tmr1: TTimer; lv1: TListView; mmo1: TMemo; mmo3: TMemo; btn4: TButton; Gauge1: TGauge; pm2: TPopupMenu; N2: TMenuItem; IdAntiFreeze1: TIdAntiFreeze; IdHTTP2: TIdHTTP; edt2: TEdit; lbl1: TLabel; function GetStringBetween(const FullStr, StrLeft, StrRight: String): string; procedure btn2Click(Sender: TObject); procedure TrackBar1Change(Sender: TObject); procedure chk1Click(Sender: TObject); procedure TrackBar2Change(Sender: TObject); procedure btn3Click(Sender: TObject); procedure N1Click(Sender: TObject); procedure lv1Click(Sender: TObject); procedure btn4Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure IdHTTP2Work(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer); procedure IdHTTP2WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer); procedure btn1Click(Sender: TObject); private function GetNextPage: string; function GetHTML: string; { Private declarations } public { Public declarations } end; var fYahooMusic: TfYahooMusic; sEncodeURI:string; Data : TMemoryStream; //Create,Destroy 略过 httpclient: TIdHTTP; iPaGe:Integer; iGeMing:string; DllHandle: THandle; DllPointer: Pointer; bxiazhai:Boolean; implementation //function GetHtmlDll(sZHI,text,r:string): String;external'GetHtml.dll'; //在此声明引入dll函数,注意dll与程序在同一路径下 {$R *.dfm} function TfYahooMusic.GetStringBetween(const FullStr, StrLeft, StrRight: String): string; var i,n:integer; begin i:=pos(StrLeft,FullStr)+length(StrLeft); n:=pos(StrRight,FullStr)-length(StrLeft)-1; Result:=copy(FullStr,i,n); end; procedure TfYahooMusic.btn2Click(Sender: TObject); begin //wndwsmdplyr1.URL:=mmo2.Text; end; procedure TfYahooMusic.TrackBar1Change(Sender: TObject); var t,v:Longint; begin // if a=0 then Exit; t:=TrackBar1.Position; v:=(t shl 8)or(t shl 24); waveOutSetVolume(0,v); end; procedure TfYahooMusic.chk1Click(Sender: TObject); var xml: OleVariant; Words:string; a,sZhi,r: string; p1, p2: Integer; begin xml := CreateOleObject('Microsoft.XMLHTTP'); xml.Open('GET', ''+edt1.Text+'&m=10', False); xml.Send; r := xml.responseText; mmo1.Clear; mmo1.Lines.Add(r); mmo1.SelStart:= 0; mmo1.SetFocus; p1 := Pos('1. 曲名:', mmo1.Text); // 找到 h2 结束标签 mmo3.Text := Copy(mmo1.Text, p1+270, p2-1380); end; procedure TfYahooMusic.TrackBar2Change(Sender: TObject); var i:Integer; begin end; procedure TfYahooMusic.btn3Click(Sender: TObject); begin wndwsmdplyr1.controls.pause; end; procedure TfYahooMusic.N1Click(Sender: TObject); begin if fYahooMusic.Showing then begin fYahooMusic.Hide end else fYahooMusic.Show; end; procedure TfYahooMusic.lv1Click(Sender: TObject); begin IF lv1.SelCount=0 then Begin Exit; end; wndwsmdplyr1.URL:=lv1.Selected.Caption; edt2.Text:=RightStr(lv1.Selected.Caption,6) ; end; function TfYahooMusic.GetNextPage: string; var xml: OleVariant; a,sZhi,r: string; i,i1,i2,p1, p2: Integer; item:OleVariant; sc: OleVariant; Words:string; reg: TPerlRegEx; num: Integer; //用 num 来计数 begin if rb1.Checked=True then begin sZhi:='&m=0'; end; IF rb2.Checked=True then begin sZhi:='&m=5'; end; IF rb3.Checked=True then begin sZhi:='&m=4'; end; xml := CreateOleObject('Microsoft.XMLHTTP'); xml.Open('GET', ''+sEncodeURI+''+edt1.Text+''+szhi+''+'page='+''+INTTOSTR(IPAGE) +'', False); xml.Send; r := xml.responseText; reg := TPerlRegEx.Create(); reg.Subject := r; // /url=(.*)(mp3|wma)+/i reg.RegEx :='http%3A%2F%2F.*\.(mp3|WMA)"'; //http%3A%2F%2F.*\.(mp3|WMA)" num := 0; while reg.MatchAgain do //MatchAgain 是下一个 begin //sc.Eval('unescape('''+mmo2.Text+''')'); sc := CreateOleObject('MSScriptControl.ScriptControl.1'); sc.Language :='javascript'; R:=Copy(reg.MatchedText,0,Length(reg.MatchedText)-Length('"')); R:=sc.Eval('unescape('''+R+''')'); // ShowMessage(''+R+''); lv1.Items.Add.Caption:=R; //lv1.Items.Add.Caption:=Copy(reg.MatchedText,Length(reg.MatchedText),Length('"')); // lv1.Items:=Copy(reg.MatchedText,reg.MatchedText,reg.MatchedText-2); Inc(num); end; // ShowMessage(IntToStr(num)); //6 FreeAndNil(reg); end; procedure TfYahooMusic.btn4Click(Sender: TObject); begin GetNextPage; Inc(iPaGe); end; procedure TfYahooMusic.N2Click(Sender: TObject); var stream:TMemoryStream; begin IF lv1.SelCount=0 then Begin ShowMessage('不能下载'); Exit; end; IF edt2.Text='' then Begin ShowMessage('歌名不能为空'); Exit; end; IdAntiFreeze1.OnlyWhenIdle:=False; stream:=TMemoryStream.Create; try idhTtp2.get(lv1.Selected.Caption,stream); stream.savetofile(ExtractFileDir(ParamStr(0))+'\download\'+edt2.Text); stream.Free; MessageBox(handle,'下载完毕~','提示',MB_ICONINFORMATION + MB_OK); Gauge1.MinValue:=0; Gauge1.Progress:=0; // Inc(iGeMing) except MessageBox(handle,'网络出错~','提示',MB_ICONERROR + MB_OK); stream.Free; Exit; end; end; procedure TfYahooMusic.FormCreate(Sender: TObject); begin //iGeMing:=0; end; procedure TfYahooMusic.IdHTTP2Work(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer); begin Gauge1.Progress:=AWorkCount; end; procedure TfYahooMusic.IdHTTP2WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer); begin Gauge1.MaxValue:=AWorkCountMax; Gauge1.MinValue:=0; Gauge1.Progress:=0 end; procedure TfYahooMusic.btn1Click(Sender: TObject); var szhi,text,r:string; xml: OleVariant; begin GetHTML; end; function TfYahooMusic.GetHTML: string; var xml: OleVariant; a,sZhi,r: string; i1,i2,p1, p2: Integer; item:OleVariant; sc: OleVariant; Words:string; reg: TPerlRegEx; num: Integer; //用 num 来计数 begin if fYahooMusic.rb1.Checked=True then begin sZhi:='&m=0'; end; IF fYahooMusic.rb2.Checked=True then begin sZhi:='&m=5'; end; IF fYahooMusic.rb3.Checked=True then begin sZhi:='&m=4'; end; xml := CreateOleObject('Microsoft.XMLHTTP'); xml.Open('GET', ''+sEncodeURI+''+fYahooMusic.edt1.Text+''+szhi+'', False); xml.Send; r := xml.responseText; reg := TPerlRegEx.Create(); reg.Subject := r; reg.RegEx :='http%3A%2F%2F.*\.(mp3|WMA)"'; num := 0; fYahooMusic.lv1.Items.Clear; while reg.MatchAgain do //MatchAgain 是下一个 begin sc := CreateOleObject('MSScriptControl.ScriptControl.1'); sc.Language :='javascript'; R:=Copy(reg.MatchedText,0,Length(reg.MatchedText)-Length('"')); R:=sc.Eval('unescape('''+R+''')'); fYahooMusic.lv1.Items.Add.Caption:=R; Inc(num); end; Inc(iPaGe); end; end.
/
本文档为【2016-2017年delphi源码雅虎音乐】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索