您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關易語言如何仿360懸浮窗實現流量監控和內存優化,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
DLL命令表
.版本 2 .DLL命令 GlobalMemoryStatus, 整數型, "kernel32", "GlobalMemoryStatus" .參數 lpBuffer, MEMORYSTATUS .DLL命令 OpenProcess, 整數型, "Kernel32.dll", "OpenProcess" .參數 dwDesiredAccess, 整數型 .參數 bInheritHandle, 整數型 .參數 dwProcessId, 整數型 .DLL命令 SetProcessWorkingSetSize, 整數型, "kernel32.dll", "SetProcessWorkingSetSize" .參數 HANDLE .參數 SIZE_T .參數 SIZE_T .DLL命令 CloseHandle, 整數型, "kernel32.dll", "CloseHandle" .參數 HANDLE, 整數型 .DLL命令 CreateToolhelp32Snapshot, 整數型, "Kernel32.dll", "CreateToolhelp32Snapshot" .參數 dwFlags, 整數型 .參數 th42ProcessID, 整數型 .DLL命令 Process32First, 整數型, "Kernel32.dll", "Process32First" .參數 HANDLE, 整數型 .參數 LPPROCESSENTRY32, PROCESSENTRY32 .DLL命令 Process32Next, 整數型, "Kernel32.dll", "Process32Next" .參數 HANDLE, 整數型 .參數 LPPROCESSENTRY32, PROCESSENTRY32 .DLL命令 GetIfTable, 整數型, "iphlpapi", "GetIfTable" .參數 信息表, 字節集, 傳址 .參數 信息表尺寸, 整數型, 傳址 .參數 內參數, 整數型
全局變量表
.版本 2 .全局變量 當前內存位置, MEMORYSTATUS .全局變量 原接收總計, 整數型 .全局變量 原發送總計, 整數型 .全局變量 單位, 文本型 .全局變量 已取得編號, 整數型
自定義數據類型表
.版本 2 .數據類型 MEMORYSTATUS .成員 結構長度, 整數型 .成員 實際存儲器百分比, 整數型 .成員 總物理內存, 整數型 .成員 可用內存, 整數型 .成員 總頁文件, 整數型 .成員 可用頁文件, 整數型 .成員 總虛擬內存, 整數型 .成員 可用虛擬內存, 整數型 .數據類型 PROCESSENTRY32 .成員 dwSize, 整數型 .成員 cntUsage, 整數型 .成員 th42ProcessID, 整數型 .成員 th42DefaultHeapID, 整數型 .成員 th42ModuleID, 整數型 .成員 cntThreads, 整數型 .成員 th42ParentProcessID, 整數型 .成員 pcPriClassBase, 整數型 .成員 dwFlags, 整數型 .成員 szExeFile, 字節型, , "256" .數據類型 MIB_IFROW .成員 dwInOctets, 整數型, , , 總共收到(字節) .成員 dwOutOctets, 整數型, , , 總共發送(字節)
Memory
.版本 2 .程序集 Memory .子程序 Obtain_memory, MEMORYSTATUS .局部變量 reg_Memory, MEMORYSTATUS reg_Memory.結構長度 = 32 GlobalMemoryStatus (reg_Memory) 返回 (reg_Memory) .子程序 Optimize_memory, 整數型 .參數 pid, 整數型 .局部變量 hProcess, 整數型 hProcess = OpenProcess (2035711, 0, pid) .如果真 (SetProcessWorkingSetSize (hProcess, -1, -1) = 1) CloseHandle (hProcess) 返回 (1) .如果真結束 CloseHandle (hProcess) 返回 (0) .子程序 Optimize_memory_all .局部變量 hSnapShot, 整數型 .局部變量 prHandle, 整數型 .局部變量 pe32, PROCESSENTRY32 hSnapShot = CreateToolhelp32Snapshot (15, 0) .如果真 (hSnapShot = 0) .如果真結束 pe32.dwSize = 1024 prHandle = Process32First (hSnapShot, pe32) .判斷循環首 (prHandle ≠ 0) Optimize_memory (pe32.th42ProcessID) prHandle = Process32Next (hSnapShot, pe32) .判斷循環尾 () CloseHandle (hSnapShot)
Traffic
.版本 2 .程序集 Traffic .子程序 Flow_downstream, 文本型, , 返回下載速度 .局部變量 temp, MIB_IFROW, , "0" .局部變量 編號, 整數型 .局部變量 返回值, 文本型 編號 = Flow (temp) .如果真 (原接收總計 = 0) 原接收總計 = temp [編號].dwInOctets .如果真結束 返回值 = 數值到格式文本 ((temp [編號].dwInOctets - 原接收總計) ÷ 1024, 1, 假) 原接收總計 = temp [編號].dwInOctets 返回 (返回值) .子程序 Flow_upstream, 文本型, , 返回上傳速度 .局部變量 temp, MIB_IFROW, , "0" .局部變量 編號, 整數型 .局部變量 返回值, 文本型 編號 = Flow (temp) .如果真 (原發送總計 = 0) 原發送總計 = temp [編號].dwOutOctets .如果真結束 返回值 = 數值到格式文本 ((temp [編號].dwOutOctets - 原發送總計) ÷ 1024, 1, 假) 原發送總計 = temp [編號].dwOutOctets 返回 (返回值) .子程序 Flow, 整數型 .參數 IFROW, MIB_IFROW, 參考 數組 .局部變量 緩沖區尺寸, 整數型 .局部變量 信息集, 字節集 .局部變量 成員數, 整數型 .局部變量 起始位, 整數型 .局部變量 次, 整數型 .局部變量 正確位置, 整數型 GetIfTable ({ 0 }, 緩沖區尺寸, 0) .如果真 (緩沖區尺寸 ≤ 0) 返回 (0) .如果真結束 信息集 = 取空白字節集 (緩沖區尺寸) .如果真 (GetIfTable (信息集, 緩沖區尺寸, 1) ≠ 0) 返回 (0) .如果真結束 成員數 = 取字節集數據 (取字節集左邊 (信息集, 4), #整數型, ) 信息集 = 取字節集右邊 (信息集, 緩沖區尺寸 - 4) 重定義數組 (IFROW, 假, 成員數) .如果 (已取得編號 = 0) .計次循環首 (成員數, 次) 起始位 = (次 - 1) × 860 IFROW [次].dwInOctets = 取字節集數據 (取字節集中間 (信息集, 起始位 + 553, 4), #整數型, ) IFROW [次].dwOutOctets = 取字節集數據 (取字節集中間 (信息集, 起始位 + 577, 4), #整數型, ) .如果真 (IFROW [次].dwInOctets > 1 且 IFROW [次].dwOutOctets > 1) 正確位置 = 次 .如果真結束 .計次循環尾 () 已取得編號 = 正確位置 .否則 起始位 = (已取得編號 - 1) × 860 IFROW [已取得編號].dwInOctets = 取字節集數據 (取字節集中間 (信息集, 起始位 + 553, 4), #整數型, ) IFROW [已取得編號].dwOutOctets = 取字節集數據 (取字節集中間 (信息集, 起始位 + 577, 4), #整數型, ) .如果結束 返回 (已取得編號)
顯示開機時間
.版本 2 .程序集 窗口程序集_窗口1 .子程序 _窗口1_創建完畢 標簽3.標題 = 取格式化時間 () 標簽4.標題 = 單位 左邊 = _啟動窗口.左邊 頂邊 = _啟動窗口.頂邊 + 10 + _啟動窗口.高度 時鐘1.時鐘周期 = 1000 × 10 .子程序 _時鐘1_周期事件 銷毀 ()
仿360加速懸浮窗
.版本 2 .程序集 窗口程序集_啟動窗口 .子程序 __啟動窗口_創建完畢 .如果真 (是否為調試版 () = 假) 寫注冊項 (#本地機器, “software\microsoft\windows\CurrentVersion\Run\visual”, 取運行目錄 () + “\” + 取執行文件名 ()) ' 開機自啟動,不需要可以去掉 .如果真結束 左邊 = 取屏幕寬度 () - 取屏幕寬度 () ÷ 16 - 寬度 頂邊 = 取屏幕高度 () ÷ 9 - 高度 時鐘1.時鐘周期 = 1000 載入 (窗口1, , 假) .子程序 取格式化時間, 文本型 .局部變量 目前時間, 整數型 .局部變量 時, 整數型 .局部變量 分, 整數型 .局部變量 秒, 整數型 .局部變量 返回值, 文本型 目前時間 = 取啟動時間 () 單位 = “” 時 = 取整 (目前時間 ÷ 1000 ÷ 60 ÷ 60) 分 = 取整 (目前時間 ÷ 1000 ÷ 60 % 60) 秒 = 取整 (目前時間 ÷ 1000 % 60) .如果真 (時 > 0) 返回值 = 到文本 (時) .如果真 (單位 = “”) 單位 = “時” .如果真結束 .如果真結束 .如果真 (分 > 0) 返回值 = 返回值 + “.” + 到文本 (分) .如果真 (單位 = “”) 單位 = “分” .如果真結束 .如果真結束 .如果真 (秒 > 0) 返回值 = 返回值 + “.” + 到文本 (秒) .如果真 (單位 = “”) 單位 = “秒” .如果真結束 .如果真結束 返回 (返回值) .子程序 調整進度標簽 .參數 百分比, 整數型 標簽3.寬度 = 130 ÷ 100 × 百分比 標簽2.標題 = “內存” + #換行符 + 到文本 (百分比) + “%” .子程序 _時鐘1_周期事件 .局部變量 Varmemory, MEMORYSTATUS .判斷開始 (時鐘1.時鐘周期 = 1000) Varmemory = Obtain_memory () 調整進度標簽 (Varmemory.實際存儲器百分比) 標簽5.標題 = “ ” + Flow_upstream () + “Kb/s” + #換行符 + “ ” + Flow_downstream () + “Kb/s” .判斷 (時鐘1.時鐘周期 = 2) 標簽3.寬度 = 標簽3.寬度 - 1 .如果真 (標簽3.寬度 < 1) Optimize_memory_all () 時鐘1.時鐘周期 = 1 .如果真結束 .判斷 (時鐘1.時鐘周期 = 1) .如果真 (當前內存位置.實際存儲器百分比 = -1) 當前內存位置 = Obtain_memory () .如果真結束 標簽3.寬度 = 標簽3.寬度 + 1 .如果真 (標簽3.寬度 = 到整數 (130 ÷ 100 × 當前內存位置.實際存儲器百分比)) 時鐘1.時鐘周期 = 1000 .如果真結束 .默認 .判斷結束 .子程序 _標簽2_被雙擊, 邏輯型 .參數 橫向位置, 整數型 .參數 縱向位置, 整數型 .參數 功能鍵狀態, 整數型 當前內存位置.實際存儲器百分比 = -1 時鐘1.時鐘周期 = 2 Optimize_memory_all () .子程序 _清理內存_被選擇 當前內存位置.實際存儲器百分比 = -1 時鐘1.時鐘周期 = 2 Optimize_memory_all () .子程序 _關閉_被選擇 結束 ()
運行結果:
關于“易語言如何仿360懸浮窗實現流量監控和內存優化”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。