請選擇 進入手機版 | 繼續訪問電腦版

微剋多資訊

 找回密碼
 註冊

Sign in with google

You know.

Login

Google帳號登入

搜索
回覆 2則 瀏覽 3098篇

[程式+碼源] YTDL-GUI 影片下載工具

簽到天數: 189

該用戶今日未簽到

發表於 2020-12-26 00:06 | 顯示全部樓層 |閱讀模式
【軟體名稱】:YTDL-GUI
【軟體版本】:1.0.0.0
【發行日期】:2020.12.25
【檔案大小】:exe:34.34,zip:43.79 MB
【檔案格式】:exe、zip
【測試環境】:Windows 10 x64;YouTube、Xuite、Xuite影音
【支援環境】:x64(ffmpeg為x64,YTDL-GUI為x86)
【下載網址】:Google / Yadisk
【校驗工具】:檔案校驗工具 / HashMyFiles(nirsoft官方載點)

檔案 : YTDL-GUI_inataller.exe
檔案大小 : 34.34 MB
建立日期 : 2020/12/25
修改日期 : 2020/12/25
CRC32碼 : 021EBB8E
MD5碼 : BF44673B12265414FFCAA4E835CD9BA9
SHA1碼 : F4CBCCACC60084FAB3194DA05DCA7DB3BFEF26D5

檔案 : YTDL-GUI.zip
檔案大小 : 43.79 MB
建立日期 : 2020/12/25
修改日期 : 2020/12/25
CRC32碼 : C2AFE5F9
MD5碼 : 106C71E263996F38D71193E27FF42D59
SHA1碼 : BB2E64187480A6ACCA6BABB0FDECE3D502AF9EA3

【說明】:
本軟體是基於 youtube-dl 撰寫的視窗化軟體。
youtube-dl 本身支援複數網站的影音下載,
但本軟體基本上適用於 youtube 的下載工具,
其他的網站並未經測試。

youtube-dl 支援的影音平台

【預覽】:
 

簽到天數: 189

該用戶今日未簽到

 樓主| 發表於 2020-12-26 00:06 | 顯示全部樓層

YTDL-GUI Source Code

本帖最後由 gary8349 於 2020-12-25 23:46 編輯
  1. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  2. ;;|                            編譯程式後的資訊                            |
  3. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  4. ;;無系統匣圖標
  5. #NoTrayIcon
  6. ;;請求管理員身分執行
  7. #RequireAdmin
  8. #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
  9. #AutoIt3Wrapper_Icon=C:\Program Files (x86)\AutoIt3\Icons\ytd_icon.ico
  10. #AutoIt3Wrapper_Compression=4
  11. #AutoIt3Wrapper_UseUpx=n
  12. #AutoIt3Wrapper_Res_Comment=YTDL-GUI
  13. #AutoIt3Wrapper_Res_Description=YTDL-GUI
  14. #AutoIt3Wrapper_Res_Fileversion=1.0.0.0
  15. #AutoIt3Wrapper_Res_LegalCopyright=MicroDuo/Sally 2020 Unlicense.
  16. #AutoIt3Wrapper_Res_Language=1028
  17. #AutoIt3Wrapper_Res_requestedExecutionLevel=highestAvailable
  18. #AutoIt3Wrapper_Res_HiDpi=y
  19. #AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w- 4 -w 6 -w 7
  20. #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****


  21. #CS ====== 未加入功能 ======
  22.         自動偵測網址
  23.         用戶登入下載
  24.         初始化設定值按鈕
  25.         檢查核心組件
  26.         區分x64 x86
  27.         增加官網下載組件
  28. #CE ====== 未加入功能 ======


  29. #cs ____________________________________

  30.         Au3版本:3.3.14.2
  31.         SciTE版本:4.2.0
  32.         腳本作者:Sally

  33.         腳本功能:youtube-dl 視窗化
  34.         發佈日期:2020.12.25
  35.         參考代碼:

  36. #ce _______________腳本開始_________________


  37. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  38. ;;|                              載入Fuction                              |
  39. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  40. ;;防止重複執行
  41. #include <Misc.au3>

  42. ;;GUI
  43. #include <GUIConstantsEx.au3>
  44. #include <WindowsConstants.au3>
  45. #include <StaticConstants.au3>

  46. ;;控件擴展
  47. #include <EditConstants.au3>
  48. #include <ComboConstants.au3>
  49. #include <ButtonConstants.au3>


  50. ;;組態讀寫
  51. #include '_Ini.au3'

  52. ;;浮水印
  53. #include <Winapi.au3>

  54. ;;關於
  55. #include <GuiListView.au3>
  56. #include <GDIPlus.au3>
  57. #include <GuiMenu.au3>
  58. #include <File.au3>


  59. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  60. ;;|                                宣告變數                                |
  61. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  62. Global Const $regRoot = "HKEY_CURRENT_USER64\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"

  63. Global Const $bin = @ScriptDir & '\bin'
  64. Global Const $ytdl = $bin & '\youtube-dl.exe'
  65. Global $dfPath = RegRead($regRoot, 'My Video') & '\ytdl_Download'
  66. If @error <> 0 Then $dfPath = @ScriptDir & '\ytdl_Download'
  67. Global Const $cfg = @ScriptDir & '\config.cfg'
  68. Global Const $filelog = @ScriptDir & '\_Log\' & @YEAR & "-" & @MON & "-" & @MDAY & "_err.log"

  69. Global $GUIWidth = 720 ;;介面寬
  70. Global $GUILength = 380 ;;介面高
  71. Global $fontsize = 10, $font_xing = 300, $font_var = Default, $font_name = 'Microsoft JhengHei', $font_quality = 5 ;;全局字體及大小(備用字體:'Comic Sans Ms'、'YaHei Consolas Hybrid')

  72. Global Const $Title = 'YTDL-GUI' ;;軟體名稱
  73. Global Const $ver = '1.0.0.0' ;;版本號碼
  74. Global Const $Author = '莎莉 / Sally' ;;版本號碼
  75. Global Const $Copyright = 'MicroDuo/Sally 2020 Unlicense.' ;;版權宣告

  76. ;; --- 浮水印 ---
  77. Global $NONEAACTIVECOLOR = 0xFFFFFF
  78. Global $MARK_1 = 0
  79. Global Const $wkey =         "範例:" & @CRLF & _
  80.                                                 "https://www.youtube.com/playlist?list=PL12UaAf_xzfrqNxhYxcixSvcBCS1m-PXF" & @CRLF & _
  81.                                                 "https://youtu.be/bfZ9yTZ1Q-g"
  82. Global $DEFAULTINPUTDATA_1 = $wkey
  83. ;; ------

  84. Global Const $text = '  01.支援多個網址同時下載。' & @CRLF & _ ;;幫助說明裡的文字
  85.                                          '  02.本GUI專為YouTube提供下載功能,其餘網站未經測試。' & @CRLF & _
  86.                                          '  03.專輯指定下載範圍 功能,對該次下載的整批網址有效。' & @CRLF & '     如要分別設定各個專輯的下載範圍,請分次下載及設定。' & @CRLF & _
  87.                                          '  04.預設影片如果包含字幕,將自動下載指定字幕。' & @CRLF & _
  88.                                          '  05.音樂檔格式建議:best(自動選擇最佳品質) > flac = wav;' & @CRLF & '     專輯封面僅mp3能內封。' & @CRLF & _
  89.                                          '  06.請確認核心程式 [youtube-dl 及 ffmpeg ] 存在bin資料夾中。' & @CRLF & _
  90.                                          '  07.點擊 youtube-dl 版本號碼,可以檢查並更新 youtube-dl。' & @CRLF

  91. Global $About_gui, $setting_gui, $hObj, $hPic, $i, $hBitmap, $hImage, $pStream, $tData, $pData, $hData, $Lenght, $bData
  92. Global $sTop, $sSub, $all_Sub, $specific_Sub, $sub_Lang, $mSub, $Naming_rules, $exText, $mode, $sub_format, $parameter

  93. Global $AutoIt_Error = ObjEvent("AutoIt.Error", "_AutoIt_Error") ; 攔截 Com 錯誤


  94. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  95. ;;|                     切換起始目錄工作目錄到指定路徑                     |
  96. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  97. FileChangeDir($bin)


  98. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  99. ;;|                              防止重複執行                              |
  100. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  101. _Singleton(@ScriptName)


  102. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  103. ;;|                         判斷是否以管理員身份執行                        |
  104. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  105. Local $ADMIN
  106. If IsAdmin() Then
  107.         $ADMIN = "當前管理員權限運行"
  108. Else
  109.         $ADMIN = "當前非管理員權限運行"
  110.         MsgBox(262144, '', $ADMIN)
  111. EndIf


  112. If Not FileExists($dfPath) Then DirCreate($dfPath)


  113. ;; --- 建立 組態檔 ---
  114. If Not FileExists($cfg) Then
  115.         _config_create()
  116. EndIf


  117. ;;---------- Start 插入二進制圖片 ----------
  118. $bData = About_Logo()
  119. $Lenght = BinaryLen($bData)
  120. $hData = _MemGlobalAlloc($Lenght, $GMEM_MOVEABLE)
  121. $pData = _MemGlobalLock($hData)
  122. $tData = DllStructCreate('byte[' & $Lenght & ']', $pData)
  123. DllStructSetData($tData, 1, $bData)
  124. _MemGlobalUnlock($hData)
  125. $pStream = _WinAPI_CreateStreamOnHGlobal($hData)
  126. _GDIPlus_Startup()
  127. $hImage = _GDIPlus_BitmapCreateFromStream($pStream)
  128. $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
  129. _WinAPI_ReleaseStream($pStream)
  130. _GDIPlus_ImageDispose($hImage)
  131. _GDIPlus_Shutdown()
  132. ;;---------- End 插入二進制圖片 ----------


  133. ;; --- 主 UI ---
  134. Opt("GUIOnEventMode", 1) ;;使用事件模式

  135. Local $Form1 = GUICreate($Title & ' v' & $ver, $GUIWidth, $GUILength, -1, -1, -1, 0x00000010)
  136. GUISetFont($fontsize, $font_xing, $font_var, $font_name, $Form1, $font_quality) ;;全局字型
  137. GUISetBkColor(0xFFFFFF) ; 將變更背景色彩
  138. GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")

  139. GUISetState(@SW_LOCK, $Form1);;鎖定

  140. Global $nItem1 = CreateSystemMenuItem($Form1, "關於本軟體(&A)", -1, False, 0)
  141. ;~ 移除菜單
  142. RemoveMenu($Form1, $SC_SIZE)
  143. RemoveMenu($Form1, $SC_MAXIMIZE)
  144. RemoveMenu($Form1, $SC_RESTORE)


  145. GUICtrlCreateLabel('', 0, 5, $GUIWidth, 1)
  146. GUICtrlSetBkColor (-1, 0xC80028)

  147. GUICtrlCreateLabel($Title, 10, 8, 130, 30)
  148. GUICtrlSetFont(-1, 15, 900)
  149. GUICtrlSetState(-1, $GUI_FOCUS) ;;預設光標所在位置

  150. GUICtrlCreateLabel('youtube-dl 版本:', 508, 18, 135, 20)
  151. GuiCtrlSetFont(-1, 9)
  152. Global $ytdVer = GUICtrlCreateLabel(FileGetVersion($ytdl, $FV_FILEVERSION),637, 18, 77, 20)
  153. GuiCtrlSetFont(-1, 8, -1, 4) ; underlined
  154. GuiCtrlSetColor(-1, 0x009060)
  155. GuiCtrlSetCursor(-1, 0)
  156. GUICtrlSetTip(-1, '點擊以檢查 youtube-dl 更新', '', 0, 0)
  157. GUICtrlSetOnEvent(-1, "_ytdv")

  158. GUICtrlCreateLabel('', 0, 40, $GUIWidth, 1)
  159. GUICtrlSetBkColor (-1, 0xC80028)

  160. GUICtrlCreateLabel('影片網址:', 10, 50, 90, 30)
  161. Global $urlPath = GUICtrlCreateEdit($DEFAULTINPUTDATA_1, 100, 50, 610, 100, BitOR($ES_WANTRETURN,$WS_VSCROLL))
  162. GUICtrlSetLimit(-1, 999999999)
  163. GUICtrlSetBkColor (-1, 0x1B1D1E)
  164. GUICtrlSetColor (-1, $NONEAACTIVECOLOR)
  165. GUICtrlSetFont(-1, 9)


  166. GUICtrlCreateLabel('儲存位置:', 10, 160, 90, 30)
  167. Global $savePath = GUICtrlCreateInput('', 100, 160, 490, 23, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
  168. GUICtrlSetFont(-1, 9)
  169. GUICtrlSetData(-1, _IniRead($cfg, 'setting', 'savePath', @ScriptDir, 0 + 256))
  170. Global $viewBtn = GUICtrlCreateButton('...', 600, 157, 50, 28)
  171. GUICtrlSetTip(-1, '選擇儲存路徑', '', 0, 0)
  172. GUICtrlSetOnEvent(-1, "_savePath")
  173. GUICtrlSetBkColor (-1, 0xC80028)
  174. GUICtrlSetColor (-1, 0xFFFFFF)
  175. GUICtrlSetFont(-1, 10, 600)
  176. Global $openBtn = GUICtrlCreateButton('開啟', 660, 157, 50, 28)
  177. GUICtrlSetTip(-1, '開啟儲存路徑', '', 0, 0)
  178. GUICtrlSetOnEvent(-1, "_openPath")
  179. GUICtrlSetBkColor (-1, 0xC80028)
  180. GUICtrlSetColor (-1, 0xFFFFFF)
  181. GUICtrlSetFont(-1, 10, 600)

  182. Global $dMode1 = GUICtrlCreateRadio('下載影片', 10, 200, 100, 20)
  183. GUICtrlSetOnEvent(-1, "_dmode1")

  184. GUICtrlCreateLabel('影片畫質:', 30, 242, 90, 30)
  185. Global $resolution  = GUICtrlCreateCombo('', 120, 240, 80, 23, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
  186. GUICtrlSetData(-1, 'best|1080p|720p|560p|480p|360p|240p|144p', _IniRead($cfg, 'video', 'resolution', 'best', 0 + 256))
  187. GUICtrlSetFont(-1, 10)
  188. GUICtrlSetOnEvent(-1, "_cfg1")

  189. GUICtrlCreateLabel('影片格式:', 30, 282, 90, 30)
  190. Global $format = GUICtrlCreateCombo('', 120, 280, 80, 23, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
  191. GUICtrlSetData(-1, 'mkv|mp4', _IniRead($cfg, 'video', 'format', 'mkv', 0 + 256))
  192. GUICtrlSetFont(-1, 10)
  193. GUICtrlSetOnEvent(-1, "_cfg2")

  194. GUICtrlCreateLabel('', 215, 200, 1, 110)
  195. GUICtrlSetBkColor (-1, 0xC80028)

  196. Global $dMode2 = GUICtrlCreateRadio('下載音樂', 230, 200, 100, 20)
  197. GUICtrlSetOnEvent(-1, "_dmode2")

  198. GUICtrlCreateLabel('音樂格式:', 260, 242, 90, 30)
  199. Global $mFormat = GUICtrlCreateCombo('', 350, 240, 80, 23, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
  200. GUICtrlSetData(-1, 'best|flac|wav|opus|aac|mp3|m4a|vorbis', _IniRead($cfg, 'music', 'format', 'best', 0 + 256))
  201. GUICtrlSetFont(-1, 10)
  202. GUICtrlSetOnEvent(-1, "_cfg3")

  203. Global $mCover = GUICtrlCreateCheckbox('專輯封面', 260, 280, 90, 30)
  204. GUICtrlSetFont(-1, 9)
  205. GUICtrlSetColor(-1, 0x114c93) ;;設定字體顏色
  206. DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($mCover), "wstr", "", "wstr", "")
  207. GUICtrlSetOnEvent(-1, "_cfg4")
  208. Global $mData = GUICtrlCreateCheckbox('影片資訊', 350, 280, 90, 30)
  209. GUICtrlSetFont(-1, 9)
  210. GUICtrlSetColor(-1, 0x114c93) ;;設定字體顏色
  211. DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($mData), "wstr", "", "wstr", "")
  212. GUICtrlSetOnEvent(-1, "_cfg5")

  213. GUICtrlCreateGroup('YouTube 專輯設定', 450, 200, 260, 110)
  214. GUICtrlCreateLabel('指定下載範圍:', 470, 237, 95, 20)
  215. GUICtrlSetFont(-1, 8)
  216. Global $range = GUICtrlCreateInput('', 565, 235, 125, 20)
  217. GUICtrlSetFont(-1, 8)
  218. GUICtrlSetBkColor (-1, 0xECF5FF)
  219. GUICtrlSetTip(-1, '例如:1-3 或 1,3-5,7,9-12,15 或 10', '', 0, 0)
  220. GUICtrlCreateLabel('若要指定不同專輯的下載範圍,' & @CRLF & '請單一網址分次設定與下載。', 470, 265, 220, 37)
  221. GUICtrlSetFont(-1, 8)
  222. GUICtrlCreateGroup('',-99,-99,1,1)

  223. Global $applyBtn = GUICtrlCreateButton('執 行', 10, 335, 100, 35)
  224. GUICtrlSetBkColor (-1, 0xC80028)
  225. GUICtrlSetColor (-1, 0xFFFFFF)
  226. GUICtrlSetOnEvent(-1, "_apply")
  227. GUICtrlSetFont(-1, 10, 600)

  228. Global $setting = GUICtrlCreateLabel('設定',130, 350, 35, 20)
  229. GuiCtrlSetFont(-1, 10, -1, 4) ; underlined
  230. GuiCtrlSetColor(-1, 0x114c93)
  231. GuiCtrlSetCursor(-1, 0)
  232. GUICtrlSetOnEvent(-1, "_setting")

  233. Global $about = GUICtrlCreateLabel('關於本程式',180, 350, 87, 20)
  234. GuiCtrlSetFont(-1, 10, -1, 4) ; underlined
  235. GuiCtrlSetColor(-1, 0x114c93)
  236. GuiCtrlSetCursor(-1, 0)
  237. GUICtrlSetOnEvent(-1, "_about")

  238. GUICtrlCreateLabel('Power By MicroDuo', $GUIWidth-200, 350, 190, 20, $SS_CENTER)
  239. GUICtrlSetOnEvent(-1, "_OpenSite1")
  240. GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT);;控件透明
  241. GUICtrlSetFont(-1, 11, 700, 2, $font_name)
  242. GUICtrlSetColor(-1, 0xC80028)
  243. GuiCtrlSetCursor(-1, 0)

  244. GUIRegisterMsg($WM_SYSCOMMAND, "WM_SYSCOMMAND") ;;關於


  245. ;; --- 判斷 先前的 下載模式 ---
  246. If _IniRead($cfg, 'setting', 'mode', 'video', 0 + 256) = 'video' Then
  247.         GUICtrlSetState($dMode1, $GUI_CHECKED)
  248.         _dmode1()
  249. ElseIf _IniRead($cfg, 'setting', 'mode', 'video', 0 + 256) = 'music' Then
  250.         GUICtrlSetState($dMode2, $GUI_CHECKED)
  251.         _dmode2()
  252. Else
  253.         GUICtrlSetState($dMode1, $GUI_CHECKED)
  254.         _dmode1()
  255. EndIf

  256. ;; --- 判斷 專輯封面 和 影片資訊 是否勾選 ---
  257. If _IniRead($cfg, 'music', 'cover', '1', 0 + 256) = '1' Then GUICtrlSetState($mCover, $GUI_CHECKED)
  258. If _IniRead($cfg, 'music', 'data', '1', 0 + 256) = '1' Then GUICtrlSetState($mData, $GUI_CHECKED)


  259. GUISetState(@SW_SHOW)


  260. _Start_Topping()
  261. GUISetState(@SW_UNLOCK, $Form1);;解除鎖定


  262. While 1
  263.         _CheckInput($Form1, $urlPath, $wkey, $DEFAULTINPUTDATA_1, $MARK_1) ;;網址欄浮水印
  264.         _ReduceMemory(@AutoItPID) ;;記憶體優化
  265.         Sleep(150)
  266. WEnd


  267. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  268. ;;|                                基本函數                                |
  269. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  270. Func _Exit() ;;關閉本程序
  271.         If WinExists("關於 " & $Title & ' v' & $ver) Then
  272.         GUIDelete($About_gui)
  273.         Return 0
  274.         ElseIf WinExists($Title & " 設定") Then
  275.                 _IniWrite($cfg, 'sub_setting', 'lang_sub', GUICtrlRead($sub_Lang), 256)
  276.         GUIDelete($setting_gui)
  277.         Return 0
  278.         Else
  279.                 If MsgBox(262144+36, "", "確定要退出嗎?") = 6 Then
  280.                         Exit
  281.                 EndIf
  282.         EndIf
  283. EndFunc

  284. Func _ReduceMemory($i_PID = -1) ;;整理記憶體
  285.         #CS ------ Function 來(修改)源 -------------------------
  286.                 作者:eaglelin(綠色風's Blog)
  287.                 網址:[url=http://www.jianyiit.com/post-277.html]http://www.jianyiit.com/post-277.html[/url]
  288.         #CE -------------------------------------------------------------------
  289.         Local $ai_Return
  290.         If $i_PID <> -1 Then
  291.                 Local $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $i_PID)
  292.                 $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', $ai_Handle[0])
  293.                 DllCall('kernel32.dll', 'int', 'CloseHandle', 'int', $ai_Handle[0])
  294.         Else
  295.                 $ai_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1)
  296.         EndIf
  297.         Return $ai_Return[0]
  298. EndFunc   ;==>_ReduceMemory


  299. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  300. ;;|                                核心函數                                |
  301. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  302. Func _config_create() ;;第一次使用,建立cfg設定檔
  303.         _IniWrite($cfg, 'setting', 'savePath', $dfPath, 256) ;;儲存路徑
  304.         _IniWrite($cfg, 'setting', 'mode', 'video', 256) ;;預設下載影片
  305.         _IniWrite($cfg, 'setting', 'Topping', '1', 256) ;;預設置頂

  306.         _IniWrite($cfg, 'video', 'resolution', 'best', 256) ;;畫質預設 best(自動選擇)
  307.         _IniWrite($cfg, 'video', 'format', 'mkv', 256) ;;影片格式

  308.         _IniWrite($cfg, 'music', 'format', 'best', 256) ;;音樂品質
  309.         _IniWrite($cfg, 'music', 'cover', '1', 256) ;;專輯封面
  310.         _IniWrite($cfg, 'music', 'data', '1', 256) ;;影片資訊

  311.         _IniWrite($cfg, 'sub_setting', 'download_sub', '1', 256) ;;預設下載字幕
  312.         _IniWrite($cfg, 'sub_setting', 'download_all_sub', '4', 256) ;;全部字幕(不選擇)
  313.         _IniWrite($cfg, 'sub_setting', 'specific_Sub', '1', 256) ;;預設下載指定字幕
  314.         _IniWrite($cfg, 'sub_setting', 'lang_sub', 'zh,zh-TW,zh-CN,ja,en', 256) ;;預設字幕(中日英)
  315.         _IniWrite($cfg, 'sub_setting', 'merge_Sub', '4', 256) ;;預設不內封字幕到影片中
  316.         _IniWrite($cfg, 'sub_setting', 'filename_rule', '%(uploader)s\%(playlist)s_%(title)s_%(resolution)s.%(ext)s', 256) ;;命名規則,預設:儲存目錄\上傳者\播放清單_影片標題_解析度.副檔名
  317.         _IniWrite($cfg, 'sub_setting', 'sub_format', 'srt', 256) ;;字幕格式預設:srt
  318. EndFunc


  319. Func _savePath() ;;儲存路徑
  320.     Local $MyDocsFolder = _IniRead($cfg, 'setting', 'savePath', @ScriptDir, 0 + 256)
  321.     Local $path = FileSelectFolder("選擇儲存位置", $MyDocsFolder, 1, '', $Form1)
  322.     If $path = '' Then Return

  323.     GUICtrlSetData($savePath, $path)
  324.     _IniWrite($cfg, 'setting', 'savePath', $path, 256)
  325.     Return
  326. EndFunc

  327. Func _openPath() ;;開啟路徑
  328.         Local $spath = GUICtrlRead($savePath)
  329.         Run("Explorer.exe " & $spath)
  330. EndFunc

  331. Func _apply() ;;執行
  332.         GUICtrlSetState($applyBtn, $GUI_DISABLE)

  333.         Local $sUrl = GUICtrlRead($urlPath)
  334.         Local $url = StringRegExp($sUrl, '[^\r\n]+', 3)
  335.         Local $rRange = GUICtrlRead($range)
  336.         Local $i

  337.         ;;排除浮水印
  338.         If $sUrl = $wkey Then
  339.                 GUICtrlSetState($applyBtn, @SW_ENABLE)
  340.                 Return
  341.         EndIf

  342.         ;;如有專輯,檢查指定下載範圍正確性
  343.         For $i = 0 To UBound($url) - 1
  344.                 If StringInStr($url[$i], '&list=') <> 0 And $rRange <> '' Then
  345.                         If StringRegExp($rRange, '[^0-9,-]', 0) <> 0 Then ;;排除 < 數字、-、, > 以外的字符
  346.                                 MsgBox(262144+48, '範圍錯誤', '專輯指定下載範圍設定錯誤,' & @CRLF & '請確認格式後重試。', 5, $Form1)
  347.                                 GUICtrlSetState($range, $GUI_FOCUS)
  348.                                 GUICtrlSetState($applyBtn, @SW_ENABLE)
  349.                                 Return
  350.                         EndIf
  351.                 EndIf
  352.         Next

  353.         ;;將網址分割進行下載
  354.         For $i = 0 To UBound($url) - 1
  355.                 _download($url[$i])
  356.         Next

  357.         ;;執行完畢,清空網址欄位
  358.         ;;GUICtrlSetData($urlPath, '')

  359.         GUICtrlSetState($applyBtn, @SW_ENABLE)
  360.         Return
  361. EndFunc

  362. ;;主下載函數
  363. Func _download($url)
  364.         Local $mode1 = GUICtrlRead($dMode1)
  365.         Local $mode2 = GUICtrlRead($dMode2)
  366.         Local $rResolution = GUICtrlRead($resolution)
  367.         Local $rMformat = GUICtrlRead($mFormat)
  368.         Local $rFormat = GUICtrlRead($format)
  369.         Local $rMcover = GUICtrlRead($mCover)
  370.         Local $rMdata = GUICtrlRead($mData)
  371.         Local $rRange = GUICtrlRead($range)
  372.         Local $merge_flag = _IniRead($cfg, 'sub_setting', 'merge_Sub', '4', 0 + 256)
  373.         Local $dl_sub_flag = _IniRead($cfg, 'sub_setting', 'download_sub', '1', 0 + 256)
  374.         Local $all_sub_flag = _IniRead($cfg, 'sub_setting', 'download_all_sub', '4', 0 + 256)
  375.         Local $specific_sub_flag = _IniRead($cfg, 'sub_setting', 'specific_Sub', '1', 0 + 256)
  376.         Local $lang_sub_flag = _IniRead($cfg, 'sub_setting', 'lang_sub', 'zh,zh-TW,zh-CN,ja,en', 0 + 256)
  377.         Local $sQuality
  378.         Local $sub_lang, $sub_merge
  379.         Local $sub_format = _IniRead($cfg, 'sub_setting', 'sub_format', 'srt', 0 + 256)
  380.         Local $sub_convert = ' --convert-subs ' & $sub_format

  381.         If $merge_flag = 1 Then $sub_merge = ' --embed-sub'
  382.         If $merge_flag <> 1 Then $sub_merge = Null

  383.         If $dl_sub_flag = 1 Then
  384.                 If $all_sub_flag = 4 And $specific_sub_flag = 1 Then
  385.                         $sub_lang = ' --sub-lang ' & $lang_sub_flag & ' --write-sub'
  386.                 ElseIf $all_sub_flag = 1 And $specific_sub_flag = 4 Then
  387.                         $sub_lang = ' --all-subs --write-sub'
  388.                 Else
  389.                         $sub_lang = ' --all-subs --write-sub'
  390.                 EndIf
  391.         Else
  392.                 $sub_lang = Null
  393.         EndIf

  394.         If StringInStr($url, '&list=') = 0 Or $rRange = '' Then ;;不是專輯
  395.                 If $mode1 = 1 And $mode2 = 4 Then ;;下載影片
  396.                         If $rResolution = 'best' Then ;;最佳畫質
  397.                                 _ytdl('-f 303+251/bestvideo+bestaudio/best --merge-output-format ' & $rFormat & $sub_lang & $sub_convert & $sub_merge & ' "' & $url & '"')
  398.                         Else ;;指定畫質
  399.                                 $sQuality = StringRegExp($rResolution, '(?m)(.*?)p', 3) ;;取得畫質(1080p --> 1080)
  400.                                 _ytdl('-f "bestvideo[height<=' & $sQuality[0] & ']+bestaudio/best[height<=' & $sQuality[0] &']" --merge-output-format ' & $rFormat & $sub_lang & $sub_convert & $sub_merge & ' "' & $url & '"')
  401.                         EndIf
  402.                 Else ;;下載音樂
  403.                         If $rMcover = 1 And $rMdata = 1 Then
  404.                                 _ytdl('-x --audio-format ' & $rMformat & ' --embed-thumbnail --add-metadata' & $sub_lang & ' "' & $url & '"')
  405.                         ElseIf $rMcover = 1 And $rMdata = 4 Then
  406.                                 _ytdl('-x --audio-format ' & $rMformat & ' --embed-thumbnail' & $sub_lang & $sub_convert & ' "' & $url & '"')
  407.                         ElseIf $rMcover = 4 And $rMdata = 1 Then
  408.                                 _ytdl('-x --audio-format ' & $rMformat & ' --add-metadata' & $sub_lang & $sub_convert & ' "' & $url & '"')
  409.                         Else
  410.                                 _ytdl('-x --audio-format ' & $rMformat & ' --embed-thumbnail --add-metadata' & $sub_lang & $sub_convert & ' "' & $url & '"')
  411.                         EndIf
  412.                 EndIf
  413.         Else ;;是專輯
  414.                 If $mode1 = 1 And $mode2 = 4 Then ;;下載影片
  415.                                 If $rResolution = 'best' Then ;;最佳畫質
  416.                                         _ytdl('-f 303+251/bestvideo+bestaudio/best --merge-output-format ' & $rFormat & $sub_lang & $sub_convert & $sub_merge & ' --playlist-items ' & $rRange & ' "' & $url & '"')
  417.                                 Else ;;指定畫質
  418.                                         $sQuality = StringRegExp($rResolution, '(?m)(.*?)p', 3) ;;取得畫質(1080p --> 1080)
  419.                                         _ytdl('-f "bestvideo[height<=' & $sQuality[0] & ']+bestaudio/best[height<=' & $sQuality[0] &']" --merge-output-format ' & $rFormat & $sub_lang & $sub_convert & $sub_merge & ' --playlist-items ' & $rRange & ' "' & $url & '"')
  420.                                 EndIf
  421.                 Else ;;下載音樂
  422.                         If $rMcover = 1 And $rMdata = 1 Then
  423.                                 _ytdl('-x --audio-format ' & $rMformat & ' --embed-thumbnail --add-metadata' & $sub_lang & $sub_convert & ' --playlist-items ' & $rRange & ' "' & $url & '"')
  424.                         ElseIf $rMcover = 1 And $rMdata = 4 Then
  425.                                 _ytdl('-x --audio-format ' & $rMformat & ' --embed-thumbnail' & $sub_lang & $sub_convert & ' --playlist-items ' & $rRange & ' "' & $url & '"')
  426.                         ElseIf $rMcover = 4 And $rMdata = 1 Then
  427.                                 _ytdl('-x --audio-format ' & $rMformat & ' --add-metadata' & $sub_lang & $sub_convert & ' --playlist-items ' & $rRange & ' "' & $url & '"')
  428.                         Else
  429.                                 _ytdl('-x --audio-format ' & $rMformat & ' --embed-thumbnail --add-metadata' & $sub_lang & $sub_convert & ' --playlist-items ' & $rRange & ' "' & $url & '"')
  430.                         EndIf
  431.                 EndIf
  432.         EndIf
  433. EndFunc

  434. Func _ytdl($parameter) ;;youtube-dl命令
  435.         Local $path = GUICtrlRead($savePath)
  436.         Local $fileName = _IniRead($cfg, 'sub_setting', 'filename_rule', '%(uploader)s\%(playlist)s_%(title)s_%(resolution)s.%(ext)s', 0 + 256)
  437.         ShellExecute($ytdl, '-i -o "' & $path & '\' & $fileName & '" ' & $parameter, '', $SHEX_OPEN, @SW_MINIMIZE)
  438. EndFunc

  439. ;;下載模式切換
  440. Func _dmode1() ;;下載影片
  441.         _IniWrite($cfg, 'setting', 'mode', 'video', 256)
  442.         GUICtrlSetState($resolution, @SW_ENABLE)
  443.         GUICtrlSetState($format, @SW_ENABLE)
  444.         GUICtrlSetState($mFormat, $GUI_DISABLE)
  445.         GUICtrlSetState($mCover, $GUI_DISABLE)
  446.         GUICtrlSetState($mData, $GUI_DISABLE)
  447. EndFunc

  448. Func _dmode2() ;;下載音樂
  449.         _IniWrite($cfg, 'setting', 'mode', 'music', 256)
  450.         GUICtrlSetState($resolution, $GUI_DISABLE)
  451.         GUICtrlSetState($format, $GUI_DISABLE)
  452.         GUICtrlSetState($mFormat, @SW_ENABLE)
  453.         GUICtrlSetState($mCover, @SW_ENABLE)
  454.         GUICtrlSetState($mData, @SW_ENABLE)
  455. EndFunc


  456. ;;組態檔更新
  457. Func _cfg1()
  458.         _IniWrite($cfg, 'video', 'resolution', GUICtrlRead($resolution), 256)
  459. EndFunc

  460. Func _cfg2()
  461.         _IniWrite($cfg, 'video', 'format', GUICtrlRead($format), 256)
  462. EndFunc

  463. Func _cfg3()
  464.         _IniWrite($cfg, 'music', 'format', GUICtrlRead($mFormat), 256)
  465. EndFunc

  466. Func _cfg4()
  467.         _IniWrite($cfg, 'music', 'cover', GUICtrlRead($mCover), 256)
  468. EndFunc

  469. Func _cfg5()
  470.         _IniWrite($cfg, 'music', 'data', GUICtrlRead($mData), 256)
  471. EndFunc


  472. Func _ytdv() ;;檢查 youtube-dl 更新
  473.         If MsgBox(262144+36, "", "確定要檢查 youtube-dl 版本並更新嗎?") = 6 Then
  474.                 ShellExecute($ytdl, '-U', '', $SHEX_OPEN, @SW_MINIMIZE)
  475.         EndIf
  476.         GUICtrlSetData($ytdVer, FileGetVersion($ytdl, $FV_FILEVERSION))
  477.         Return
  478. EndFunc


  479. ;;字幕
  480. Func _sub_format()
  481.         Local $sVal = GUICtrlRead($sub_format)
  482.         _IniWrite($cfg, 'sub_setting', 'sub_format', $sVal, 256)
  483. EndFunc

  484. Func _download_sub_setting()
  485.         Local $status = GUICtrlRead($sSub)
  486.         _IniWrite($cfg, 'sub_setting', 'download_sub', $status, 256)

  487.         If $status = 1 Then
  488.                 GUICtrlSetState($all_Sub, @SW_ENABLE)
  489.                 GUICtrlSetState($sSub, @SW_ENABLE)
  490.                 GUICtrlSetState($specific_Sub, @SW_ENABLE)
  491.                 If GUICtrlRead($all_Sub) = 4 Then GUICtrlSetState($sub_Lang, @SW_ENABLE)
  492.                 GUICtrlSetState($mSub, @SW_ENABLE)
  493.         Else ;;4
  494.                 GUICtrlSetState($all_Sub, $GUI_DISABLE)
  495.                 GUICtrlSetState($sSub, $GUI_UNCHECKED)
  496.                 GUICtrlSetState($specific_Sub, $GUI_DISABLE)
  497.                 GUICtrlSetState($sub_Lang, $GUI_DISABLE)
  498.                 GUICtrlSetState($mSub, $GUI_DISABLE)
  499.         EndIf
  500. EndFunc

  501. Func _sub_item_1() ;;下載所有字幕
  502.         Local $status = GUICtrlRead($all_Sub)
  503.         _IniWrite($cfg, 'sub_setting', 'download_all_sub', $status, 256)
  504.         _IniWrite($cfg, 'sub_setting', 'specific_Sub', 4, 256)
  505.         GUICtrlSetState($sub_Lang, $GUI_DISABLE)
  506. EndFunc

  507. Func _sub_item_2()
  508.         Local $status = GUICtrlRead($specific_Sub)
  509.         _IniWrite($cfg, 'sub_setting', 'download_all_sub', '4', 256)
  510.         _IniWrite($cfg, 'sub_setting', 'specific_Sub', $status, 256)
  511.         GUICtrlSetState($sub_Lang, @SW_ENABLE)
  512. EndFunc

  513. Func _merge_sub_setting()
  514.         Local $status = GUICtrlRead($mSub)
  515.         _IniWrite($cfg, 'sub_setting', 'merge_Sub', $status, 256)
  516. EndFunc


  517. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  518. ;;|                                其他函數                                |
  519. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  520. Func _OpenSite($siteUrl) ;;修改註冊表
  521.         Run(@ComSpec & " /c " & 'start ' & $siteUrl, "", @SW_HIDE)
  522. EndFunc

  523. Func _OpenSite1() ;;修改註冊表
  524.         Local $url = 'https://www.microduo.tw/'
  525.         _OpenSite($url)
  526. EndFunc

  527. Func _OpenSite2()
  528.         Local $url = 'http://autoit8.com'
  529.         _OpenSite($url)
  530. EndFunc

  531. Func _OpenSite3()
  532.         Local $url = 'https://youtube-dl.org/'
  533.         _OpenSite($url)
  534. EndFunc

  535. Func _OpenSite4()
  536.         Local $url = 'https://ffmpeg.org/'
  537.         _OpenSite($url)
  538. EndFunc

  539. Func _OpenSite0()
  540.         Local $item
  541.         $i = Random(1,10,1)

  542.         If $i = 1 Then $item = '閃耀好心情!'
  543.         If $i = 2 Then $item = '明天也要好好努力呢~'
  544.         If $i = 3 Then $item = '你好嗎 =D'
  545.         If $i = 4 Then $item = '永不停歇!衝!衝!衝!'
  546.         If $i = 5 Then $item = '要一直保有微笑喔 :)'
  547.         If $i = 6 Then $item = '今天 你宅了沒(≧y≦*)'
  548.         If $i = 7 Then $item = '今天是:' & @YEAR & '年' & @MON & '月' & @MDAY & '日'
  549.         If $i = 8 Then $item = 'v(・∀・*)'
  550.         If $i = 9 Then $item = '現在時間:' & @HOUR & '點' & @MIN & '分'
  551.         If $i = 10 Then $item = '還玩! 加班修羅場正在等你 (´・ω・`)'

  552.         MsgBox(262144,'ヾ(・ω・o)',$item,5)
  553. EndFunc


  554. ;;輸入框浮水印
  555. Func _CheckInput($hWnd, $ID, $InputDefText, ByRef $DefaultInputData, ByRef $Mark)
  556.         If $Mark = 0 And _IsFocused($hWnd, $ID) And $DefaultInputData = $InputDefText Then
  557.                         $Mark = 1
  558.                         GUICtrlSetData($ID, "")
  559.                         GUICtrlSetColor($ID, $NONEAACTIVECOLOR)
  560.                         $DefaultInputData = ""
  561.         ElseIf $Mark = 1 And Not _IsFocused($hWnd, $ID) And $DefaultInputData = "" And GUICtrlRead($ID) = "" Then
  562.                         $Mark = 0
  563.                         $DefaultInputData = $InputDefText
  564.                         GUICtrlSetData($ID, $DefaultInputData)
  565.                         GUICtrlSetColor($ID, $NONEAACTIVECOLOR)
  566.         EndIf
  567. EndFunc   ;==>_CheckInput

  568. Func _IsFocused($hWnd, $nCID)
  569.         Return ControlGetHandle($hWnd, '', $nCID) = ControlGetHandle($hWnd, '', ControlGetFocus($hWnd))
  570. EndFunc   ;==>_IsFocused

  571. Func WM_NCHITTEST($hWnd, $iMsg, $wParam, $lParam)
  572. If _WinAPI_DefWindowProc($hWnd, $iMsg, $wParam, $lParam) = $HTCLIENT Then
  573.         Return $HTCAPTION
  574. EndIf
  575. Return $GUI_RUNDEFMSG
  576. EndFunc   ;==>WM_NCHITTEST


  577. ;;關於窗口
  578. Func _about()
  579.         Local $textaboutEdit

  580.         If BitAND(WinGetState($About_gui, ""), 2) And IsHWnd($About_gui) Then
  581.                         GUIDelete($About_gui)
  582.                         Return 0
  583.         EndIf

  584.         If BitAND(WinGetState($Form1), 2) Then
  585.                         $About_gui = GUICreate("關於 " & $Title & ' v' & $ver, 670, 350, 25, -45, -1, 0x00000040 + 0x00000010 + 0x00000080, $Form1)
  586.                         GUISetFont($fontsize-2, $font_xing, $font_var, $font_name, $About_gui, $font_quality) ;;全局字型
  587.                         ;;GUISetBkColor(0xFFF0F5)
  588.         Else
  589.                         $About_gui = GUICreate("關於 " & $Title & ' v' & $ver, 670, 350, 25, -45, -1, 0x00000040 + 0x00000010 + 0x00000080)
  590.                         GUISetFont($fontsize-2, $font_xing, $font_var, $font_name, $About_gui, $font_quality) ;;全局字型
  591.                         ;;GUISetBkColor(0xFFF0F5)
  592.         EndIf

  593.         GUISetOnEvent(-3, "main")

  594.         GUISetState(@SW_LOCK, $About_gui);;鎖定

  595.         ;;----------Start 插入圖片Logo ----------
  596.         ;;使用二進制圖片
  597.         Local $Pic = GUICtrlCreatePic('', 30, 15, 100, 100, BitOR($SS_NOTIFY,$WS_GROUP)) ;;Logo圖片
  598.         GUICtrlSetState(-1, $GUI_FOCUS) ;;預設光標所在位置
  599.         $hPic = GUICtrlGetHandle($Pic)
  600.         ; 設置位圖到控件
  601.         _SendMessage($hPic, $STM_SETIMAGE, 0, $hBitmap)
  602.         $hObj = _SendMessage($hPic, $STM_GETIMAGE)
  603.         GuiCtrlSetCursor(-1, 0)
  604.         GUICtrlSetOnEvent(-1, "_OpenSite0")
  605.         ;;----------End 插入圖片Logo ----------

  606.         Local $guitext1 = GUICtrlCreateLabel("軟體名稱:" & $Title, 160, 10, 390, 30)
  607.         GUICtrlSetFont(-1, 14, 700)
  608.         ;;GUICtrlSetColor(-1, 0x800080)
  609.         Local $guitext2 = GUICtrlCreateLabel("作者:" & $Author, 160, 40, 390, 20)
  610.         GUICtrlSetFont(-1, 8, 300)
  611.         GUICtrlSetColor(-1, 0x808080)
  612.         Local $guitext3 = GUICtrlCreateLabel("版本:" & $ver, 160, 60, 390, 20)
  613.         GUICtrlSetFont(-1, 8, 300)
  614.         GUICtrlSetColor(-1, 0x808080)
  615.         GUICtrlCreateLabel($Copyright, 160, 80, 505, 20)
  616.         GUICtrlSetFont(-1, 8, 300)
  617.         GUICtrlSetColor(-1, 0x808080)
  618.         Local $WebSite1 = GUICtrlCreateLabel('微剋多', 160, 110, 45, 20)
  619.         GuiCtrlSetFont(-1, 8, -1, 4) ; underlined
  620.         GuiCtrlSetColor(-1, 0x0000ff)
  621.         GuiCtrlSetCursor(-1, 0)
  622.         GUICtrlSetOnEvent(-1, "_OpenSite1")
  623.         Local $WebSite2 = GUICtrlCreateLabel('Autoit CN', 255, 110, 63, 20)
  624.         GuiCtrlSetFont(-1, 8, -1, 4) ; underlined
  625.         GuiCtrlSetColor(-1, 0x0000ff)
  626.         GuiCtrlSetCursor(-1, 0)
  627.         GUICtrlSetOnEvent(-1, "_OpenSite2")
  628.         Local $WebSite3 = GUICtrlCreateLabel('youtube-dl 官網', 368, 110, 100, 20)
  629.         GuiCtrlSetFont(-1, 8, -1, 4) ; underlined
  630.         GuiCtrlSetColor(-1, 0x0000ff)
  631.         GuiCtrlSetCursor(-1, 0)
  632.         GUICtrlSetOnEvent(-1, "_OpenSite3")
  633.         Local $WebSite4 = GUICtrlCreateLabel('ffmpeg 官網', 518, 110, 75, 20)
  634.         GuiCtrlSetFont(-1, 8, -1, 4) ; underlined
  635.         GuiCtrlSetColor(-1, 0x0000ff)
  636.         GuiCtrlSetCursor(-1, 0)
  637.         GUICtrlSetOnEvent(-1, "_OpenSite4")

  638.         GUICtrlCreateEdit('',30, 140, 670 - 60, 520 - 140 - 15 - 170, BitOR($ES_WANTRETURN,$WS_VSCROLL,$ES_READONLY))
  639.         GUICtrlSetFont(-1, 9, 300)
  640.         GuiCtrlSetBKColor(-1, 0xFFFFFF)

  641.         ;;other
  642.         $textaboutEdit &= '使用說明:' & @CRLF
  643.         $textaboutEdit &= $text
  644.         $textaboutEdit &= '' & @CRLF & @CRLF
  645.         $textaboutEdit &= '本軟體使用 AutoIt 3 進行開發,主體功能依賴 youtube-dl。' & @CRLF
  646.         $textaboutEdit &= '=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=' & @CRLF
  647.         $textaboutEdit &= '本軟體特點:' & @CRLF
  648.         $textaboutEdit &= '    1.化繁為簡,易於操作。' & @CRLF
  649.         $textaboutEdit &= '    2.支援多個網址同時下載。' & @CRLF
  650.         $textaboutEdit &= '    3.省去命令行使用上的困難,視覺化操作。' & @CRLF
  651.         $textaboutEdit &= '' & @CRLF & @CRLF
  652.         $textaboutEdit &= '版本歷史:' & @CRLF
  653.         $textaboutEdit &= '    1.0.0.0 2020.12.25' & @CRLF
  654.         $textaboutEdit &= '        -- 初版'  & @CRLF
  655.         $textaboutEdit &= '' & @CRLF & @CRLF

  656.         ;;Unlicense
  657.         $textaboutEdit &= 'This is free and unencumbered software released into the public domain.' & @CRLF & @CRLF
  658.         $textaboutEdit &= 'Anyone is free to copy, modify, publish, use, compile, sell, or' & @CRLF
  659.         $textaboutEdit &= 'distribute this software, either in source code form or as a compiled' & @CRLF
  660.         $textaboutEdit &= 'binary, for any purpose, commercial or non-commercial, and by any' & @CRLF
  661.         $textaboutEdit &= 'means.' & @CRLF & @CRLF
  662.         $textaboutEdit &= 'In jurisdictions that recognize copyright laws, the author or authors' & @CRLF
  663.         $textaboutEdit &= 'of this software dedicate any and all copyright interest in the' & @CRLF
  664.         $textaboutEdit &= 'software to the public domain. We make this dedication for the benefit' & @CRLF
  665.         $textaboutEdit &= 'of the public at large and to the detriment of our heirs and' & @CRLF
  666.         $textaboutEdit &= 'successors. We intend this dedication to be an overt act of' & @CRLF
  667.         $textaboutEdit &= 'relinquishment in perpetuity of all present and future rights to this' & @CRLF
  668.         $textaboutEdit &= 'software under copyright law.' & @CRLF & @CRLF
  669.         $textaboutEdit &= 'THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,' & @CRLF
  670.         $textaboutEdit &= 'EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF' & @CRLF
  671.         $textaboutEdit &= 'MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.' & @CRLF
  672.         $textaboutEdit &= 'IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR' & @CRLF
  673.         $textaboutEdit &= 'OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,' & @CRLF
  674.         $textaboutEdit &= 'ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR' & @CRLF
  675.         $textaboutEdit &= 'OTHER DEALINGS IN THE SOFTWARE.' & @CRLF & @CRLF
  676.         $textaboutEdit &= 'For more information, please refer to <[url=http://unlicense.org/]http://unlicense.org/[/url]>'

  677.         GUICtrlSetData(-1, $textaboutEdit)
  678.         GUICtrlCreateLabel("", 0, 0, 670, 220, 0x04000000, 0x00100000)
  679.         GUISetState(@SW_UNLOCK, $About_gui);;解除鎖定
  680.         GUISetState(@SW_SHOWNOACTIVATE, $About_gui)
  681. EndFunc   ;==>about

  682. Func _setting()
  683.         If BitAND(WinGetState($setting_gui, ""), 2) And IsHWnd($setting_gui) Then
  684.                         _IniWrite($cfg, 'sub_setting', 'lang_sub', GUICtrlRead($sub_Lang), 256)
  685.                 GUIDelete($setting_gui)
  686.                 Return 0
  687.         EndIf

  688.         If BitAND(WinGetState($Form1), 2) Then
  689.                 $setting_gui = GUICreate($Title & " 設定", 560, 350, 80, -45, -1, 0x00000040 + 0x00000010 + 0x00000080, $Form1)
  690.                 GUISetBkColor(0xFFF0F5)
  691.                         GUISetFont($fontsize-2, $font_xing, $font_var, $font_name, $setting_gui, $font_quality) ;;全局字型
  692.         Else
  693.                 $setting_gui = GUICreate($Title & " 設定", 560, 350, 80, -45, -1, 0x00000040 + 0x00000010 + 0x00000080)
  694.                         GUISetBkColor(0xFFF0F5)
  695.                         GUISetFont($fontsize-2, $font_xing, $font_var, $font_name, $setting_gui, $font_quality) ;;全局字型
  696.         EndIf
  697.         GUISetOnEvent(-3, "main")

  698.         GUISetState(@SW_LOCK, $setting_gui);;鎖定

  699.         GUICtrlCreateGroup('一般', 10, 10, 540, 60)
  700.         $sTop = GUICtrlCreateCheckbox('保持置頂', 30, 35, 80, 20)
  701.         GUICtrlSetFont(-1, 9)
  702.         GUICtrlSetColor(-1, 0x114c93) ;;設定字體顏色
  703.         DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($sTop), "wstr", "", "wstr", "")
  704.         GUICtrlSetOnEvent(-1, "_Topping")
  705.         GUICtrlCreateGroup('', -99, -99, 1, 1)

  706.         GUICtrlCreateGroup('字幕', 10, 90, 540, 150)
  707.         $sSub = GUICtrlCreateCheckbox('下載字幕', 30, 110, 80, 20)
  708.         GUICtrlSetFont(-1, 9)
  709.         GUICtrlSetColor(-1, 0x114c93) ;;設定字體顏色
  710.         DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($sSub), "wstr", "", "wstr", "")
  711.         GUICtrlSetOnEvent(-1, "_download_sub_setting")

  712.         $all_Sub = GUICtrlCreateRadio('所有字幕', 50, 140, 80, 20)
  713.         GUICtrlSetOnEvent(-1, "_sub_item_1")
  714.         $specific_Sub = GUICtrlCreateRadio('指定字幕', 50, 170, 80, 20)
  715.         GUICtrlSetOnEvent(-1, "_sub_item_2")
  716.         $sub_Lang = GUICtrlCreateInput('', 50, 200, 470, 20)
  717.         GUICtrlSetFont(-1, 8)
  718.         GUICtrlSetBkColor (-1, 0xECF5FF)
  719.         GUICtrlSetTip(-1, '例如:zh,zh-TW,zh-CN,ja,en', '', 0, 0)
  720.         GUICtrlSetData($sub_Lang, _IniRead($cfg, 'sub_setting', 'lang_sub', 'zh,zh-TW,zh-CN,ja,en', 0 + 256))

  721.         $mSub = GUICtrlCreateCheckbox('合併字幕至 mkv / mp4 之中', 260, 110, 210, 20)
  722.         GUICtrlSetFont(-1, 9)
  723.         GUICtrlSetColor(-1, 0x114c93) ;;設定字體顏色
  724.         DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($mSub), "wstr", "", "wstr", "")
  725.         GUICtrlSetOnEvent(-1, "_merge_sub_setting")

  726.         GUICtrlCreateLabel('字幕格式:', 260, 153, 80, 20, $BS_CENTER)
  727.         GUICtrlSetFont(-1, 9)
  728.         $sub_format = GUICtrlCreateCombo('', 340, 150, 60, 20, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
  729.         GUICtrlSetData(-1, 'srt|ass|vtt|lrc', _IniRead($cfg, 'sub_setting', 'sub_format', 'srt', 0 + 256))
  730.         GUICtrlSetOnEvent(-1, "_sub_format")

  731.         GUICtrlCreateGroup('',-99,-99,1,1)

  732.         Local $namingRules
  733.         $namingRules &= '%(uploader)s\%(playlist)s_%(upload_date)s_%(title)s.%(ext)s' & '|'
  734.         $namingRules &= '%(uploader)s\%(playlist)s_%(upload_date)s_%(title)s_%(resolution)s.%(ext)s' & '|'
  735.         $namingRules &= '%(uploader)s\%(playlist)s_%(title)s.%(ext)s' & '|'
  736.         $namingRules &= '%(uploader)s\%(playlist)s_%(title)s_%(resolution)s.%(ext)s' & '|'
  737.         $namingRules &= '%(uploader)s\%(upload_date)s_%(title)s.%(ext)s' & '|'
  738.         $namingRules &= '%(uploader)s\%(upload_date)s_%(title)s_%(resolution)s.%(ext)s' & '|'
  739.         $namingRules &= '%(uploader)s\%(title)s.%(ext)s' & '|'
  740.         $namingRules &= '%(uploader)s\%(title)s_%(resolution)s.%(ext)s' & '|'
  741.         $namingRules &= '%(id)s.%(ext)s' & '|'
  742.         $namingRules &= '%(id)s_%(resolution)s.%(ext)s' & '|'
  743.         $namingRules &= '%(title)s.%(ext)s' & '|'
  744.         $namingRules &= '%(title)s_%(resolution)s.%(ext)s' & '|'
  745.         $namingRules &= '%(title)s_%(id)s.%(ext)s' & '|'
  746.         $namingRules &= '%(title)s_%(id)s_%(resolution)s.%(ext)s'


  747.         GUICtrlCreateGroup('命名規則', 10, 260, 540, 80)
  748.         $Naming_rules = GUICtrlCreateCombo('', 30, 280, 490, 20, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL))
  749.         GUICtrlSetData(-1, $namingRules, _IniRead($cfg, 'sub_setting', 'filename_rule', '%(uploader)s\%(playlist)s_%(title)s_%(resolution)s.%(ext)s', 0 + 256))
  750.         GUICtrlSetFont(-1, 8)
  751.         GUICtrlSetOnEvent(-1, "_Naming_rules")
  752.         $exText = GUICtrlCreateLabel('', 30, 310, 470, 20)
  753.         GUICtrlSetFont(-1, 9)
  754.         GUICtrlSetColor(-1, 0xC80028)
  755.         _Naming_rules(True)

  756.         GUICtrlCreateGroup('', -99, -99, 1, 1)

  757.         GUICtrlCreateLabel("", 0, 0, 470, 280, 0x04000000, 0x00100000)

  758.         If _IniRead($cfg, 'setting', 'Topping', '1', 0 + 256) = 1 Then
  759.                 GUICtrlSetState($sTop, $GUI_CHECKED)
  760.         Else
  761.                 GUICtrlSetState($sTop, $GUI_UNCHECKED)
  762.         EndIf

  763.         If _IniRead($cfg, 'sub_setting', 'download_sub', '1', 0 + 256) = '1' Then
  764.                 GUICtrlSetState($sSub, $GUI_CHECKED)
  765.         Else
  766.                 GUICtrlSetState($sSub, $GUI_UNCHECKED)
  767.                 GUICtrlSetState($all_Sub, $GUI_DISABLE)
  768.                 GUICtrlSetState($specific_Sub, $GUI_DISABLE)
  769.                 GUICtrlSetState($sub_Lang, $GUI_DISABLE)
  770.         EndIf

  771.         If _IniRead($cfg, 'sub_setting', 'download_all_sub', '4', 0 + 256) = 1 Then
  772.                 GUICtrlSetState($all_Sub, $GUI_CHECKED)
  773.                 GUICtrlSetState($sub_Lang, $GUI_DISABLE)
  774.         Else
  775.                 GUICtrlSetState($specific_Sub, $GUI_CHECKED)
  776.         EndIf

  777.         If _IniRead($cfg, 'sub_setting', 'merge_Sub', '4', 0 + 256) = 1 Then
  778.                 GUICtrlSetState($mSub, $GUI_CHECKED)
  779.         Else
  780.                 GUICtrlSetState($mSub, $GUI_UNCHECKED)
  781.         EndIf

  782.         GUISetState(@SW_UNLOCK, $setting_gui);;解除鎖定
  783.         GUISetState(@SW_SHOWNOACTIVATE, $setting_gui)
  784.         GUICtrlSetState($sTop, $GUI_FOCUS) ;;預設光標所在位置
  785. EndFunc

  786. Func _Naming_rules($mode = False)
  787.         Local $nName = GUICtrlRead($Naming_rules)
  788.         Local $eName = StringRegExpReplace($nName, '\%\(|(\w)\)s', '${1}')
  789.         $eName = StringReplace($eName, 'uploader', '上傳者')
  790.         $eName = StringReplace($eName, 'playlist', '播放清單')
  791.         $eName = StringReplace($eName, 'upload_date', '上傳日期')
  792.         $eName = StringReplace($eName, 'title', '標題')
  793.         $eName = StringReplace($eName, 'ext', '副檔名')
  794.         $eName = StringReplace($eName, 'resolution', '解析度')
  795.         $eName = StringReplace($eName, 'id', '影片ID')
  796.         $eName = StringReplace($eName, '\', ' \ ')
  797.         GUICtrlSetData($exText, $eName)
  798.         If $mode = False Then _IniWrite($cfg, 'sub_setting', 'filename_rule', $nName, 256)
  799. EndFunc

  800. Func WM_SYSCOMMAND($hWnd, $Msg, $wParam, $lParam)
  801.     Local $nID = BitAND($wParam, 0x0000FFFF)
  802.     Switch $nID
  803.         Case $nItem1
  804.             _about()
  805.     EndSwitch
  806. EndFunc   ;==>WM_SYSCOMMAND

  807. Func main()
  808.         Switch @GUI_CtrlId
  809.                         Case -3
  810.                                         Switch @GUI_WinHandle
  811.                                                         Case $about_gui
  812.                                                                         GUIDelete($about_gui)
  813.                                                         Case $setting_gui
  814.                                                                         _IniWrite($cfg, 'sub_setting', 'lang_sub', GUICtrlRead($sub_Lang), 256)
  815.                                                                         GUIDelete($setting_gui)
  816.                                         EndSwitch
  817.         EndSwitch
  818. EndFunc


  819. ;;----------Start 系統選單所用涵式,出自作者:鐘隱(mysql查詢) ----------
  820. Func CreateSystemMenuItem($hWin, $sText, $hMenu = -1, $bIsPopup = False, $nPos = 0xFFFFFFFF); 0xFFFFFFFF means "insert at the end"
  821.     If $hMenu = -1 Then $hMenu = GetSystemMenu($hWin, 0)
  822.     Local $nID = GUICtrlCreateDummy()
  823.     Local $nFlags = 0
  824.     If $sText = "" Then
  825.         $nFlags = $MF_SEPARATOR
  826.     ElseIf $bIsPopup Then
  827.         $nID = CreatePopupMenu()
  828.         $nFlags = $MF_POPUP
  829.     EndIf
  830.     $nFlags = BitOR($MF_BYPOSITION, $nFlags)
  831.     Local $nResult = InsertMenu($hMenu, $nPos, $nFlags, $nID, $sText)
  832.     Return $nID
  833. EndFunc   ;==>CreateSystemMenuItem

  834. Func RemoveMenu($hWin, $SYSCOMMAND)
  835.         Local $dSysMenu = DllCall("User32.dll", "hwnd", "GetSystemMenu", "hwnd", $hWin, "int", 0)
  836.         Local $hSysMenu = $dSysMenu[0]
  837.         DllCall("User32.dll", "int", "RemoveMenu", "hwnd", $hSysMenu, "int", $SYSCOMMAND, "int", 0)
  838.         DllCall("User32.dll", "int", "DrawMenuBar", "hwnd", $hWin)
  839. EndFunc

  840. Func CreatePopupMenu()
  841.     Local $hMenu = DllCall("user32.dll", "hwnd", "CreatePopupMenu")
  842.     Return $hMenu[0]
  843. EndFunc   ;==>CreatePopupMenu

  844. Func CheckMenuItem($hMenu, $nID, $nFlags)
  845.     DllCall("user32.dll", "int", "CheckMenuItem", _
  846.             "hwnd", $hMenu, _
  847.             "int", $nID, _
  848.             "int", $nFlags)
  849. EndFunc   ;==>CheckMenuItem

  850. Func GetSystemMenu($hWnd, $bRevert)
  851.     Local $hMenu = DllCall("user32.dll", "hwnd", "GetSystemMenu", _
  852.             "hwnd", $hWnd, _
  853.             "int", $bRevert)
  854.     Return $hMenu[0]
  855. EndFunc   ;==>GetSystemMenu

  856. Func InsertMenu($hMenu, $nPosition, $nFlags, $nIDNewItem, $lpNewItem)
  857.     Local $nResult = DllCall("user32.dll", "int", "InsertMenu", _
  858.             "hwnd", $hMenu, _
  859.             "int", $nPosition, _
  860.             "int", $nFlags, _
  861.             "int", $nIDNewItem, _
  862.             "str", $lpNewItem)
  863.     Return $nResult[0]
  864. EndFunc   ;==>InsertMenu


  865. ;;AU3錯誤
  866. Func _AutoIt_Error($oError)
  867.         Return
  868.         Local $errinfo = ""
  869.         ; Do anything here.
  870.     $errinfo = @ScriptName & " (" & $oError.scriptline & ") AutoIt.Error : ==> COM Error intercepted !" & @CRLF & '---------------------' & @CRLF &  _
  871.             @TAB & "err.number is: " & @TAB & @TAB & "0x" & Hex($oError.number) & @CRLF & _
  872.             @TAB & "err.windescription:" & @TAB & $oError.windescription & @CRLF & _
  873.             @TAB & "err.description is: " & @TAB & $oError.description & @CRLF & _
  874.             @TAB & "err.source is: " & @TAB & @TAB & $oError.source & @CRLF & _
  875.             @TAB & "err.helpfile is: " & @TAB & $oError.helpfile & @CRLF & _
  876.             @TAB & "err.helpcontext is: " & @TAB & $oError.helpcontext & @CRLF & _
  877.             @TAB & "err.lastdllerror is: " & @TAB & $oError.lastdllerror & @CRLF & _
  878.             @TAB & "err.scriptline is: " & @TAB & $oError.scriptline & @CRLF & _
  879.                         @TAB & "err.retcode is: " & @TAB & "0x" & Hex($oError.retcode) & @CRLF & @CRLF
  880.         _log($errinfo)
  881. EndFunc   ;==>_AutoIt_Error


  882. ;;log
  883. Func _log($varjiamiwr)
  884.     _FileWriteLog($filelog, $varjiamiwr)
  885. EndFunc   ;==>_log


  886. ;;置頂功能
  887. Func _Topping()
  888.         Local $status = GUICtrlRead($sTop)
  889.         _IniWrite($cfg, 'setting', 'Topping', $status, 256)

  890.         If $status = 1 Then ;;1 = 選中置頂,啟用置頂,4則否
  891.                 _SetWindowPos($Form1, -1, -1, -1, -1, $HWND_TOPMOST, $SWP_NOMOVE + $SWP_NOSIZE) ;;置頂
  892.         EndIf
  893.         If $status = 4 Then
  894.                 _SetWindowPos($Form1, -1, -1, -1, -1, $HWND_NOTOPMOST, $SWP_NOMOVE + $SWP_NOSIZE) ;;取消置頂
  895.         EndIf

  896.         GUICtrlSetState($sTop, $GUI_FOCUS) ;;預設光標所在位置
  897. EndFunc

  898. Func _Start_Topping()
  899.         Local $status = _IniRead($cfg, 'setting', 'Topping', '1', 0 + 256)

  900.         If $status = 1 Then ;;1 = 選中置頂,啟用置頂,4則否
  901.                 _SetWindowPos($Form1, -1, -1, -1, -1, $HWND_TOPMOST, $SWP_NOMOVE + $SWP_NOSIZE) ;;置頂
  902.                 _IniWrite($cfg, 'setting', 'Topping', $status, 256)
  903.         EndIf
  904.         If $status = 4 Then
  905.                 _SetWindowPos($Form1, -1, -1, -1, -1, $HWND_NOTOPMOST, $SWP_NOMOVE + $SWP_NOSIZE) ;;取消置頂
  906.                 _IniWrite($cfg, 'setting', 'Topping', $status, 256)
  907.         EndIf
  908. EndFunc

  909. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  910. ;;|                          使用API將窗體保持最前                          |
  911. ;;| 作者:健啖客WTohrV                                                      |
  912. ;;| 網址:[url=http://www.manew.com/blog-166183-23254.html]http://www.manew.com/blog-166183-23254.html[/url]                      |
  913. ;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  914. Func _SetWindowPos($hWnd,$x,$y,$cX,$cY,$hWndInsertAfter = -1,$wFlags = 1)
  915.         ;使用API將窗體保持最前 x,y -->>座標 $hWndInsertAfter >> Z位置、深度(3D)
  916.         DllCall("user32.dll","long","SetWindowPos","long",$hWnd,"long",$hWndInsertAfter,"long",$x,"long",$y,"long",$cX,"long",$cY,"long",$wFlags)
  917. EndFunc;==>_SetWindowPos


  918. ;;關於裡的圖片
  919. Func About_Logo()
  920.     Local $FileBin = ""
  921.         $FileBin &= "89504E470D0A1A0A0000000D494844520000006400000064080600000070E29554000000097048597300000B1300000B1301009A9C1800001BD94944415478DAED5D097C4CD71ABF3313AAD45AEDB3D3447692204A107BDAA276F5ECB4A8B59406CD3693"
  922.         $FileBin &= "494208AFCAA30B6D1FAF5A7D3CD5D6D2DA5A4166269B120445AB9E5242EC2499E5BCEF3BE7DC993BD9CC24939851F3FB1D13B3DC39F7FCCFFFDBCE77BE23C4C6C60A4F9AF334D7E9AC4A25A8F8B3A4C94A68E6CF98BFF30410870CBC2C56A994AB63946E"
  923.         $FileBin &= "D8E06F05BC26C7F7556AB510931027C4C4C7B167C9DFF81EBF861CBEE3C6BFAFC06B8980392B504E0940AC920D7A4C42BC1095B850884C4A1422972C12A2162F149430D8B12AA5101F11254F9AF54EF525B3C2EB40ABC75B6D78ED69784F869FC1CFE277"
  924.         $FileBin &= "F0BB780DBC165E93FE9E52457FC7D998E43C20C03305000610070EDF5BFC7678DD5563DE6CB7BEF76BA336B7EDA3DAE6D97DDDEEBF75D8F353ED364792AB07FEA613BC2F6B059FEBD06EF0760D5EBB04EF9D83CF64EE7EBEC30FDF79F658FB9F175F8DFC"
  925.         $FileBin &= "D72B2386C1B55AC3356BAAD4B1F4372840C02ACE24B9D82F9528F21E7B402440A8B9F8411070062BE3D442D2CC39CFAF1938B6DF96C09797ECAD1F9CAC71F3BB922E78904CE1059221B843F32069424B922A7842F32200000100A0F9F0E64D5FC3F7F033"
  926.         $FileBin &= "F859FC0EFBAE3B816B99E09A177737E8B06B4BD0CBAA8F874CE89538675E6D042572F122CA1E608D422D01A7B281792440E0E047A2F881E765D3DE6EFAEF5EC3DEDCD53864BB56E67D2D830F3E0EA638C01A99AF412BF3D5D326F818A019B1C1FB267836"
  927.         $FileBin &= "E978637FD3D78CBCD1EF6958338800A653A0D8EFA4B8F95DFABE59E7AFFEDD73D8A8A5D3E73C17BD908949147754EF543230150B8278334A950C152B2ADC48B8D984F911553FED376A2080B0452778DD4606A45300D8E06B2C036F2A34E8A48CCD1A2C99"
  928.         $FileBin &= "8F81836464003116C284C8D9E11EBA6EEDC0B13DE322A28408CE5C6A50549238AB7846C02C439110B528014552FDAF42FA871FACE69F9D4141F0602C60B3D79100D803900901D24AC0C1BEEDAF1594F6798F219340A4D510D95C198CA948D124C79B8800"
  929.         $FileBin &= "EB66C9CCB9F5B6B60E8BD1C9BC2EE14CA4F21F06800E44E581F0307088041C13EAA0C342739252D5EFCCC690013316CD9D5F8D3206AD3CA55286F75B11C05494E524C75915BF2052B1B1D380591A37DF8B0804DE341747C6470C824DA20DC52788541067"
  930.         $FileBin &= "2D10986CB4F662639454FFC55690E2771810D880D2722A9E1626086B068FEB955C33203DC30244010782382110A50323F72DC07E670030FBEAB7DBB57AE4A43691A2E207B65845101E2920D21902330667CEE2D9E1B5B7B7ECBA8A01E145F0665C0888D2"
  931.         $FileBin &= "8031C0BDE85194A50BEE7960362BE3DF8D7443DD08AC71185BCA0F06CE10954A811DFB78F084AE87AAF99D4473929B99061705A2343D03169A8F0945F0FEDA41292BC64FF38B4A4C10685847597E50CA05068828594CBC9A52775370DF70600595B9A827"
  932.         $FileBin &= "F8AC12C1208F4313414180500433B678DC021F66344E48656CAC1CD8222B0F28E501431E0933037C0AB79D2DBAAC43F9AA6133C9F898B0C226B668E11995FED656610BD1478902C7B23CA094190C9C1189B3E7D507C57D10F505B79E4C1230C8E3DC24F7"
  933.         $FileBin &= "4AADB14C3091773509D90413B44A74423C951E6501C57E9D1113439537C8CE6629D57CB330C4011DCA373B597F0130A4A0F0708C2945EE9B8FBA737FEDC03D896FCFAB19BDA86C4CB1931931728CF3AC1837CD43ABF03A8B321465E9632EA26C11611414"
  934.         $FileBin &= "1C8B34F0F4936B056A16CF9E5707E362B14AFB40B1871932B4BDDF7F7D46531D80A10330A023FABF381845F40A8A6E04657FADC083E002D400BF4C86CEA4ADA0D86CDA4627C4A1CEA873A046EBAC5426A6F47F157D5106500A3026F6539D363BD591D18A"
  935.         $FileBin &= "983835AEB7D8048A2D600860DACAD45131F21FEBB4DD83E86B042B31F5048C12C41738906467B32E6BD12D50AA63E5E563884AF4C0550AB41A76340FFD301DACA914A6C09F80610328385668126F6ED3271C039320BA140F0BDF3F4C892B22972C143674"
  936.         $FileBin &= "193C9E06D824D694EE09200F05057C1423585F05E01618D70C18D715C7120DA3D24457294A5C29435F63E5D8A93E200FEF6A64DE7AFC01F1079F0CFAC341E1A6B1412BF3326ADD7C2E24CD98532F26210E7308EC6708CABCB88828C5FE9A413AEA6B58C7"
  937.         $FileBin &= "A59E0CB81DCEA346E6A3477DF27D93CE1B31D4A4C254A6124457C9CE1F98B8FF097E755E260D8994CDA2D28A09083268723FA253F8139D9B8B35ECB3DCD77C3F5AABA40A9B4131E118E258AEEBFDF7C1743DA504D155941D4A1455F1C2F289339B0333EE"
  938.         $FileBin &= "A29862AD0C402008D0B4C0B014A12939243484D6C0C55A23E87B33B8074F00C7CF0A1C7B45974EF03269143EBF27CE99F70CF54F8A115D45931254E0738087F97DE34E9B9066A2A8B2556FD08ECA58A70F098D2908A9D503C8D1C081E4F4A019E4ECC428"
  939.         $FileBin &= "F2EB14954BB4B31322C8C97E53C811DFBEC0163F721000C289C5EECFD76650CCA20BC612E37E5FFBBF94801248A55416115DD6088122473A7D3C687C0880616401436F9BE3530C0C3FE874733AAB4EF41C43AEACDB42F27EFF83B8F2C3643090FBA77F25"
  940.         $FileBin &= "9757FE9B1C6D3790B24603931581B107149434A04F0CA982E7ED7F4C7EAB59140FAD1465086787323696D2686FBDE0DDE08D9B5868C40E3105E2E990D084647A7427D7B7EDB3BE29A38998F47A622A70B1A6371093C96405CE95CFFE4BD29E6D0B93AE05"
  941.         $FileBin &= "9D8036826262694E4CC17FE3DDEB03B462556C81CFCC120B3BA29572745ED60C1CD70568059EA65522824DCC3804743ED6793829B89A6BEEBC7843D2E632CC90F65B9C5046237DEFFEC97330F17A70507C0B655096CE126CC092BBCB27CD6C1EC5A3C256"
  942.         $FileBin &= "0CA1BA03E459747C9CF07DA34E5B5978C4476FB322870EA5C8DC49668BEE447FFD26EDB0116617BF2B9702A13470C467637E01FDFB5EF639925A338068659EC41EA3075501EA92ADBE6149118BD1838F611E3C05842528502770C5F869EE40A77C911DB6"
  943.         $FileBin &= "29723005B9A8BAFAF97756603C0E4094C418F11E2F44AFA0860BB5C06C5F43419698346EBE7F26BE8D1617CDF5A258882B806EA8CC3707F551D3D53FB94FBE3DB6B60618955EAF2329C8BDC5E96D7CECC028FC30A23886FBBC77FC17A255D8EB9F78130C"
  944.         $FileBin &= "A9A05FF279B7A1A3515560988A32848A2B75AC90B020D2EDC053AD4FEB044F9473069B9D40145760551DF17FD52C5F1F7730C449878FFCABD7497AEDF67452DAE32CA27207D560DA53AFFD6E7173116221A8A363686ED187AFBDD199A5EFD0AC71BB3CF2"
  945.         $FileBin &= "430848EB011639CB3BFB58836260F79A9F934BD2EAB68749E96E67F0912A774C59BDFFDEA4994DA31398098C80544540B6FAF54EE2D655815D311B9121ADFA5B29BEC71E10912108481DFB18228282CA1DC5D6179D074D4695A18E8AAE8259DDB2B8C868"
  946.         $FileBin &= "F9FE67827E4EA3BE871DE24A02C8516048618BC4D1D68D33018E66303E0AAEDD20E9755FB41B109EB3863E89E987C69DBE8E8953A3B555458858BA48007BD803A893CFBD72635918525180588B0923F56D8813F834E50544145B985878A88AFFA545EF2C"
  947.         $FileBin &= "A881A008F3562C15D685FD7D04A6466A04CCF6B633BC5E590C412024E2426A403C0A601C000853EED0D0735F3D7252306EDD10E62F4F12BEF1EDBD1CF58716F487D6DEB87F2501A2BF738F9C1E3A8BDCD8936215C6785462CC1180884E22E811D386D021"
  948.         $FileBin &= "D3E6BFBF54C004060177B6A2770E14D23B2B438C79F924FDD98ED4013DFBC6BB24EF3C0B589AA4ECA944B6388A214002F4DA4DDB3CBA7F8CE41096CC7AE7E9E4EA01A753CDAB82CEC910C3FD3C72D8BD37BD710CEBA7D60D227F2C5D4B8C0FF22CFAA512"
  949.         $FileBin &= "C5988318428D2824C3DE67DB27A3A525AC1D38B60D788DD7746C9BB1D15901313EC82799CD7A307BDFAD155DF4C2F58923017D49EEB61F2D1E3446688D152FC61C26B2041A8E27E0949F8B8B8A160470DDC7C18BF7B5762C423D2A400E37EF49D721CC7A"
  950.         $FileBin &= "4EEEC757229B905343A6937BD9672D620C23B315688D390A104602DCD8E47363D9B4D9B5841F1A852C2C9412EAF480B08521EBD5C98318E0ABEE4F7E8F798F18EEDE2F12E27034308E02848B2D78F6CC5BFDF789FEC2AE061D370218863267573C22408A"
  951.         $FileBin &= "5BBFC775EF03427D92E9D18D5CFDE2DB0AB5C61CC910963CE1655A3D62524FE1878621FBC44D363A176248498915A9A05F34E053A1E2CF7E6502B99B79A262FAE57886904DC1AF0E1176350CD1952BF1CD4900B18423BCCD29476C6DBF39393B2992E86F"
  952.         $FileBin &= "DDE10EA5C9D90041C54E70C97C4BE02B631190345D59AC2BA704848B2F0003FF46966434E944FEF8C767C470EFBE799DA6C8D22C9ACCC5ADF7F3358FE28C034702C21962FA6F509F7108C84F1286B8A4C82ACC0C04425BD59B9C0F5F040376B36818465C"
  953.         $FileBin &= "1FD7EB6D8FA1518024E0188C8E165908C830D4219B253AC4A5953AF6037D93EC3EAF5BEB0E312049D960B05EF9CBCFA7293E37F7A4909C2FB7912B6B3691AB9F6D21D7B7EE2177D28E92829CEB4517A7000CA308484E6E7995BA19908F864E0813763FDF"
  954.         $FileBin &= "61A98E854C5CCCEC955A57E824FE8D1CF6EE4DAE6DDA59BC75250102F5C9D52FBF25A787BF05CE6657B470A82F83998A0779C37572CC2849ABD9861CEB308C5C502E27778F9CB40089D934003032A48CEB218519920F5656A0B0B1E380C9A0541EB89C63"
  955.         $FileBin &= "68F63F1A105D8D56E482EA7D62B87DD732581C00A92F82E949F8B98CA65D785665630630D53B7E45F37A65CC94C6A43F0408D7CEB3FB4E2437F76ACCFDCBFFF31A67887B791DC35BCB27CEAC27AC19342E2445EE97EB2AA1130D0F9DE02061C3597EFFF4"
  956.         $FileBin &= "6F453C7473989EFF8DC96DE98D3A50075283B5B91492646A110039CFDD9526862350D0D09C66CBD54D6974E0F4885924FFD2559A1294563B185E2B5FE8E460D556E7E323A2042169E6DC5AC94F079CE3C145A35307173DC2E86FE1CC3ED2A61FB9F17DB2"
  957.         $FileBin &= "E57345320C192B0C77EE935FC6CCE540B8B3814676F167E6B3343227556B7063126544232EB69AB3FBA48CE109E4F03D1491194D3A939CAF76908CE73BD3EB94D1C2A2C1C57D75DB6930698EE602EDA9DF3E9987DF9D6E81CAC8C50D86DFD36A0593D4BA"
  958.         $FileBin &= "01E4D2F27F51ABC7AC270A65BB506650857B836485BC0683F7BC792059F3A3A0A28E38E2FD3239FB4624B9FCCF0DE4FA377BA938CADDBE9F5C59BB99FC363B8164B51BC2754C236EC931931A01451050A4A5BAF9D3CF94497FB0D452D38EE6A1EB17BCB7"
  959.         $FileBin &= "4410F09FEF3C7B7CC817A8F4CEBA4065B8738F5C887A9FE4FD265D0731165907115713319E95D57E28D331C8066E168B89E027074E2137F61C32672196F6B893799C9C9B1A4DB455986F43C1E571B4B2EC19B132D7F90215E8F23974812A7CE5328CF8BE"
  960.         $FileBin &= "C137E638EF126EA184E7625F3759CCDAD343DE62CCE04E220E228AADCC17BA92DC1D3F15BB565F5C933ED0CA3AD665381557E23E9122E6B7BD9927A02630FDEAA3A1AF87BEBB2C5110F09F95E3A6B64A135A1A9C3EC94192EC5CC473269614D6CB1F6C64"
  961.         $FileBin &= "CCA0EB264CCCE0FF8F771B49F22FE758D64D0C2527825BBD8E7E470163128ACAB3932339287E65668734C94123F7BD8E05A1B148282D248C05530E540B38954AAB33D8A9479C200D88E6DA725D82039E56BB0DDCA4A7D94F41CB28ABE3302AF698335860"
  962.         $FileBin &= "73E68AF433463DDB9E808FB31323A95E31EB94B2882B9A06E461C282CF4AB63FC70D734AABE2C6916D1EDD3E70E5443971069F9F97440E08CF71518549041E24FDF91749DE1F57CC835A963E5AE928036BC7428653B06DDD8E5052A2DCC6900173714715"
  963.         $FileBin &= "4D9453474757C1FFACED3FE6155666C9C760AFC75E04904A4E25A52111F8ED82EB376922440AB57E447634263962563ECEF0724C183353B86EB977EC17A27D0A15B337D1DA6FEE1A35326F133044FFCFB153BCB14E25EE13A185EDB19C6BE2DCF94FA728"
  964.         $FileBin &= "FC2E8AC9D63A3B92AD0F81D572B4F5A3610815577CD6E77CB91D647B23B45C68436B2A2B689065561B8DD67A43FA9AD8C4EC7DFA7FA324F46234032F351E701F22155D366E4790E463E931E4FE53CD365A75740CEE42A03BA9C42201B466E2B75E3D5772"
  965.         $FileBin &= "96E4DBB50105BE93D92094CAE847B11D4104E4EC84779932E71E37FE8DFE85F433764F9812F48C9183775B73988573643E76892D713BC2979D06CEE0DB11DC2C1B76B0425C6282B06AD49B417CB3A7C1AE0D3B5C8FE4EE4C2E979C2E2B43C49615388886"
  966.         $FileBin &= "352843D04051F8D2AD67E22441E7F24EFA31F3F7EE1E3D45EE9D3803FEC8017227F528C9DDF51329B8728DE45FFC935CDFB69B0EB6D9E4FD399B864A0AFF26A6211D6ED18B6F6DB339BA4B33167532CF5BCBA6CC7E4ECC7CA71B76CC5BDA542A4A99BDF5"
  967.         $FileBin &= "8293C50D9F5A3B157B56DBC1E61086516FA8941C29235F28D2DFBC4D32EA87F068307300311869C8CB33EB0D0C3EA6D7EF486E1DCA2437F769E976E7ABEBB79213616388AE4A2B726AF8540ACC89AE634856E7A1E478F751E4D4E019F4FB28922F2E596B"
  968.         $FileBin &= "319925F778EAD5A9DCE2F2B5315B916DFCDCDEA2EBA7BCCCAC644B9B79D3678CE2DDA444CCF31D409D443B5862D9F4D998FC326AAE79358DE548192B381D875D3FEF7F7F92D46A812C70C8B7D81D7BF135F36744D66248044D749C3C395F6C63CA39EB17"
  969.         $FileBin &= "925EAF83B9DF3F7BBC44AEAEFB86FE8DA2E8764A2605E9E2A28FD97D88611BB0ECF0FFE7A6A82CA2D23676180110FDEA919303D0A0A2757F0B6F8BC69AB3987D9DB020529E5C3D2023952AF7B26C8B6E448EF7184DEE1D3F63E5B4A15387A6A9912F8F1A"
  970.         $FileBin &= "1DD5400CE1F383B31788AE6A6B5E71C1974E8EE39D475A7C14C92A5F569BC1E444AFF166AFFF363026FDD90E20AE72287847FCFB93CBEFAFA7EF1F7EA117B9B6E97B921DF606B9B4F453AB48811859FEF5AD78F8BDBFD1DFB5655B34C60D7736E9BC197D"
  971.         $FileBin &= "40513215D916CD953B2D70F9AF9746F4E7C590F53A3B0A07E8CCA03426BA6A7E34FE83B30B07AD32FC100C835391C513E88EF25D5D6679CF07F054FF69B4A284C8580424B55A005DFDC34766D3EEE4E2E235E456722AD547F9E0C31C05FD747E4E22C9BB"
  972.         $FileBin &= "708918EE3FB0125D67C6CE7F2843CCEC00B702D85100FABA352DC01C535CE100ABE2012A197A8DFBEAB64BC62A405A4BBEAFC936EFD3DBBCB0839DC401FAD9338C9C7E6D36B910B99C5C5AF619B9B47C1D6D9797AF2F7713AFF347D22796BD7E34ACEE4E"
  973.         $FileBin &= "D2EBC2ACCFBD698E1A8B33FB7C7812B9B8F0233320F7B3CF92133DC68195C816B870E0B33A0D21C77B8E22D736FF405FC3C0E6B1D061E464BF37C9837317AC74C8F14E23A8882C29F9426729ADA1E755E63E45458E654C4A2FAD2196D700B9F6C1F0896D"
  974.         $FileBin &= "B052352F166C57F9574BF6078B8AB2358C8634FE7390177539E8F022310D252170E6A8E1EFDEFC51673578F6E8A6D2CC645177D1504DCDB64C77953E51316FC1982AF7BCB16CEAEC06D10BE31F527C46C212145D5880E6BB963D5650BFA48CA9A696756F"
  975.         $FileBin &= "5FBAC083AB6EACF93BBCD105A442BF89A0A3C2B592FB62B283B15020D1682CB2FE4E5F13ADC542294122C0573EF9AF7548BEA4F24C3C4CF2D58BFD67D0F24CD1B696673217BE8C932F9A3BBFE6A16AFEE758D0D176D1E524C5C360227992D45A41A003FE"
  976.         $FileBin &= "A400180DC59BE285ADC087467F25DEFDD180819489DA62B3292DA22A8D56296D9BAC8E8EC63ABE3616302B5CA77731C6B8C676CBC4A0A31C775799EB66B9002816ABEFCCE8F966C54F07D954C6E022822109645E5EF139F73F8A6587498C596965DE8654"
  977.         $FileBin &= "99E7ED15E3A77970BF831557B6AB08262BB9A1605BA6C39419968AA42E534E9C99E2CC04BEF2D9D7E66409F3E0DA088A1518DC62448F5F5B0D5828F72AF5DC11B132E986D021A3229258C506FB8A605A892ECA16850A9EF7D60FDE418BD2C85CA9662F9B"
  978.         $FileBin &= "B55A18348DC283E47EF763B1EBF02501632AB4342C2E80DDCF3E47D21B74A051E5E26A6689A20AC1C089BCCDA3FB2ACA0C76766319CAC416A94E1A2F2C9E155E2BA58AEF095AEFBD3CFB491E054BA819DC1266B33BB9B4727DD1A5DBE2727EA579BF92A5"
  979.         $FileBin &= "DCDC1DFB495AFDB634925C5CAD2C8BDE6025C77FACD376B73A2A1ACF599199AB5B97BBD4382F19BB62DC344FAD9BF715ADCC8B685DA84AA95692908032FF64FFC9E4CEE113C59BB23CEC5EF88155F1CE4D57D12022F3754A0703D3AAC0203AB67876785D"
  980.         $FileBin &= "2CD36E6B517EBB8EA9C030F1EA1193DB837373932FCAB81628E645AB26340BF1D4E0E92467E376F2E0FCC522090D2C2B318746B0710D3DAD4E5BA6C0792A514960B07013469ABD7EC5233DAC9478B98BF117030ABAFB9FF61D150AB2F196A503AE038A39"
  981.         $FileBin &= "4B9E3A8E4D688825B57A1039E2D78F64F79C404E0D984EB25F9A4817B630459439B58D788CCCBFB80C13AB22FCA90C8CF32B419AB0C061E995ACCB75C28E6879E161C2600E87E8145E39FCCC29973A43C42A922017F3779B538058CE6F135E1AB625736A"
  982.         $FileBin &= "8B07A23018F9F4FC5E85D72910EDEEB4988C9D6094ED841DE6C92BD084034AB602FBFA777E7C45010BD7BB56F56B4BB1675F4B5EAF98E5288DCF95784018356DB1BE3B39F04C40FAB2A96F37403185C74255EC9147450F9154442C592840071AEEAF1574"
  983.         $FileBin &= "809F4365F80B9C43652A74FE9411FD8C5D8D3B6E5AF8CE82A72368C1FDB281E18063F340A78049BC70DEBB4FEDF0085D831D13F38D1EC7937724674EF1A5092F7A90F1D7ADC3D4788A0E5A533026957C6C9EE49851F371AB716A21262E4ED8D06DE8EB60"
  984.         $FileBin &= "7BDFE407853D56A7B6153E950D4FD0D156F1F9DFA7FD46F7A5F577F10C4365F9CE3074DCD1AB4A1A6AA105FCDF9F30DD7BDF73C1BB185BCC67E0BA2A30D6E2899F89CB45D486A419731A38FAA062879F9D1ECDEC6EE1CB2E03A76914DE97D3D9CAA3496B"
  985.         $FileBin &= "618C2BC4C2AC8EF4E6938A8AA7434FF99F5E17367C182EE2F1F30AE58E3CCADB6147775B9D8DAB8E15D0894C9A3EA7E1F696DD3E007AD3F398C4F47B273843DD2646F0BE920CBA5DCDF3E6D7012FA913E7CCAF89F7A6A265D99DF1F8EE524E8F46B6E042"
  986.         $FileBin &= "D78A71530377B8877E01C0183228303497CBE02CE7AA8BEBDDE271DD5A967143B0CA1E9E2E047D5FF5DEE4B75A201098A1AEAEA0B3D41D0F88F4D80BA65B30A0A6405090DE2BC74F6D0337F709CCB65B487FBEF0851B851E05385667A6F30942D2A04FD8"
  987.         $FileBin &= "37ADCCFBCFADAD7B2F035FAB256687C430F1E466058483C1A818408AD32D38A3944CBF2030FF9832ABD9E6767D17243F1378046F1E59938A9B4E41D750EB8CEDE47234408500F0D1B3DFF2A5132383B2C11DCF1ED47CD165D07450D8F5A328C3C5A3B999"
  988.         $FileBin &= "05A58AAD18202A1E9062F58B0AD325E97A3D5A27F11191B28F864D08FDC6AFF7F2834FB73A89A62413132D1940AC26A14102526126892B73D246AC069E1ECAC5069F3BAEF4DA96DFF23080637B7873BB3E09AB46BFD94E1D15037D5B4419C1CF48975524"
  989.         $FileBin &= "232A1F90124419B04681072EE2D9BA3813F118F055A327077FD5E1D5F05D0D3B7E0BD6CCEFB899259333080710C5890814CF293681296AA44DC69E61F045A54C3F9BC6CE3CA7D74016808FA43FF854AB333B9B77F9EA8BD0C1D3FF39664A2BACE416B598"
  990.         $FileBin &= "F5030D12B4162B5A343D7A404A54FE2A3936DC1281E020739430288BC217D45835E6CDC0F561C3476E097C391E06F03F3FD669AB3950ADF56F30E0D761C0F32D036D6934974C460B21E424D7083CB3AF6EF081EDEE5D376C0EEE1BF3599F918357BC3ECD"
  991.         $FileBin &= "07AE5D15F5023201A3D72AB55AEC87ACA294B57303522A38340E24C3014380B0962D4697E9C9CBF0998405918AA459EFD459322BBCE9AAD153BC568F9C14B07AE4E4B6D83E1839A9F5CAF1D33C17BF1DDE183E532B3E329A26A2A1EEC26B44C2B5F09A4A"
  992.         $FileBin &= "B8365C4B461D3A2700C1B90029091C6E3AA3F8A0D68D5285C9013264129A9ED870765391276938F8CC2A8AA3E287FB0BF41A5414F1B47F6702C17901B10524D67050510FC90B371EC6908933DF9907DF3501F98BB5FF0315D8143D44CF4A1B0000000049"
  993.         $FileBin &= "454E44AE426082"
  994.         Return Binary("0x" & $FileBin)
  995. EndFunc
複製代碼

本帖子中包含更多資源

您需要 登入 才可以下載或查看,沒有帳號?註冊

x

使用道具

簽到天數: 7

該用戶今日未簽到

發表於 2021-1-7 15:30 | 顯示全部樓層
YTDL-GUI.zip 綠版免安裝
方便 迅速 直截式下載



感謝版主題供這麼棒的工具程式
  • 下載/測試回報

    gary8349 貢獻度 +20

使用道具

您需要登入後才可以回帖 登入 | 註冊

本版積分規則

Discuz! X

© 2009-2017 Microduo

快速回覆 返回頂部 返回列表