易语言如何仿360悬浮窗实现流量监控和内存优化

这篇文章将为大家详细讲解有关易语言如何仿360悬浮窗实现流量监控和内存优化,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、网站建设、外贸营销网站建设、宜秀网络推广、微信小程序开发、宜秀网络营销、宜秀企业策划、宜秀品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供宜秀建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com

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悬浮窗实现流量监控和内存优化

关于“易语言如何仿360悬浮窗实现流量监控和内存优化”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


当前标题:易语言如何仿360悬浮窗实现流量监控和内存优化
网站网址:http://ybzwz.com/article/jsddhc.html