小編給大家分享一下易語(yǔ)言如何實(shí)現(xiàn)統(tǒng)計(jì)代碼行數(shù)與API的工具,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)公司主營(yíng)鐵東網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都app軟件開(kāi)發(fā),鐵東h5小程序制作搭建,鐵東網(wǎng)站營(yíng)銷推廣歡迎鐵東等地區(qū)企業(yè)咨詢
DLL命令表
.版本 2 .DLL命令 FindWindowEx, 整數(shù)型, "user32", "FindWindowExA", , 在窗口列表中尋找與指定條件相符的第一個(gè)子窗口 找到的窗口的句柄。如未找到相符窗口,則返回零。會(huì)設(shè)置GetLastError .參數(shù) hWnd1, 整數(shù)型, , 在其中查找子的父窗口。如設(shè)為零,表示使用桌面窗口(通常說(shuō)的頂級(jí)窗口都被認(rèn)為是桌面的子窗口,所以也會(huì)對(duì)它們進(jìn)行查找) .參數(shù) hWnd2, 整數(shù)型, , 從這個(gè)窗口后開(kāi)始查找。這樣便可利用對(duì)FindWindowEx的多次調(diào)用找到符合條件的所有子窗口。如設(shè)為零,表示從第一個(gè)子窗口開(kāi)始搜索 .參數(shù) lpsz1, 文本型, , 欲搜索的類名。零表示忽略 .參數(shù) lpsz2, 文本型, , 欲搜索的類名。零表示忽略; .DLL命令 PostMessage, 整數(shù)型, "user32", "PostMessageA", , 將一條消息投遞到指定窗口的消息隊(duì)列。投遞的消息會(huì)在Windows事件處理過(guò)程中得到處理。在那個(gè)時(shí)候,會(huì)隨同投遞的消息調(diào)用指定窗口的窗口函數(shù)。特別適合那些不需要立即處理的窗口消息的發(fā)送 如消息投遞成功,則返回TRUE(非零)。會(huì)設(shè)置GetLastError .參數(shù) hwnd, 整數(shù)型, , 接收消息的那個(gè)窗口的句柄。如設(shè)為HWND_BROADCAST,表示投遞給系統(tǒng)中的所有頂級(jí)窗口。如設(shè)為零,表示投遞一條線程消息(參考PostThreadMessage) .參數(shù) wMsg, 整數(shù)型, , 消息標(biāo)識(shí)符 .參數(shù) wParam, 整數(shù)型, , 具體由消息決定 .參數(shù) lParam, 整數(shù)型, , 具體由消息決定; .DLL命令 SendMessage, 整數(shù)型, "user32", "SendMessageA", , 調(diào)用一個(gè)窗口的窗口函數(shù),將一條消息發(fā)給那個(gè)窗口。除非消息處理完畢,否則該函數(shù)不會(huì)返回。SendMessageBynum, ; SendMessageByString是該函數(shù)的“類型安全”聲明形式 由具體的消息決定 .參數(shù) hwnd, 整數(shù)型, , 要接收消息的那個(gè)窗口的句柄 .參數(shù) wMsg, 整數(shù)型, , 消息的標(biāo)識(shí)符 .參數(shù) wParam, 整數(shù)型, , 具體取決于消息 .參數(shù) lParam, 整數(shù)型, , 具體取決于消息; .DLL命令 GetWindowText, 整數(shù)型, "user32", "GetWindowTextA", , 取得一個(gè)窗體的標(biāo)題(caption)文字,或者一個(gè)控件的內(nèi)容(在vb里使用:使用vb窗體或控件的caption或text屬性) 復(fù)制到lpString的字串長(zhǎng)度;不包括空中止字符。會(huì)設(shè)置GetLastError .參數(shù) hwnd, 整數(shù)型, , 欲獲取文字的那個(gè)窗口的句柄 .參數(shù) lpString, 文本型, , 預(yù)定義的一個(gè)緩沖區(qū),至少有cch+1個(gè)字符大??;隨同窗口文字載入 .參數(shù) cch, 整數(shù)型, , lp緩沖區(qū)的長(zhǎng)度; .DLL命令 GetWindowTextLength, 整數(shù)型, "user32", "GetWindowTextLengthA", , 調(diào)查窗口標(biāo)題文字或控件內(nèi)容的長(zhǎng)短(在vb里使用:直接使用vb窗體或控件的caption或text屬性) 字串長(zhǎng)度,不包括空中止字符 .參數(shù) hwnd, 整數(shù)型, , 想調(diào)查文字長(zhǎng)度的窗口的句柄; .DLL命令 IsWindow, 整數(shù)型, "user32", "IsWindow", , 判斷一個(gè)窗口句柄是否有效 非零表示成功,零表示失敗 .參數(shù) hwnd, 整數(shù)型, , 待檢查窗口的句柄; .DLL命令 GetClassName, 整數(shù)型, "user32", "GetClassNameA", , 為指定的窗口取得類名 以字節(jié)數(shù)表示的類名長(zhǎng)度;排除最后的空中止字符。零表示出錯(cuò)。會(huì)設(shè)置GetLastError .參數(shù) hwnd, 整數(shù)型, , 欲獲得類名的那個(gè)窗口的句柄 .參數(shù) lpClassName, 文本型, , 隨同類名載入的緩沖區(qū)。預(yù)先至少必須分配nMaxCount+1個(gè)字符 .參數(shù) nMaxCount, 整數(shù)型, , 由lpClassName提供的緩沖區(qū)長(zhǎng)度; .DLL命令 SetForegroundWindow, 整數(shù)型, "user32", "SetForegroundWindow", , 將窗口設(shè)為系統(tǒng)的前臺(tái)窗口。這個(gè)函數(shù)可用于改變用戶目前正在操作的應(yīng)用程序 非零表示成功,零表示失敗。會(huì)設(shè)置GetLastError .參數(shù) hwnd, 整數(shù)型, , 帶到前臺(tái)的窗口; .DLL命令 SetFocus, 整數(shù)型, "user32", "SetFocus", , 設(shè)置鍵盤(pán)焦點(diǎn) 前一個(gè)擁有焦點(diǎn)的窗口的句柄 .參數(shù) hwnd, 整數(shù)型, , 準(zhǔn)備接收焦點(diǎn)的窗口的句柄 .DLL命令 keybd_event, , "user32", "keybd_event", , 這個(gè)函數(shù)模擬了鍵盤(pán)行動(dòng) .參數(shù) bVk, 字節(jié)型, , 欲模擬的虛擬鍵碼 .參數(shù) bScan, 字節(jié)型, , 鍵的OEM掃描碼 .參數(shù) dwFlags, 整數(shù)型, , 零;或設(shè)為下述兩個(gè)標(biāo)志之一;KEYEVENTF_EXTENDEDKEY:指出是一個(gè)擴(kuò)展鍵,而且在前面冠以0xE0代碼;KEYEVENTF_KEYUP:模擬松開(kāi)一個(gè)鍵 .參數(shù) dwExtraInfo, 整數(shù)型, , 通常不用的一個(gè)值。api函數(shù)GetMessageExtraInfo可取得這個(gè)值。允許使用的值取決于特定的驅(qū)動(dòng)程序; .DLL命令 IsIconic, 整數(shù)型, "user32", "IsIconic", , 判斷窗口是否已最小化 非零表示成功,零表示失敗 .參數(shù) hwnd, 整數(shù)型, , 待檢測(cè)窗口的句柄; .DLL命令 MessageBox, 整數(shù)型, "user32", "MessageBoxA", , 建立消息框窗體 .參數(shù) hwnd, 整數(shù)型 .參數(shù) lpText, 文本型 .參數(shù) lpCaption, 文本型 .參數(shù) wType, 整數(shù)型
常量數(shù)據(jù)表
.版本 2 .常量 易菜單命令_復(fù)制, "57634" .常量 易菜單命令_粘貼, "57637" .常量 易菜單命令_跳轉(zhuǎn), "32793" .常量 WM_COMMAND, "273" .常量 WM_CHAR, "258", , //按下某鍵,并已發(fā)出WM_KEYDOWN, WM_KEYUP消息 .常量 WM_KEYDOWN, "256", , //按下一個(gè)鍵 .常量 WM_KEYFIRST, "256" .常量 WM_KEYUP, "257", , //釋放一個(gè)鍵 .常量 EM_SETSEL, "177" .常量 VK_CONTROL, "17" .常量 VK_A, "65" .常量 WM_LBUTTONDOWN, "513" .常量 WM_LBUTTONDBLCLK, "515" .常量 WM_LBUTTONUP, "514" .常量 WM_MOUSEMOVE, "512" .常量 KEYEVENTF_KEYUP, "2" .常量 KEYEVENTF_EXTENDEDKEY, "1" .常量 WM_SYSCOMMAND, "274" .常量 SC_RESTORE, "61728" .常量 EM_GETLINECOUNT, "186"
易語(yǔ)言代碼統(tǒng)計(jì)
此功能需要加載 樹(shù)型框操作類模塊 1.2
.版本 2 .程序集 窗口程序集1 .子程序 __啟動(dòng)窗口_創(chuàng)建完畢 取易IDE () .子程序 __啟動(dòng)窗口_尺寸被改變 IDE組合框.寬度 = 取用戶區(qū)寬度 () - IDE組合框.左邊 - 8 統(tǒng)計(jì)按鈕.左邊 = 取用戶區(qū)寬度 () - 統(tǒng)計(jì)按鈕.寬度 - 8 刷新按鈕.左邊 = 統(tǒng)計(jì)按鈕.左邊 - 統(tǒng)計(jì)按鈕.寬度 - 8 統(tǒng)計(jì)編輯框.移動(dòng) (, , 取用戶區(qū)寬度 () - 16, 取用戶區(qū)高度 () - 統(tǒng)計(jì)編輯框.頂邊 - 8) .子程序 _刷新按鈕_被單擊 取易IDE () .子程序 _統(tǒng)計(jì)按鈕_被單擊 .局部變量 hWnd, 整數(shù)型 hWnd = IDE組合框.取項(xiàng)目數(shù)值 (IDE組合框.現(xiàn)行選中項(xiàng)) .如果真 (IsWindow (hWnd) = 0) 取易IDE () MessageBox (取窗口句柄 (), “請(qǐng)選擇已打開(kāi)的易IDE進(jìn)行統(tǒng)計(jì)”, “提示”, 64) IDE組合框.獲取焦點(diǎn) () 返回 () .如果真結(jié)束 統(tǒng)計(jì)易代碼 (hWnd) .子程序 取易IDE .局部變量 hWnd, 整數(shù)型 .局部變量 strText, 文本型 .局部變量 n, 整數(shù)型 IDE組合框.清空 () hWnd = FindWindowEx (0, 0, “ENewFrame”, 字符 (0)) .判斷循環(huán)首 (hWnd ≠ 0) n = GetWindowTextLength (hWnd) + 1 strText = 取空白文本 (n) GetWindowText (hWnd, strText, n) IDE組合框.加入項(xiàng)目 (strText, hWnd) hWnd = FindWindowEx (0, hWnd, “ENewFrame”, 字符 (0)) .判斷循環(huán)尾 () .子程序 統(tǒng)計(jì)易代碼 .參數(shù) hWndEFrame, 整數(shù)型 .局部變量 hTreeView, 整數(shù)型 .局部變量 hMDIClient, 整數(shù)型 .局部變量 hEdit, 整數(shù)型 .局部變量 樹(shù)型框, 樹(shù)型框句柄操作類 .局部變量 n .局部變量 i .局部變量 p .局部變量 x .局部變量 ApiP, 整數(shù)型 .局部變量 Api, 整數(shù)型 .局部變量 strText, 文本型 .局部變量 strCode, 文本型 .如果真 (IsWindow (hWndEFrame) = 0) 返回 () .如果真結(jié)束 hTreeView = 查找程序數(shù)據(jù)樹(shù)型框 (hWndEFrame) hMDIClient = 查找客戶區(qū) (hWndEFrame) ApiP = -1 連續(xù)賦值 (真, 刷新按鈕.禁止, 統(tǒng)計(jì)按鈕.禁止, IDE組合框.禁止) 統(tǒng)計(jì)標(biāo)簽.標(biāo)題 = “正在統(tǒng)計(jì)...” 統(tǒng)計(jì)編輯框.內(nèi)容 = “” 處理事件 () .如果真 (hTreeView ≠ 0 且 hMDIClient ≠ 0) .如果真 (IsIconic (hWndEFrame) ≠ 0) ' 判斷窗口是否已最小化 SendMessage (hWndEFrame, #WM_SYSCOMMAND, #SC_RESTORE, 0) .如果真結(jié)束 SetForegroundWindow (hWndEFrame) 處理事件 () .如果真 (樹(shù)型框._初始化類 (hTreeView, 真)) 樹(shù)型框.置自動(dòng)更新?tīng)顟B(tài) (假) n = 樹(shù)型框.數(shù)據(jù)_取項(xiàng)目數(shù) () .計(jì)次循環(huán)首 (n, i) p = 樹(shù)型框.數(shù)據(jù)_取父項(xiàng)目 (i - 1) .如果真 (p = 0) strText = 樹(shù)型框.數(shù)據(jù)_取項(xiàng)目文本 (i - 1) .如果真 (尋找文本 (“資源表|模塊引用表|窗口”, strText, , 假) = -1) 統(tǒng)計(jì)標(biāo)簽.標(biāo)題 = “正在統(tǒng)計(jì):” + strText 處理事件 () 樹(shù)型框.動(dòng)作_保證顯示 (i - 1) 樹(shù)型框.數(shù)據(jù)_現(xiàn)行選中項(xiàng)_置 (i - 1) SendMessage (hWndEFrame, #WM_COMMAND, #易菜單命令_跳轉(zhuǎn), 0) 延時(shí) (200) hEdit = 查找編輯區(qū) (hMDIClient, strText) .如果真 (hEdit ≠ 0) SetFocus (hEdit) 發(fā)送全選命令 (hEdit) 置剪輯板文本 (“”) 處理事件 () 延時(shí) (200) SendMessage (hWndEFrame, #WM_COMMAND, #易菜單命令_復(fù)制, 0) strCode = strCode + 取剪輯板文本 () + #換行符 .如果真結(jié)束 .如果真結(jié)束 .如果 (strText = “Dll命令”) ApiP = i - 1 .否則 .如果結(jié)束 .如果真結(jié)束 .如果真 (p = ApiP) Api = Api + 1 .如果真結(jié)束 .計(jì)次循環(huán)尾 () .如果真結(jié)束 .如果真結(jié)束 處理易代碼 (strCode) 統(tǒng)計(jì)編輯框.內(nèi)容 = strCode 置剪輯板文本 (“”) n = 統(tǒng)計(jì)編輯框.發(fā)送信息 (#EM_GETLINECOUNT, 0, 0) 統(tǒng)計(jì)標(biāo)簽.標(biāo)題 = “共有代碼 ” + 到文本 (n) + “ 行” .如果真 (Api > 0) 統(tǒng)計(jì)標(biāo)簽.標(biāo)題 = 統(tǒng)計(jì)標(biāo)簽.標(biāo)題 + “,使用API ” + 到文本 (Api) + “ 個(gè)” .如果真結(jié)束 SetForegroundWindow (取窗口句柄 ()) 連續(xù)賦值 (假, 刷新按鈕.禁止, 統(tǒng)計(jì)按鈕.禁止, IDE組合框.禁止) .子程序 處理易代碼 .參數(shù) strCode, 文本型, 參考 .局部變量 n, 整數(shù)型 strCode = 子文本替換 (strCode, “.版本 2” + #換行符, “”, , , 真) .判斷循環(huán)首 (尋找文本 (strCode, #換行符 + #換行符, , 假) ≠ -1) strCode = 子文本替換 (strCode, #換行符 + #換行符, #換行符, , , 真) .判斷循環(huán)尾 () strCode = “.版本 2” + #換行符 + #換行符 + strCode .子程序 發(fā)送全選命令 .參數(shù) hWnd, 整數(shù)型 .局部變量 lParam keybd_event (#VK_CONTROL, 0, 0, 0) keybd_event (#VK_A, 0, 0, 0) keybd_event (#VK_CONTROL, 0, #KEYEVENTF_KEYUP, 0) keybd_event (#VK_A, 0, #KEYEVENTF_KEYUP, 0) 延時(shí) (200) .子程序 查找程序數(shù)據(jù)樹(shù)型框, 整數(shù)型 .參數(shù) hWndEFrame, 整數(shù)型 .局部變量 hPrent, 整數(shù)型 .局部變量 hWnd, 整數(shù)型 .局部變量 List, 整數(shù)型, , "0" .局部變量 ClassName, 文本型 .局部變量 樹(shù)型框, 樹(shù)型框句柄操作類 加入成員 (List, hWndEFrame) .判斷循環(huán)首 (取數(shù)組成員數(shù) (List) > 0) hPrent = List [1] 刪除成員 (List, 1, 1) hWnd = FindWindowEx (hPrent, 0, 字符 (0), 字符 (0)) .判斷循環(huán)首 (hWnd ≠ 0) 加入成員 (List, hWnd) ClassName = 取空白文本 (255) GetClassName (hWnd, ClassName, 255) .如果真 (ClassName = “SysTreeView32”) .如果真 (樹(shù)型框._初始化類 (hWnd, 真)) .如果真 (樹(shù)型框.數(shù)據(jù)_取項(xiàng)目文本 (0) = “程序數(shù)據(jù)”) 返回 (hWnd) .如果真結(jié)束 .如果真結(jié)束 .如果真結(jié)束 hWnd = FindWindowEx (hPrent, hWnd, 字符 (0), 字符 (0)) .判斷循環(huán)尾 () .判斷循環(huán)尾 () 返回 (0) .子程序 查找客戶區(qū), 整數(shù)型, , MDIClient .參數(shù) hWndEFrame, 整數(shù)型 .局部變量 hPrent, 整數(shù)型 .局部變量 hWnd, 整數(shù)型 .局部變量 List, 整數(shù)型, , "0" .局部變量 ClassName, 文本型 .局部變量 樹(shù)型框, 樹(shù)型框句柄操作類 加入成員 (List, hWndEFrame) .判斷循環(huán)首 (取數(shù)組成員數(shù) (List) > 0) hPrent = List [1] 刪除成員 (List, 1, 1) hWnd = FindWindowEx (hPrent, 0, 字符 (0), 字符 (0)) .判斷循環(huán)首 (hWnd ≠ 0) 加入成員 (List, hWnd) ClassName = 取空白文本 (255) GetClassName (hWnd, ClassName, 255) .如果真 (ClassName = “MDIClient”) 返回 (hWnd) .如果真結(jié)束 hWnd = FindWindowEx (hPrent, hWnd, 字符 (0), 字符 (0)) .判斷循環(huán)尾 () .判斷循環(huán)尾 () 返回 (0) .子程序 查找編輯區(qū), 整數(shù)型, , 在客戶區(qū)里查找當(dāng)前編輯的窗口 .參數(shù) hMDIClient, 整數(shù)型 .參數(shù) strWindowText, 文本型 .局部變量 hWnd, 整數(shù)型 .局部變量 strText, 文本型 .局部變量 ClassName, 文本型 .局部變量 n, 整數(shù)型 .局部變量 hPrent, 整數(shù)型 .局部變量 hAfx, 整數(shù)型 hWnd = FindWindowEx (hMDIClient, 0, 字符 (0), 字符 (0)) n = GetWindowTextLength (hWnd) + 1 strText = 取空白文本 (n) GetWindowText (hWnd, strText, n) .如果真 (尋找文本 (strText, strWindowText, , 假) ≠ -1) hPrent = FindWindowEx (hWnd, 0, 字符 (0), 字符 (0)) .如果真 (hPrent ≠ 0) hWnd = FindWindowEx (hPrent, 0, 字符 (0), 字符 (0)) .判斷循環(huán)首 (hWnd ≠ 0) ClassName = 取空白文本 (255) GetClassName (hWnd, ClassName, 255) .如果真 (取文本左邊 (ClassName, 4) = “Afx:”) hAfx = hWnd 跳出循環(huán) () .如果真結(jié)束 hWnd = FindWindowEx (hPrent, hWnd, 字符 (0), 字符 (0)) .判斷循環(huán)尾 () .如果真結(jié)束 .如果真結(jié)束 .如果真 (hAfx ≠ 0) hAfx = FindWindowEx (hAfx, 0, 字符 (0), 字符 (0)) .如果真結(jié)束 返回 (hAfx)
運(yùn)行結(jié)果:
以上是“易語(yǔ)言如何實(shí)現(xiàn)統(tǒng)計(jì)代碼行數(shù)與API的工具”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!