找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 9220|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

迅雷-天翼光速下載 奇葩獲取方法

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:73735 發(fā)表于 2015-2-19 01:09 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
      不知怎么的,家里的網(wǎng)速明明是10M,迅雷全速下載的速度總是維持在500 KB/s左右,去年還是好好的,最重要的是還有一個(gè)月的天翼光速試用,現(xiàn)在沒(méi)有了。。。偶然之間,發(fā)現(xiàn)”高速通道加速“按鈕,有時(shí)候會(huì)變成”試用光速通道“,可提升到30M,不過(guò)只有2分鐘的試用時(shí)間。但貌似迅雷在這點(diǎn)上有bug,只要在試用結(jié)束后,徹底刪除獲得加速機(jī)會(huì)的文件,再重新下載,即可再次獲取光速試用。
      接下來(lái),就有疑問(wèn)了,要怎樣的文件才可獲得光速試用的機(jī)會(huì)?回答是,我也不知道!不過(guò)一定不是隨機(jī)的,要不就不會(huì)有同一個(gè)文件可不斷重復(fù)的獲得光速試用的事了。
      所以就有了下面有點(diǎn)腦殘的想法,如果是通過(guò)程序不斷重復(fù)新建下載,刪除下載任務(wù),獲取光速試用呢?oh,dear, 這個(gè)可憐的文件。

//********************************************************************************************************************************************************************//
//********************************************************************************************************************************************************************//
本想通過(guò)程序獲取迅雷窗口中的各句柄,再用SendMessage或PostMessage直接發(fā)送“立即下載”按鈕等命令,這樣就很簡(jiǎn)單了,不過(guò)后來(lái)用Spy++發(fā)現(xiàn)迅雷7以后的窗口都是”畫(huà)“出來(lái)的,只能獲取一個(gè)迅雷的大窗口,按鈕的句柄沒(méi)找到,所以這個(gè)行不通。
在網(wǎng)上搜了下,迅雷官網(wǎng)上有半公開(kāi)的迅雷云加速SDK,通過(guò)加載dll,可以實(shí)現(xiàn),但這個(gè)對(duì)我來(lái)說(shuō)需要大量的投入時(shí)間。
所以我就盲人摸象,設(shè)定位置,模擬鼠標(biāo)運(yùn)動(dòng)了。
具體思路:
      1、單擊“新建”
      2、下載地址復(fù)制到剪貼板
      3、單擊“立即下載”
      4、點(diǎn)擊“暫停”
      5、點(diǎn)擊“刪除”
      6、單擊“光速試用”
      7、125后程序徹底刪除該文件,再重新回到步驟1。

//********************************************************************************************************************************************************************//
//********************************************************************************************************************************************************************//
程序一樣是用delphi平臺(tái)編寫(xiě)的。

界面布局:


部分關(guān)鍵代碼:

//**************************************************************   點(diǎn)擊啟動(dòng)按鈕   ************************************************************************//
procedure TForm1.activeButtonClick(Sender: TObject);
begin
  if activeButton.Caption ='啟動(dòng)' then
    begin
      if downloadAdd.Text = '' then   //判斷是否是空地址
      begin
        ShowMessage('下載地址無(wú)效!');
        Exit;
      end;
      activeButton.Caption:='停止';
      downloadAdd.Enabled:=false;
      Timer1.Enabled:=false;
      handle1:=FindWindow(nil, PChar('迅雷VIP尊享版')); //查找迅雷主窗口,獲得句柄 handle1
      if handle1 <> 0 then
      begin
        //SetWindowPos(handle1,HWND_TOPMost,0,0,0,0,0);
        GetWindowRect(handle1,R1);    //定位窗口位置
        ImitateClick(R1.Left+189,R1.Top+88);  //設(shè)置鼠標(biāo)位置 (“新建”),單擊
        Sleep(300);

        handle2:=FindWindow(nil, PChar('新建任務(wù)'));  //查找新建任務(wù)窗口,獲得句柄 handle2
        //SendMessage(handle2,WM_SETTEXT,255,Integer(PChar(downloadAdd.Text)));  //模擬發(fā)送字符
        GetWindowRect(handle2,R2);    //定位新建任務(wù)窗口位置
        ImitateClick(R2.Left+55,R2.Top+75); //設(shè)置鼠標(biāo)位置,單擊
        clipboard.AsText:=downloadAdd.Text;  //下載地址復(fù)制到剪貼板
        Sleep(300);
        keybd_event(VK_CONTROL,MapVirtualKey(VK_CONTROL,0),0,0);  //模擬Ctrl+V
        keybd_event(Ord('V'),MapVirtualKey(Ord('V'),0),0,0);
        keybd_event(Ord('V'),MapVirtualKey(Ord('V'),0),KEYEVENTF_KEYUP,0);
        keybd_event(VK_CONTROL,MapVirtualKey(VK_CONTROL,0),KEYEVENTF_KEYUP,0);
        Sleep(100);
        ImitateClick(R2.Left+386,R2.Top+184); //設(shè)置鼠標(biāo)位置(“立即下載”),單擊
        Sleep(5000);

        ImitateClick(R1.Left+296,R1.Top+89); //設(shè)置鼠標(biāo)位置 (“開(kāi)始/暫�!保�
        Sleep(300);
        ImitateClick(R1.Left+326,R1.Top+88); //設(shè)置鼠標(biāo)位置 (“刪除”),單擊

        ImitateClick(R1.Left+460,R1.Top+120); //設(shè)置鼠標(biāo)位置 (第一個(gè)文件位置),單擊
        ImitateClick(R1.Left+626,R1.Top+166); //模擬鼠標(biāo)單擊(“光速試用”),單擊

        Timer1.Enabled:=true; //125s定時(shí)開(kāi)始
      end;
    end
  else
    begin                    //結(jié)束任務(wù)
      activeButton.Caption:='啟動(dòng)';
      Timer1.Enabled:=false;        //停止計(jì)時(shí)
      downloadAdd.Enabled:=true;

      DeleteDF(fileName.Text);     //刪除下載文件
      DeleteDF('unknown');
      DeleteDF('401');
    end;

end;
//**************************************************************   點(diǎn)擊刪除按鈕   ************************************************************************//

procedure TForm1.deleteButtonClick(Sender: TObject);
begin
  DeleteDF(fileName.Text);     //刪除下載文件
  DeleteDF('unknown');
  DeleteDF('401');
  ShowMessage('文件已刪除!');
end;

//**************************************************************   子函數(shù)DeleteDF   ************************************************************************//

procedure TForm1.DeleteDF(fName: String);   //功能:刪除相同前綴文件
begin
  if FindFirst(downloadPath.Text+'\'+fName+'*.*',faAnyFile,SearchRec) =0 then
    begin     //查找相同前綴文件
      repeat
        DeleteFile(downloadPath.Text+'\'+SearchRec.Name);   //刪除相同前綴文件
      until(FindNext(SearchRec)<>0);
      FindClose(SearchRec);
    end;
end;

//*******************************************  保持設(shè)置的下載鏈接與文件名一致,方便刪除等操作  ****************************************************//

procedure TForm1.downloadAddChange(Sender: TObject);
begin
  fileName.ItemIndex:=downloadAdd.ItemIndex;  //保持下載鏈接與文件名一致
end;
procedure TForm1.fileNameChange(Sender: TObject);
begin
  downloadAdd.ItemIndex:=fileName.ItemIndex;  //保持下載鏈接與文件名一致
end;

//**************************************************************** 子函數(shù)ImitateClick **************************************************************************//

procedure TForm1.ImitateClick(x, y: integer); //功能:模擬鼠標(biāo)單擊
begin
  SetCursorPos(x,y);
  Mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); //模擬鼠標(biāo)單擊
  Mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
end;

//**************************************************************** 定時(shí)器Timer1 :125s *************************************************************************//

procedure TForm1.Timer1Timer(Sender: TObject);   //125s計(jì)時(shí)任務(wù):刪除下載文件,重復(fù)下載文件
begin
  Timer1.Enabled:=false;
  DeleteDF(fileName.Text);     //刪除下載文件
  DeleteDF('unknown');
  DeleteDF('401');
  //下面代碼與 procedure TForm1.activeButtonClick(Sender: TObject)中的操作相一致,不再重復(fù)
  (*
      1、單擊“新建”
      2、下載地址復(fù)制到剪貼板
      3、單擊“立即下載”
      4、點(diǎn)擊“暫停”
      5、點(diǎn)擊“刪除”
      6、單擊“光速試用”
  *)
  Timer1.Enabled:=true;
end;

//********************************************************************************************************************************************************************//
//********************************************************************************************************************************************************************//
顯示效果:






速度基本都在2MB/s以上,當(dāng)然,還是有缺陷的,必須保持迅雷窗口在桌面上!致命一擊,只能在晚上睡覺(jué)時(shí)用了。











分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:88765 發(fā)表于 2015-8-23 18:33 | 只看該作者
樓主,那里下載呀
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表