易語(yǔ)言通過(guò)計(jì)算替換字節(jié)實(shí)現(xiàn)酷狗音樂(lè)緩存文件轉(zhuǎn)MP3的代碼
DLL命令表
.版本 2 .DLL命令 創(chuàng)建線程_, 整數(shù)型, "kernel32", "CreateThread", , CreateThread建立新的線索 .參數(shù) lpThreadAttributes, 整數(shù)型, , 0 .參數(shù) dwStackSize, 整數(shù)型, , 0 .參數(shù) lpStartAddress, 子程序指針 .參數(shù) lpParameter, 整數(shù)型 .參數(shù) dwCreationFlags, 整數(shù)型, , 0 .參數(shù) lpThreadId, 整數(shù)型, , 線程ID .DLL命令 _創(chuàng)建許可證, , "kernel32", "InitializeCriticalSection", , 創(chuàng)建許可證 .參數(shù) lpCriticalSection, 多線程許可證, 傳址 .DLL命令 _刪除許可證, , "kernel32", "DeleteCriticalSection", , 刪除許可證 .參數(shù) lpCriticalSection, 多線程許可證, 傳址 .DLL命令 _進(jìn)入許可區(qū), , "kernel32", "EnterCriticalSection", , 進(jìn)入許可區(qū) .參數(shù) lpCriticalSection, 多線程許可證, 傳址 .DLL命令 _退出許可區(qū), , "kernel32", "LeaveCriticalSection", , 退出許可區(qū) .參數(shù) lpCriticalSection, 多線程許可證, 傳址 .DLL命令 線程_掛起, 整數(shù)型, "kernel32", "SuspendThread" .參數(shù) hThread, 整數(shù)型 .DLL命令 線程_恢復(fù), 整數(shù)型, "kernel32", "ResumeThread" .參數(shù) hThread, 整數(shù)型
自定義數(shù)據(jù)類型表
.版本 2 .數(shù)據(jù)類型 多線程許可證, 公開(kāi) .成員 DebugInfo, 整數(shù)型 .成員 LockCount, 整數(shù)型 .成員 RecursionCount, 整數(shù)型 .成員 OwningThread, 整數(shù)型 .成員 LockSemaphore, 整數(shù)型 .成員 SpinCount, 整數(shù)型
酷狗kgtemp轉(zhuǎn)MP3的代碼
.版本 2 .支持庫(kù) iext .支持庫(kù) spec .程序集 窗口程序集_啟動(dòng)窗口 .程序集變量 許可證, 多線程許可證 .程序集變量 線程數(shù), 整數(shù)型 .程序集變量 handle, 整數(shù)型, , "0" .程序集變量 是否暫停, 邏輯型 .程序集變量 是否停止, 邏輯型 .子程序 __啟動(dòng)窗口_創(chuàng)建完畢 路徑編輯框.內(nèi)容 = 取運(yùn)行目錄 () + “\mp3\” _創(chuàng)建許可證 (許可證) 輸出調(diào)試文本 (許可證.DebugInfo) .子程序 _按鈕生成_被單擊 .局部變量 初始目錄, 文本型 .局部變量 文件, 文本型 .局部變量 索引, 整數(shù)型 .局部變量 數(shù)值1, 文本型 .局部變量 i, 整數(shù)型 按鈕開(kāi)始.禁止 = 假 超級(jí)列表框1.表項(xiàng) = { } i = 0 初始目錄 = 取運(yùn)行目錄 () + “\” 文件 = 尋找文件 (初始目錄 + “*.kgtemp”, ) .循環(huán)判斷首 () .如果真 (文件是否存在 (初始目錄 + 文件)) i = i + 1 索引 = 超級(jí)列表框1.插入表項(xiàng) (, , , , , ) 超級(jí)列表框1.置標(biāo)題 (索引, 0, 到文本 (i)) 超級(jí)列表框1.置標(biāo)題 (索引, 1, 初始目錄 + 文件) 超級(jí)列表框1.置標(biāo)題 (索引, 2, “待轉(zhuǎn)”) .如果真結(jié)束 文件 = 尋找文件 (, ) .循環(huán)判斷尾 (文件 ≠ “”) .子程序 _按鈕開(kāi)始_被單擊 .如果真 (文件是否存在 (路徑編輯框.內(nèi)容) = 假) 創(chuàng)建目錄 (路徑編輯框.內(nèi)容) .如果真結(jié)束 是否停止 = 假 按鈕開(kāi)始.禁止 = 真 按鈕生成.禁止 = 真 按鈕停止.禁止 = 假 按鈕暫停.禁止 = 假 多線程啟動(dòng) () 按鈕生成.禁止 = 假 按鈕停止.禁止 = 真 按鈕暫停.禁止 = 真 按鈕開(kāi)始.禁止 = 假 .子程序 單線程轉(zhuǎn)換 .參數(shù) 表項(xiàng), 整數(shù)型 .局部變量 文件路徑, 文本型 .局部變量 文件名, 文本型 .局部變量 mp3, 字節(jié)集 文件路徑 = 超級(jí)列表框1.取標(biāo)題 (表項(xiàng), 1) 文件名 = 取文本右邊 (文件路徑, 取文本長(zhǎng)度 (文件路徑) - 倒找文本 (文件路徑, “\”, , 假)) mp3 = kgtemp轉(zhuǎn)MP3 (文件路徑) .如果 (mp3 ≠ { }) .如果 (寫到文件 (路徑編輯框.內(nèi)容 + 文件名 + “.mp3”, mp3)) 超級(jí)列表框1.置標(biāo)題 (表項(xiàng), 2, “完成”) .否則 超級(jí)列表框1.置標(biāo)題 (表項(xiàng), 2, “失敗”) .如果結(jié)束 .否則 超級(jí)列表框1.置標(biāo)題 (表項(xiàng), 2, “失敗”) .如果結(jié)束 超級(jí)列表框1.保證顯示 (表項(xiàng)) _進(jìn)入許可區(qū) (許可證) 線程數(shù) = 線程數(shù) - 1 _退出許可區(qū) (許可證) .子程序 多線程啟動(dòng) .局部變量 數(shù)量, 整數(shù)型 .局部變量 i, 整數(shù)型 數(shù)量 = 超級(jí)列表框1.取表項(xiàng)數(shù) () 重定義數(shù)組 (handle, 假, 數(shù)量) ' 防止數(shù)組越界 .計(jì)次循環(huán)首 (數(shù)量, i) .如果真 (是否停止) 跳出循環(huán) () .如果真結(jié)束 .判斷循環(huán)首 (是否暫停) 延遲 (200) ' 如果單擊了暫停按鈕,程序就停在此處無(wú)限循環(huán),直到單擊恢復(fù)。 .判斷循環(huán)尾 () 創(chuàng)建線程_ (0, 0, &單線程轉(zhuǎn)換, i - 1, 0, handle [i]) 超級(jí)列表框1.置標(biāo)題 (i - 1, 2, “轉(zhuǎn)換中”) _進(jìn)入許可區(qū) (許可證) 線程數(shù) = 線程數(shù) + 1 ' 循環(huán)一次就讓線程數(shù)增加1 _退出許可區(qū) (許可證) .判斷循環(huán)首 (線程數(shù) = 到整數(shù) (編輯框線程數(shù).內(nèi)容)) .如果真 (是否停止) 跳出循環(huán) () .如果真結(jié)束 延遲 (100) ' 延遲的目的是防止線程數(shù)超過(guò)設(shè)定數(shù)目。 .判斷循環(huán)尾 () .計(jì)次循環(huán)尾 () .子程序 _按鈕暫停_被單擊 .局部變量 cout, 整數(shù)型 .局部變量 i, 整數(shù)型 cout = 超級(jí)列表框1.取表項(xiàng)數(shù) () .判斷開(kāi)始 (按鈕暫停.標(biāo)題 = “暫?!? 是否暫停 = 真 .計(jì)次循環(huán)首 (cout, i) 線程_掛起 (handle [i]) .計(jì)次循環(huán)尾 () 按鈕暫停.標(biāo)題 = “恢復(fù)” .默認(rèn) 按鈕暫停.標(biāo)題 = “恢復(fù)” 是否暫停 = 假 .計(jì)次循環(huán)首 (cout, i) 線程_恢復(fù) (handle [i]) .計(jì)次循環(huán)尾 () 按鈕暫停.標(biāo)題 = “暫?!? .判斷結(jié)束 .子程序 _按鈕停止_被單擊 是否停止 = 真 按鈕生成.禁止 = 真 .子程序 kgtemp轉(zhuǎn)MP3, 字節(jié)集 .參數(shù) 文件路徑, 文本型 .局部變量 key, 整數(shù)型, , "4" .局部變量 文件號(hào), 整數(shù)型 .局部變量 臨時(shí)字節(jié)集文件, 字節(jié)集 .局部變量 臨時(shí)字節(jié)集指針, 整數(shù)型 .局部變量 字節(jié)集長(zhǎng)度, 整數(shù)型 .局部變量 計(jì)數(shù), 整數(shù)型 .局部變量 i, 整數(shù)型 .局部變量 結(jié)果, 整數(shù)型 .局部變量 輸出結(jié)果, 字節(jié)集 .局部變量 時(shí)間, 整數(shù)型 key [1] = 172 key [2] = 236 key [3] = 223 key [4] = 87 文件號(hào) = 打開(kāi)文件 (文件路徑, , ) 臨時(shí)字節(jié)集文件 = 讀入字節(jié)集 (文件號(hào), 取文件長(zhǎng)度 (文件號(hào))) 關(guān)閉文件 (文件號(hào)) 臨時(shí)字節(jié)集文件 = 取字節(jié)集右邊 (臨時(shí)字節(jié)集文件, 取字節(jié)集長(zhǎng)度 (臨時(shí)字節(jié)集文件) - 1024) 臨時(shí)字節(jié)集指針 = 取變量數(shù)據(jù)地址 (臨時(shí)字節(jié)集文件) 字節(jié)集長(zhǎng)度 = 取字節(jié)集長(zhǎng)度 (臨時(shí)字節(jié)集文件) 時(shí)間 = 取啟動(dòng)時(shí)間 () .計(jì)次循環(huán)首 (字節(jié)集長(zhǎng)度, 計(jì)數(shù)) i = 計(jì)數(shù) % 4 .如果真 (i = 0) i = 4 .如果真結(jié)束 結(jié)果 = 位異或 (取低位 (臨時(shí)字節(jié)集文件 [計(jì)數(shù)]), 取低位 (key [i])) 結(jié)果 = 位或 (左移 (位異或 (取高位 (臨時(shí)字節(jié)集文件 [計(jì)數(shù)]), 取高位 (key [i]), 結(jié)果), 4), 結(jié)果) 寫到內(nèi)存 (取字節(jié)集左邊 (到字節(jié)集 (結(jié)果), 1), 臨時(shí)字節(jié)集指針 + 計(jì)數(shù) - 1, 1) .計(jì)次循環(huán)尾 () 輸出調(diào)試文本 (取啟動(dòng)時(shí)間 () - 時(shí)間) 返回 (臨時(shí)字節(jié)集文件) .子程序 MP3轉(zhuǎn)kgtemp, 字節(jié)集 .參數(shù) 文件路徑, 文本型 .局部變量 key, 整數(shù)型, , "4" .局部變量 文件號(hào), 整數(shù)型 .局部變量 臨時(shí)字節(jié)集文件, 字節(jié)集 .局部變量 臨時(shí)字節(jié)集指針, 整數(shù)型 .局部變量 字節(jié)集長(zhǎng)度, 整數(shù)型 .局部變量 計(jì)數(shù), 整數(shù)型 .局部變量 i, 整數(shù)型 .局部變量 結(jié)果, 整數(shù)型 .局部變量 輸出結(jié)果, 字節(jié)集 .局部變量 時(shí)間, 整數(shù)型 key [1] = 172 key [2] = 236 key [3] = 223 key [4] = 87 文件號(hào) = 打開(kāi)文件 (文件路徑, , ) 臨時(shí)字節(jié)集文件 = 讀入字節(jié)集 (文件號(hào), 取文件長(zhǎng)度 (文件號(hào))) 關(guān)閉文件 (文件號(hào)) 臨時(shí)字節(jié)集指針 = 取變量數(shù)據(jù)地址 (臨時(shí)字節(jié)集文件) 字節(jié)集長(zhǎng)度 = 取字節(jié)集長(zhǎng)度 (臨時(shí)字節(jié)集文件) 時(shí)間 = 取啟動(dòng)時(shí)間 () .計(jì)次循環(huán)首 (字節(jié)集長(zhǎng)度, 計(jì)數(shù)) i = 計(jì)數(shù) % 4 .如果真 (i = 0) i = 4 .如果真結(jié)束 結(jié)果 = 位異或 (取高位 (臨時(shí)字節(jié)集文件 [計(jì)數(shù)]), 取低位 (臨時(shí)字節(jié)集文件 [計(jì)數(shù)]), 取高位 (key [i])) 結(jié)果 = 位或 (左移 (結(jié)果, 4), 位異或 (取低位 (臨時(shí)字節(jié)集文件 [計(jì)數(shù)]), 取低位 (key [i]))) 寫到內(nèi)存 (取字節(jié)集左邊 (到字節(jié)集 (結(jié)果), 1), 臨時(shí)字節(jié)集指針 + 計(jì)數(shù) - 1, 1) .計(jì)次循環(huán)尾 () 輸出調(diào)試文本 (取啟動(dòng)時(shí)間 () - 時(shí)間) 返回 (#head + 臨時(shí)字節(jié)集文件) .子程序 取高位, 整數(shù)型 .參數(shù) 待取整數(shù), 整數(shù)型 返回 (右移 (待取整數(shù), 4)) .子程序 取低位, 整數(shù)型 .參數(shù) 待取整數(shù), 整數(shù)型 返回 (位與 (待取整數(shù), 15)) .子程序 __啟動(dòng)窗口_將被銷毀 _刪除許可證 (許可證)
運(yùn)行結(jié)果:
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
易語(yǔ)言QQ群發(fā)支持圖片文字?jǐn)?shù)據(jù)一起發(fā)送的工具
今天小編就為大家分享一篇關(guān)于易語(yǔ)言QQ群發(fā)支持圖片文字?jǐn)?shù)據(jù)一起發(fā)送的工具,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12易語(yǔ)言將當(dāng)前窗口位置設(shè)置成不可移動(dòng)
今天小編就為大家分享一篇關(guān)于易語(yǔ)言將當(dāng)前窗口位置設(shè)置成不可移動(dòng),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-11-11易語(yǔ)言鍵盤鉤子與鼠標(biāo)鉤子的狀態(tài)參數(shù)值表
在本篇內(nèi)容里,小編給大家整理了關(guān)于易語(yǔ)言鍵盤鉤子與鼠標(biāo)鉤子的狀態(tài)參數(shù)值表的用法代碼,需要的參考下2018-11-11