DLL命令表
.版本 2.DLL命令 拷貝內(nèi)存_BITMAPINFOHEADER, 整數(shù)型, "kernel32", "RtlMoveMemory", , RtlMoveMemory .參數(shù) 目標(biāo)數(shù)據(jù)地址, 字節(jié)集, 傳址, lpvDest .參數(shù) 源數(shù)據(jù), BITMAPINFOHEADER, 傳址, lpvSource .參數(shù) 尺寸, 整數(shù)型, , 40cbCopy.DLL命令 拷貝內(nèi)存_ICONFILEHEADER, 整數(shù)型, "kernel32", "RtlMoveMemory", , RtlMoveMemory .參數(shù) 目標(biāo)數(shù)據(jù)地址, 字節(jié)集, 傳址, lpvDest .參數(shù) 源數(shù)據(jù), ICONFILEHEADER, , lpvSource .參數(shù) 尺寸, 整數(shù)型, , 22cbCopy
自定義數(shù)據(jù)類型表
.版本 2.數(shù)據(jù)類型 ICONFILEHEADER, , 文件頭22 .成員 idReserved, 短整數(shù)型, , , 為0 .成員 idType, 短整數(shù)型, , , 為1圖標(biāo),2為鼠標(biāo) .成員 idCount, 短整數(shù)型, , , 文件中圖標(biāo)個(gè)數(shù),為1 .成員 bWidth, 字節(jié)型, , , 寬,為16或32 .成員 bHeight, 字節(jié)型, , , 高,為16或32 .成員 bColorCount, 字節(jié)型, , , 調(diào)色盤顏色數(shù)量:16或255 或0 .成員 bReserved, 字節(jié)型, , , 為0 .成員 wPlanes, 短整數(shù)型, , , idType為2,鼠標(biāo)熱點(diǎn)左邊 .成員 wBitCount, 短整數(shù)型, , , 每個(gè)像素占的位數(shù) .idType為2,鼠標(biāo)熱點(diǎn)頂邊 .成員 dwBytesInRes, 整數(shù)型, , , 圖標(biāo)文件后四項(xiàng)總字節(jié)數(shù) .成員 dwImageOffset, 整數(shù)型, , , 圖標(biāo)文件頭長度,為22.數(shù)據(jù)類型 BITMAPINFOHEADER, , 信息頭40 .成員 biSize, 整數(shù)型, , , 信息頭的長度,為40 .成員 biWidth, 整數(shù)型, , , 寬 .成員 biHeight, 整數(shù)型, , , 掃描兩遍,值為實(shí)實(shí)際高度的2 倍 .成員 iPlanes, 短整數(shù)型, , , 為1 .成員 biBitCount, 短整數(shù)型, , , 每個(gè)像素占的位數(shù) .成員 biCompression, 整數(shù)型, , , 為0 .成員 biSizeImage, 整數(shù)型, , , 圖標(biāo)文件后三項(xiàng)總字節(jié)數(shù) .成員 biXPelsPerMeter, 整數(shù)型, , , 為0 .成員 biYPelsPerMeter, 整數(shù)型, , , 為0 .成員 biClrUsed, 整數(shù)型, , , 為0 .成員 biClrImportant, 整數(shù)型, , , 為0.數(shù)據(jù)類型 RGBDATA, , 圖像信息中每一個(gè)像素包含的RGB .成員 B, 字節(jié)型 .成員 R, 字節(jié)型 .成員 G, 字節(jié)型.數(shù)據(jù)類型 圖像大小 .成員 寬度, 整數(shù)型 .成員 高度, 整數(shù)型
提取ICO圖標(biāo)
.版本 2.支持庫 edroptarget.支持庫 iext2.支持庫 eAPI.支持庫 iext5.支持庫 shell.支持庫 eImgConverter.支持庫 BmpOperate.程序集 窗口程序集1.程序集變量 程序集_欲刪除的圖標(biāo), 文本型.程序集變量 程序集_文件路徑, 文本型.程序集變量 程序集_圖像大小, 圖像大小.子程序 __啟動窗口_創(chuàng)建完畢拖放對象1.注冊拖放控件 (_啟動窗口.取窗口句柄 ())檢測圖像欲轉(zhuǎn)換大小 ().子程序 _拖放對象1_得到文件.參數(shù) 接收到的文件路徑, 文本型編輯框1.內(nèi)容 = 接收到的文件路徑.子程序 _按鈕_提取圖標(biāo)_被單擊.局部變量 i, 整數(shù)型.局部變量 圖標(biāo)資源, 字節(jié)集.局部變量 后綴名, 文本型.局部變量 是否空圖標(biāo), 字節(jié)集.局部變量 畫板的底圖, 字節(jié)集.如果真 (尋找文本 (程序集_文件路徑, “.”, , 真) = -1) 信息框 (“文件路徑不正確,請嘗試更換文件再試!”, #錯(cuò)誤圖標(biāo), ) 返回 ().如果真結(jié)束.計(jì)次循環(huán)首 (取文件內(nèi)圖標(biāo)數(shù) (程序集_文件路徑), i) 提取資源文件圖標(biāo) (程序集_文件路徑, 0, 取運(yùn)行目錄 () + “/” + 到文本 (i) + “.ico”, i).計(jì)次循環(huán)尾 ().如果真 (取文件內(nèi)圖標(biāo)數(shù) (程序集_文件路徑) ≠ 0) 氣球提示框1.彈出提示框 (取鼠標(biāo)水平位置 (), 取鼠標(biāo)垂直位置 (), “圖標(biāo)提取成功。”, -1, ).如果真結(jié)束程序集_欲刪除的圖標(biāo) = 編輯框1.內(nèi)容' -------上面代碼提取平常的 EXE、DLL、ICL、ICO。圖標(biāo) 下面的是為了將圖像轉(zhuǎn)換成為BMP后在轉(zhuǎn)換ICO圖標(biāo)----------后綴名 = 到小寫 (取文本右邊 (程序集_文件路徑, 4)).如果真 (后綴名 ≠ “.exe” 且 后綴名 ≠ “.dll” 且 后綴名 ≠ “.icl” 且 后綴名 ≠ “.ico”) 畫板1.底圖 = 讀入文件 (編輯框1.內(nèi)容) 畫板的底圖 = 畫板1.底圖 畫板1.寬度 = 程序集_圖像大小.寬度 畫板1.高度 = 程序集_圖像大小.高度 畫板1.底圖方式 = #縮放圖片 寫到文件 (取特定目錄 (11) + “/” + 取文本右邊 (后綴名, 1), 畫板1.取圖片 (程序集_圖像大小.寬度, 程序集_圖像大小.高度)) 轉(zhuǎn)換到BMP (取特定目錄 (11) + “/” + 取文本右邊 (后綴名, 1), 取特定目錄 (11) + “/” + 取文本右邊 (后綴名, 1) + “.bmp”) 程序集_文件路徑 = 取特定目錄 (11) + “/” + 取文本右邊 (后綴名, 1) + “.bmp” .如果真 (取文本右邊 (程序集_文件路徑, 4) = “.bmp”) BMP轉(zhuǎn)ICO (讀入文件 (程序集_文件路徑), 圖標(biāo)資源) 寫到文件 (取運(yùn)行目錄 () + “/1.ico”, 圖標(biāo)資源) 是否空圖標(biāo) = 讀入文件 (取運(yùn)行目錄 () + “/1.ico”) .如果真 (是否空圖標(biāo) = { }) ' 如果方法一失敗 自動轉(zhuǎn)換方法二轉(zhuǎn)ico BMP轉(zhuǎn)ICO2 (讀入文件 (程序集_文件路徑), 圖標(biāo)資源) 寫到文件 (取運(yùn)行目錄 () + “/1.ico”, 圖標(biāo)資源) .如果真結(jié)束 .如果真結(jié)束 .如果 (畫板的底圖 = { }) 氣球提示框1.彈出提示框 (取鼠標(biāo)水平位置 (), 取鼠標(biāo)垂直位置 (), “圖標(biāo)提取失敗。”, -1, ) .否則 氣球提示框1.彈出提示框 (取鼠標(biāo)水平位置 (), 取鼠標(biāo)垂直位置 (), “圖標(biāo)提取成功。”, -1, ) .如果結(jié)束.如果真結(jié)束畫板1.底圖 = { }.子程序 _編輯框1_內(nèi)容被改變.局部變量 圖標(biāo)數(shù), 整數(shù)型程序集_文件路徑 = 編輯框1.內(nèi)容.如果真 (尋找文本 (程序集_文件路徑, “.lnk”, , 真) ≠ -1) 編輯框1.內(nèi)容 = 查詢快捷方式 (程序集_文件路徑).如果真結(jié)束圖標(biāo)數(shù) = 取文件內(nèi)圖標(biāo)數(shù) (程序集_文件路徑)標(biāo)題 = “發(fā)現(xiàn)圖標(biāo)數(shù)為:” + 到文本 (圖標(biāo)數(shù)) + “個(gè)”編輯框1.被選擇字符數(shù) = 取文本長度 (程序集_文件路徑).如果真 (圖標(biāo)數(shù) = 0) 氣球提示框1.彈出提示框 (取鼠標(biāo)水平位置 (), 取鼠標(biāo)垂直位置 (), “文件內(nèi)沒有發(fā)現(xiàn)可用圖標(biāo),如果放入的是圖像將自動轉(zhuǎn)換成為圖標(biāo)文件” + #換行符 + “如果不是圖像將會轉(zhuǎn)換失敗!”, -1, 真).如果真結(jié)束.子程序 _按鈕_刪除圖標(biāo)_被單擊.局部變量 i, 整數(shù)型.如果真 (信息框 (“刪除的僅是剛才提取的圖標(biāo)而且必須是非圖像提取的圖標(biāo)”, #是否鈕, ) = #是鈕) i = 取文件內(nèi)圖標(biāo)數(shù) (程序集_欲刪除的圖標(biāo)) ' 提取文件圖標(biāo)按鈕被單擊后 程序集才有會有數(shù)據(jù) .如果真 (i = 0) 返回 () .如果真結(jié)束 .計(jì)次循環(huán)首 (取文件內(nèi)圖標(biāo)數(shù) (程序集_欲刪除的圖標(biāo)), i) 刪除文件 (取運(yùn)行目錄 () + “/” + 到文本 (i) + “.ico”) .計(jì)次循環(huán)尾 () 程序集_欲刪除的圖標(biāo) = “”.如果真結(jié)束.子程序 _按鈕_選擇文件_被單擊通用對話框1.初始目錄 = 取特定目錄 (3)通用對話框1.不改變目錄 = 真通用對話框1.過濾器 = “可執(zhí)行文件(*.exe)|*.exe|動態(tài)鏈接庫(*.dll)|*.dll|圖標(biāo)資源庫(*.icl)|*.icl|圖像文件(*.bmp;*.jpg;*.jpeg;*.gif;*.ico)|*.bmp;*.jpg;*.jpeg;*.gif;*.ico|所有文件(*.*)|*.*”.如果真 (通用對話框1.打開 () = 真) 編輯框1.內(nèi)容 = 通用對話框1.文件名.如果真結(jié)束.子程序 BMP轉(zhuǎn)ICO, 邏輯型, 公開, 用位圖轉(zhuǎn)換,非本人所寫.參數(shù) 被轉(zhuǎn)BMP數(shù)據(jù), 字節(jié)集.參數(shù) 獲得ICO數(shù)據(jù), 字節(jié)集, 參考.參數(shù) 透明色, 整數(shù)型, 可空, 默認(rèn)為白色.參數(shù) CUR光標(biāo), 邏輯型, 可空, 真為CUR光標(biāo),假為圖標(biāo).參數(shù) 指針左熱點(diǎn), 字節(jié)型, 可空, CUR光標(biāo)為真時(shí)有效,以0開始.參數(shù) 指針頂熱點(diǎn), 字節(jié)型, 可空, CUR光標(biāo)為真時(shí)有效,以0開始.局部變量 位圖, 位圖.局部變量 IFH, ICONFILEHEADER.局部變量 BIH, BITMAPINFOHEADER.局部變量 RGBD, 字節(jié)集.局部變量 FBY, 字節(jié)集.局部變量 I.局部變量 J.局部變量 K1.局部變量 K2.局部變量 BY.局部變量 BYY.局部變量 BY2.局部變量 字節(jié)集, 字節(jié)集.局部變量 寬度, 整數(shù)型.局部變量 高度, 整數(shù)型.局部變量 A, 整數(shù)型.局部變量 TMZ, 整數(shù)型.局部變量 DD, 整數(shù)型.局部變量 補(bǔ)碼, 整數(shù)型.如果真 (位圖.載入數(shù)據(jù) (被轉(zhuǎn)BMP數(shù)據(jù)) = 假) 返回 (假).如果真結(jié)束寬度 = 位圖.取寬度 ().如果真 (寬度 > 255) 返回 (假).如果真結(jié)束高度 = 位圖.取高度 ().如果真 (高度 > 255) 返回 (假).如果真結(jié)束.如果 (寬度 % 32 ≠ 0) TMZ = 寬度 ÷ 32 + 1.否則 TMZ = 寬度 ÷ 32.如果結(jié)束TMZ = TMZ × 高度補(bǔ)碼 = 寬度 % 4IFH.idReserved = 0IFH.idType = 選擇 (CUR光標(biāo), 2, 1)IFH.idCount = 1IFH.bHeight = 高度IFH.bWidth = 寬度IFH.bColorCount = 0IFH.bReserved = 0IFH.wPlanes = 選擇 (CUR光標(biāo), 指針左熱點(diǎn), 1)IFH.wBitCount = 選擇 (CUR光標(biāo), 指針頂熱點(diǎn), 24)IFH.dwBytesInRes = 寬度 × 高度 × 3 + TMZ × 4 + 補(bǔ)碼 × 高度 + 40 ' 3240IFH.dwImageOffset = 22 ' 取文本長度 (ifh)BIH.biSize = 40 ' 取文本長度 (bih)BIH.biWidth = 寬度BIH.biHeight = 高度 × 2 ' !!!BIH.iPlanes = 1BIH.biBitCount = 24BIH.biCompression = 0BIH.biSizeImage = 寬度 × 高度 × 3 + 補(bǔ)碼 × 高度 ' 3200BIH.biXPelsPerMeter = 0BIH.biYPelsPerMeter = 0BIH.biClrUsed = 0BIH.biClrImportant = 0.如果 (是否為空 (透明色)) BY = 16777215.否則 BY = 透明色.如果結(jié)束RGBD = 取空白字節(jié)集 (BIH.biSizeImage)FBY = 取空白字節(jié)集 (TMZ × 4)K1 = 0K2 = 1A = 128.計(jì)次循環(huán)首 (高度, I) ' 從左下角逐行掃描 .計(jì)次循環(huán)首 (寬度, J) BYY = 位圖.取某點(diǎn)顏色 (J - 1, 高度 - I) ' 獲得圖像上某一點(diǎn)的顏色Long值 .如果 (BYY ≠ BY) ' 如果該點(diǎn)為透明色 RGBD [K1 + 3] = 位與 (BYY, 255) ' 取整 (BYY ÷ 65536) RGBD [K1 + 2] = 位與 (右移 (BYY, 8), 255) RGBD [K1 + 1] = 右移 (BYY, 16) .否則 BY2 = BY2 + A .如果結(jié)束 K1 = K1 + 3 A = A ÷ 2 .如果真 (A = 0) FBY [K2] = BY2 K2 = K2 + 1 A = 128 BY2 = 0 .如果真結(jié)束 .計(jì)次循環(huán)尾 () .如果真 (A ≠ 128) FBY [K2] = BY2 K2 = K2 + 1 A = 128 BY2 = 0 .如果真結(jié)束 DD = K2 % 4 .如果真 (DD ≠ 1) K2 = K2 + 5 - DD .如果真結(jié)束 K1 = K1 + 補(bǔ)碼.計(jì)次循環(huán)尾 ()獲得ICO數(shù)據(jù) = 取空白字節(jié)集 (22)拷貝內(nèi)存_ICONFILEHEADER (獲得ICO數(shù)據(jù), IFH, 22)字節(jié)集 = 取空白字節(jié)集 (40)拷貝內(nèi)存_BITMAPINFOHEADER (字節(jié)集, BIH, 40)獲得ICO數(shù)據(jù) = 獲得ICO數(shù)據(jù) + 字節(jié)集 + RGBD + FBY返回 (真).子程序 BMP轉(zhuǎn)ICO2, 邏輯型, 公開, 用數(shù)據(jù)轉(zhuǎn)換,非本人所寫.參數(shù) 被轉(zhuǎn)BMP數(shù)據(jù), 字節(jié)集.參數(shù) 獲得ICO數(shù)據(jù), 字節(jié)集, 參考.參數(shù) 透明色, 整數(shù)型, 可空, 默認(rèn)為白色.參數(shù) CUR光標(biāo), 邏輯型, 可空, 真為CUR光標(biāo),假為圖標(biāo).參數(shù) 指針左熱點(diǎn), 字節(jié)型, 可空, CUR光標(biāo)為真時(shí)有效,以0開始.參數(shù) 指針頂熱點(diǎn), 字節(jié)型, 可空, CUR光標(biāo)為真時(shí)有效,以0開始.局部變量 BMP數(shù)據(jù)2, 字節(jié)集.局部變量 IFH, ICONFILEHEADER.局部變量 BIH, BITMAPINFOHEADER.局部變量 RGBD, 字節(jié)集.局部變量 FBY, 字節(jié)集.局部變量 I.局部變量 J.局部變量 K1.局部變量 K2.局部變量 BY, RGBDATA.局部變量 BYY, RGBDATA.局部變量 BY2.局部變量 字節(jié)集, 字節(jié)集.局部變量 寬度, 整數(shù)型.局部變量 高度, 整數(shù)型.局部變量 長度, 整數(shù)型.局部變量 A, 整數(shù)型.局部變量 TMZ, 整數(shù)型.局部變量 DD, 整數(shù)型.局部變量 補(bǔ)碼, 整數(shù)型.如果真 (取字節(jié)集長度 (被轉(zhuǎn)BMP數(shù)據(jù)) < 54 或 被轉(zhuǎn)BMP數(shù)據(jù) [1] ≠ 66 或 被轉(zhuǎn)BMP數(shù)據(jù) [2] ≠ 77) ' BM6 返回 (假).如果真結(jié)束寬度 = 取字節(jié)集數(shù)據(jù) (被轉(zhuǎn)BMP數(shù)據(jù), #整數(shù)型, 19)高度 = 取字節(jié)集數(shù)據(jù) (被轉(zhuǎn)BMP數(shù)據(jù), #整數(shù)型, 23)長度 = 取字節(jié)集數(shù)據(jù) (被轉(zhuǎn)BMP數(shù)據(jù), #整數(shù)型, 35).如果真 (寬度 > 255) 返回 (假).如果真結(jié)束.如果真 (高度 > 255) 返回 (假).如果真結(jié)束BMP數(shù)據(jù)2 = 取字節(jié)集中間 (被轉(zhuǎn)BMP數(shù)據(jù), 55, 長度).如果 (寬度 % 32 ≠ 0) TMZ = 寬度 ÷ 32 + 1.否則 TMZ = 寬度 ÷ 32.如果結(jié)束TMZ = TMZ × 高度補(bǔ)碼 = 寬度 % 4IFH.idReserved = 0IFH.idType = 選擇 (CUR光標(biāo), 2, 1)IFH.idCount = 1IFH.bHeight = 高度IFH.bWidth = 寬度IFH.bColorCount = 0IFH.bReserved = 0IFH.wPlanes = 選擇 (CUR光標(biāo), 指針左熱點(diǎn), 1)IFH.wBitCount = 選擇 (CUR光標(biāo), 指針頂熱點(diǎn), 24)IFH.dwBytesInRes = 寬度 × 高度 × 3 + TMZ × 4 + 補(bǔ)碼 × 高度 + 40 ' 3240IFH.dwImageOffset = 22 ' 取文本長度 (ifh)BIH.biSize = 40 ' 取文本長度 (bih)BIH.biWidth = 寬度BIH.biHeight = 高度 × 2 ' !!!BIH.iPlanes = 1BIH.biBitCount = 24BIH.biCompression = 0BIH.biSizeImage = 寬度 × 高度 × 3 + 補(bǔ)碼 × 高度 ' 3200BIH.biXPelsPerMeter = 0BIH.biYPelsPerMeter = 0BIH.biClrUsed = 0BIH.biClrImportant = 0.如果真 (取字節(jié)集長度 (BMP數(shù)據(jù)2) < BIH.biSizeImage) 返回 (假).如果真結(jié)束.如果 (是否為空 (透明色)) BY.R = 255 BY.G = 255 BY.B = 255.否則 BY.R = 位與 (透明色, 255) ' 取整 (BYY ÷ 65536) BY.G = 位與 (右移 (透明色, 8), 255) BY.B = 右移 (透明色, 16).如果結(jié)束RGBD = 取空白字節(jié)集 (BIH.biSizeImage)FBY = 取空白字節(jié)集 (TMZ × 4)K1 = 0K2 = 1A = 128.計(jì)次循環(huán)首 (高度, I) ' 從左下角逐行掃描 .計(jì)次循環(huán)首 (寬度, J) BYY.R = BMP數(shù)據(jù)2 [K1 + 3] BYY.G = BMP數(shù)據(jù)2 [K1 + 2] BYY.B = BMP數(shù)據(jù)2 [K1 + 1] .如果 (BYY.R ≠ BY.R 或 BYY.G ≠ BY.G 或 BYY.B ≠ BY.B) ' 如果該點(diǎn)為透明色 RGBD [K1 + 3] = BYY.R RGBD [K1 + 2] = BYY.G RGBD [K1 + 1] = BYY.B .否則 BY2 = BY2 + A .如果結(jié)束 K1 = K1 + 3 A = A ÷ 2 .如果真 (A = 0) FBY [K2] = BY2 K2 = K2 + 1 A = 128 BY2 = 0 .如果真結(jié)束 .計(jì)次循環(huán)尾 () .如果真 (A ≠ 128) FBY [K2] = BY2 K2 = K2 + 1 A = 128 BY2 = 0 .如果真結(jié)束 DD = K2 % 4 .如果真 (DD ≠ 1) K2 = K2 + 5 - DD .如果真結(jié)束 K1 = K1 + 補(bǔ)碼.計(jì)次循環(huán)尾 ()獲得ICO數(shù)據(jù) = 取空白字節(jié)集 (22)拷貝內(nèi)存_ICONFILEHEADER (獲得ICO數(shù)據(jù), IFH, 22)字節(jié)集 = 取空白字節(jié)集 (40)拷貝內(nèi)存_BITMAPINFOHEADER (字節(jié)集, BIH, 40)獲得ICO數(shù)據(jù) = 獲得ICO數(shù)據(jù) + 字節(jié)集 + RGBD + FBY返回 (真).子程序 檢測圖像欲轉(zhuǎn)換大小.如果真 (單選框_16.選中 = 真) 程序集_圖像大小.寬度 = 16 程序集_圖像大小.高度 = 16 返回 ().如果真結(jié)束.如果真 (單選框_32.選中 = 真) 程序集_圖像大小.寬度 = 32 程序集_圖像大小.高度 = 32 返回 ().如果真結(jié)束.如果真 (單選框_64.選中 = 真) 程序集_圖像大小.寬度 = 64 程序集_圖像大小.高度 = 64 返回 ().如果真結(jié)束.如果真 (單選框_128.選中 = 真) 程序集_圖像大小.寬度 = 128 程序集_圖像大小.高度 = 128 返回 ().如果真結(jié)束.子程序 _單選框_16_被單擊檢測圖像欲轉(zhuǎn)換大小 ().子程序 _單選框_32_被單擊檢測圖像欲轉(zhuǎn)換大小 ().子程序 _單選框_64_被單擊檢測圖像欲轉(zhuǎn)換大小 ().子程序 _單選框_128_被單擊檢測圖像欲轉(zhuǎn)換大小 ().子程序 __啟動窗口_將被銷毀刪除文件 (取特定目錄 (11) + “/” + 取文本右邊 (到小寫 (取文本右邊 (程序集_文件路徑, 4)), 1))刪除文件 (取特定目錄 (11) + “/” + 取文本右邊 (到小寫 (取文本右邊 (程序集_文件路徑, 4)), 1) + “.bmp”)
運(yùn)行結(jié)果:
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對VeVb武林網(wǎng)的支持。
新聞熱點(diǎn)
疑難解答