易語(yǔ)言仿360懸浮窗實(shí)現(xiàn)流量監(jiān)控和內(nèi)存優(yōu)化的代碼
DLL命令表
.版本 2 .DLL命令 GlobalMemoryStatus, 整數(shù)型, "kernel32", "GlobalMemoryStatus" .參數(shù) lpBuffer, MEMORYSTATUS .DLL命令 OpenProcess, 整數(shù)型, "Kernel32.dll", "OpenProcess" .參數(shù) dwDesiredAccess, 整數(shù)型 .參數(shù) bInheritHandle, 整數(shù)型 .參數(shù) dwProcessId, 整數(shù)型 .DLL命令 SetProcessWorkingSetSize, 整數(shù)型, "kernel32.dll", "SetProcessWorkingSetSize" .參數(shù) HANDLE .參數(shù) SIZE_T .參數(shù) SIZE_T .DLL命令 CloseHandle, 整數(shù)型, "kernel32.dll", "CloseHandle" .參數(shù) HANDLE, 整數(shù)型 .DLL命令 CreateToolhelp32Snapshot, 整數(shù)型, "Kernel32.dll", "CreateToolhelp32Snapshot" .參數(shù) dwFlags, 整數(shù)型 .參數(shù) th32ProcessID, 整數(shù)型 .DLL命令 Process32First, 整數(shù)型, "Kernel32.dll", "Process32First" .參數(shù) HANDLE, 整數(shù)型 .參數(shù) LPPROCESSENTRY32, PROCESSENTRY32 .DLL命令 Process32Next, 整數(shù)型, "Kernel32.dll", "Process32Next" .參數(shù) HANDLE, 整數(shù)型 .參數(shù) LPPROCESSENTRY32, PROCESSENTRY32 .DLL命令 GetIfTable, 整數(shù)型, "iphlpapi", "GetIfTable" .參數(shù) 信息表, 字節(jié)集, 傳址 .參數(shù) 信息表尺寸, 整數(shù)型, 傳址 .參數(shù) 內(nèi)參數(shù), 整數(shù)型
全局變量表
.版本 2 .全局變量 當(dāng)前內(nèi)存位置, MEMORYSTATUS .全局變量 原接收總計(jì), 整數(shù)型 .全局變量 原發(fā)送總計(jì), 整數(shù)型 .全局變量 單位, 文本型 .全局變量 已取得編號(hào), 整數(shù)型
自定義數(shù)據(jù)類(lèi)型表
.版本 2 .數(shù)據(jù)類(lèi)型 MEMORYSTATUS .成員 結(jié)構(gòu)長(zhǎng)度, 整數(shù)型 .成員 實(shí)際存儲(chǔ)器百分比, 整數(shù)型 .成員 總物理內(nèi)存, 整數(shù)型 .成員 可用內(nèi)存, 整數(shù)型 .成員 總頁(yè)文件, 整數(shù)型 .成員 可用頁(yè)文件, 整數(shù)型 .成員 總虛擬內(nèi)存, 整數(shù)型 .成員 可用虛擬內(nèi)存, 整數(shù)型 .數(shù)據(jù)類(lèi)型 PROCESSENTRY32 .成員 dwSize, 整數(shù)型 .成員 cntUsage, 整數(shù)型 .成員 th32ProcessID, 整數(shù)型 .成員 th32DefaultHeapID, 整數(shù)型 .成員 th32ModuleID, 整數(shù)型 .成員 cntThreads, 整數(shù)型 .成員 th32ParentProcessID, 整數(shù)型 .成員 pcPriClassBase, 整數(shù)型 .成員 dwFlags, 整數(shù)型 .成員 szExeFile, 字節(jié)型, , "256" .數(shù)據(jù)類(lèi)型 MIB_IFROW .成員 dwInOctets, 整數(shù)型, , , 總共收到(字節(jié)) .成員 dwOutOctets, 整數(shù)型, , , 總共發(fā)送(字節(jié))
Memory
.版本 2 .程序集 Memory .子程序 Obtain_memory, MEMORYSTATUS .局部變量 reg_Memory, MEMORYSTATUS reg_Memory.結(jié)構(gòu)長(zhǎng)度 = 32 GlobalMemoryStatus (reg_Memory) 返回 (reg_Memory) .子程序 Optimize_memory, 整數(shù)型 .參數(shù) pid, 整數(shù)型 .局部變量 hProcess, 整數(shù)型 hProcess = OpenProcess (2035711, 0, pid) .如果真 (SetProcessWorkingSetSize (hProcess, -1, -1) = 1) CloseHandle (hProcess) 返回 (1) .如果真結(jié)束 CloseHandle (hProcess) 返回 (0) .子程序 Optimize_memory_all .局部變量 hSnapShot, 整數(shù)型 .局部變量 prHandle, 整數(shù)型 .局部變量 pe32, PROCESSENTRY32 hSnapShot = CreateToolhelp32Snapshot (15, 0) .如果真 (hSnapShot = 0) .如果真結(jié)束 pe32.dwSize = 1024 prHandle = Process32First (hSnapShot, pe32) .判斷循環(huán)首 (prHandle ≠ 0) Optimize_memory (pe32.th32ProcessID) prHandle = Process32Next (hSnapShot, pe32) .判斷循環(huán)尾 () CloseHandle (hSnapShot)
Traffic
.版本 2 .程序集 Traffic .子程序 Flow_downstream, 文本型, , 返回下載速度 .局部變量 temp, MIB_IFROW, , "0" .局部變量 編號(hào), 整數(shù)型 .局部變量 返回值, 文本型 編號(hào) = Flow (temp) .如果真 (原接收總計(jì) = 0) 原接收總計(jì) = temp [編號(hào)].dwInOctets .如果真結(jié)束 返回值 = 數(shù)值到格式文本 ((temp [編號(hào)].dwInOctets - 原接收總計(jì)) ÷ 1024, 1, 假) 原接收總計(jì) = temp [編號(hào)].dwInOctets 返回 (返回值) .子程序 Flow_upstream, 文本型, , 返回上傳速度 .局部變量 temp, MIB_IFROW, , "0" .局部變量 編號(hào), 整數(shù)型 .局部變量 返回值, 文本型 編號(hào) = Flow (temp) .如果真 (原發(fā)送總計(jì) = 0) 原發(fā)送總計(jì) = temp [編號(hào)].dwOutOctets .如果真結(jié)束 返回值 = 數(shù)值到格式文本 ((temp [編號(hào)].dwOutOctets - 原發(fā)送總計(jì)) ÷ 1024, 1, 假) 原發(fā)送總計(jì) = temp [編號(hào)].dwOutOctets 返回 (返回值) .子程序 Flow, 整數(shù)型 .參數(shù) IFROW, MIB_IFROW, 參考 數(shù)組 .局部變量 緩沖區(qū)尺寸, 整數(shù)型 .局部變量 信息集, 字節(jié)集 .局部變量 成員數(shù), 整數(shù)型 .局部變量 起始位, 整數(shù)型 .局部變量 次, 整數(shù)型 .局部變量 正確位置, 整數(shù)型 GetIfTable ({ 0 }, 緩沖區(qū)尺寸, 0) .如果真 (緩沖區(qū)尺寸 ≤ 0) 返回 (0) .如果真結(jié)束 信息集 = 取空白字節(jié)集 (緩沖區(qū)尺寸) .如果真 (GetIfTable (信息集, 緩沖區(qū)尺寸, 1) ≠ 0) 返回 (0) .如果真結(jié)束 成員數(shù) = 取字節(jié)集數(shù)據(jù) (取字節(jié)集左邊 (信息集, 4), #整數(shù)型, ) 信息集 = 取字節(jié)集右邊 (信息集, 緩沖區(qū)尺寸 - 4) 重定義數(shù)組 (IFROW, 假, 成員數(shù)) .如果 (已取得編號(hào) = 0) .計(jì)次循環(huán)首 (成員數(shù), 次) 起始位 = (次 - 1) × 860 IFROW [次].dwInOctets = 取字節(jié)集數(shù)據(jù) (取字節(jié)集中間 (信息集, 起始位 + 553, 4), #整數(shù)型, ) IFROW [次].dwOutOctets = 取字節(jié)集數(shù)據(jù) (取字節(jié)集中間 (信息集, 起始位 + 577, 4), #整數(shù)型, ) .如果真 (IFROW [次].dwInOctets > 1 且 IFROW [次].dwOutOctets > 1) 正確位置 = 次 .如果真結(jié)束 .計(jì)次循環(huán)尾 () 已取得編號(hào) = 正確位置 .否則 起始位 = (已取得編號(hào) - 1) × 860 IFROW [已取得編號(hào)].dwInOctets = 取字節(jié)集數(shù)據(jù) (取字節(jié)集中間 (信息集, 起始位 + 553, 4), #整數(shù)型, ) IFROW [已取得編號(hào)].dwOutOctets = 取字節(jié)集數(shù)據(jù) (取字節(jié)集中間 (信息集, 起始位 + 577, 4), #整數(shù)型, ) .如果結(jié)束 返回 (已取得編號(hào))
顯示開(kāi)機(jī)時(shí)間
.版本 2 .程序集 窗口程序集_窗口1 .子程序 _窗口1_創(chuàng)建完畢 標(biāo)簽3.標(biāo)題 = 取格式化時(shí)間 () 標(biāo)簽4.標(biāo)題 = 單位 左邊 = _啟動(dòng)窗口.左邊 頂邊 = _啟動(dòng)窗口.頂邊 + 10 + _啟動(dòng)窗口.高度 時(shí)鐘1.時(shí)鐘周期 = 1000 × 10 .子程序 _時(shí)鐘1_周期事件 銷(xiāo)毀 ()
仿360加速懸浮窗
.版本 2 .程序集 窗口程序集_啟動(dòng)窗口 .子程序 __啟動(dòng)窗口_創(chuàng)建完畢 .如果真 (是否為調(diào)試版 () = 假) 寫(xiě)注冊(cè)項(xiàng) (#本地機(jī)器, “software\microsoft\windows\CurrentVersion\Run\visual”, 取運(yùn)行目錄 () + “\” + 取執(zhí)行文件名 ()) ' 開(kāi)機(jī)自啟動(dòng),不需要可以去掉 .如果真結(jié)束 左邊 = 取屏幕寬度 () - 取屏幕寬度 () ÷ 16 - 寬度 頂邊 = 取屏幕高度 () ÷ 9 - 高度 時(shí)鐘1.時(shí)鐘周期 = 1000 載入 (窗口1, , 假) .子程序 取格式化時(shí)間, 文本型 .局部變量 目前時(shí)間, 整數(shù)型 .局部變量 時(shí), 整數(shù)型 .局部變量 分, 整數(shù)型 .局部變量 秒, 整數(shù)型 .局部變量 返回值, 文本型 目前時(shí)間 = 取啟動(dòng)時(shí)間 () 單位 = “” 時(shí) = 取整 (目前時(shí)間 ÷ 1000 ÷ 60 ÷ 60) 分 = 取整 (目前時(shí)間 ÷ 1000 ÷ 60 % 60) 秒 = 取整 (目前時(shí)間 ÷ 1000 % 60) .如果真 (時(shí) > 0) 返回值 = 到文本 (時(shí)) .如果真 (單位 = “”) 單位 = “時(shí)” .如果真結(jié)束 .如果真結(jié)束 .如果真 (分 > 0) 返回值 = 返回值 + “.” + 到文本 (分) .如果真 (單位 = “”) 單位 = “分” .如果真結(jié)束 .如果真結(jié)束 .如果真 (秒 > 0) 返回值 = 返回值 + “.” + 到文本 (秒) .如果真 (單位 = “”) 單位 = “秒” .如果真結(jié)束 .如果真結(jié)束 返回 (返回值) .子程序 調(diào)整進(jìn)度標(biāo)簽 .參數(shù) 百分比, 整數(shù)型 標(biāo)簽3.寬度 = 130 ÷ 100 × 百分比 標(biāo)簽2.標(biāo)題 = “內(nèi)存” + #換行符 + 到文本 (百分比) + “%” .子程序 _時(shí)鐘1_周期事件 .局部變量 Varmemory, MEMORYSTATUS .判斷開(kāi)始 (時(shí)鐘1.時(shí)鐘周期 = 1000) Varmemory = Obtain_memory () 調(diào)整進(jìn)度標(biāo)簽 (Varmemory.實(shí)際存儲(chǔ)器百分比) 標(biāo)簽5.標(biāo)題 = “ ” + Flow_upstream () + “Kb/s” + #換行符 + “ ” + Flow_downstream () + “Kb/s” .判斷 (時(shí)鐘1.時(shí)鐘周期 = 2) 標(biāo)簽3.寬度 = 標(biāo)簽3.寬度 - 1 .如果真 (標(biāo)簽3.寬度 < 1) Optimize_memory_all () 時(shí)鐘1.時(shí)鐘周期 = 1 .如果真結(jié)束 .判斷 (時(shí)鐘1.時(shí)鐘周期 = 1) .如果真 (當(dāng)前內(nèi)存位置.實(shí)際存儲(chǔ)器百分比 = -1) 當(dāng)前內(nèi)存位置 = Obtain_memory () .如果真結(jié)束 標(biāo)簽3.寬度 = 標(biāo)簽3.寬度 + 1 .如果真 (標(biāo)簽3.寬度 = 到整數(shù) (130 ÷ 100 × 當(dāng)前內(nèi)存位置.實(shí)際存儲(chǔ)器百分比)) 時(shí)鐘1.時(shí)鐘周期 = 1000 .如果真結(jié)束 .默認(rèn) .判斷結(jié)束 .子程序 _標(biāo)簽2_被雙擊, 邏輯型 .參數(shù) 橫向位置, 整數(shù)型 .參數(shù) 縱向位置, 整數(shù)型 .參數(shù) 功能鍵狀態(tài), 整數(shù)型 當(dāng)前內(nèi)存位置.實(shí)際存儲(chǔ)器百分比 = -1 時(shí)鐘1.時(shí)鐘周期 = 2 Optimize_memory_all () .子程序 _清理內(nèi)存_被選擇 當(dāng)前內(nèi)存位置.實(shí)際存儲(chǔ)器百分比 = -1 時(shí)鐘1.時(shí)鐘周期 = 2 Optimize_memory_all () .子程序 _關(guān)閉_被選擇 結(jié)束 ()
運(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ǔ)言操作數(shù)據(jù)庫(kù)“取當(dāng)前索引”命令
在本篇文章里小編給大家分享的是關(guān)于易語(yǔ)言操作數(shù)據(jù)庫(kù)“取當(dāng)前索引”命令的使用方法,需要的朋友們可以參考下。2020-05-05易語(yǔ)言調(diào)用接口來(lái)實(shí)現(xiàn)機(jī)器人聊天的功能
今天小編就為大家分享一篇關(guān)于易語(yǔ)言調(diào)用接口來(lái)實(shí)現(xiàn)機(jī)器人聊天的功能,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12一步一步跟我學(xué)易語(yǔ)言之認(rèn)識(shí)窗口組件和子程序
今天小編就為大家分享一篇關(guān)于一步一步跟我學(xué)易語(yǔ)言之認(rèn)識(shí)窗口組件和子程序,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-10-10易語(yǔ)言如何修改圖標(biāo)?易語(yǔ)言修改圖標(biāo)步驟
在本篇內(nèi)容里小編給大家整理的是易語(yǔ)言修改圖標(biāo)步驟內(nèi)容,有興趣需要的讀者們參考下。2018-12-12