服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - 易语言 - 易语言仿360悬浮窗实现流量监控和内存优化的代码

易语言仿360悬浮窗实现流量监控和内存优化的代码

2022-02-23 15:29易语言源码教程 易语言

今天小编就为大家分享一篇关于易语言仿360悬浮窗实现流量监控和内存优化的代码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

DLL命令表

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
.版本 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, 整数型
  .参数 th32ProcessID, 整数型
.DLL命令 Process32First, 整数型, "Kernel32.dll", "Process32First"
  .参数 HANDLE, 整数型
  .参数 LPPROCESSENTRY32, PROCESSENTRY32
.DLL命令 Process32Next, 整数型, "Kernel32.dll", "Process32Next"
  .参数 HANDLE, 整数型
  .参数 LPPROCESSENTRY32, PROCESSENTRY32
.DLL命令 GetIfTable, 整数型, "iphlpapi", "GetIfTable"
  .参数 信息表, 字节集, 传址
  .参数 信息表尺寸, 整数型, 传址
  .参数 内参数, 整数型

全局变量表

?
1
2
3
4
5
6
.版本 2
.全局变量 当前内存位置, MEMORYSTATUS
.全局变量 原接收总计, 整数型
.全局变量 原发送总计, 整数型
.全局变量 单位, 文本型
.全局变量 已取得编号, 整数型

自定义数据类型表

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.版本 2
.数据类型 MEMORYSTATUS
  .成员 结构长度, 整数型
  .成员 实际存储器百分比, 整数型
  .成员 总物理内存, 整数型
  .成员 可用内存, 整数型
  .成员 总页文件, 整数型
  .成员 可用页文件, 整数型
  .成员 总虚拟内存, 整数型
  .成员 可用虚拟内存, 整数型
.数据类型 PROCESSENTRY32
  .成员 dwSize, 整数型
  .成员 cntUsage, 整数型
  .成员 th32ProcessID, 整数型
  .成员 th32DefaultHeapID, 整数型
  .成员 th32ModuleID, 整数型
  .成员 cntThreads, 整数型
  .成员 th32ParentProcessID, 整数型
  .成员 pcPriClassBase, 整数型
  .成员 dwFlags, 整数型
  .成员 szExeFile, 字节型, , "256"
.数据类型 MIB_IFROW
  .成员 dwInOctets, 整数型, , , 总共收到(字节)
  .成员 dwOutOctets, 整数型, , , 总共发送(字节)

Memory

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
.版本 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.th32ProcessID)
  prHandle = Process32Next (hSnapShot, pe32)
.判断循环尾 ()
CloseHandle (hSnapShot)

Traffic

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.版本 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), #整数型, )
.如果结束
返回 (已取得编号)

显示开机时间

?
1
2
3
4
5
6
7
8
9
10
.版本 2
.程序集 窗口程序集_窗口1
.子程序 _窗口1_创建完毕
标签3.标题 = 取格式化时间 ()
标签4.标题 = 单位
左边 = _启动窗口.左边
顶边 = _启动窗口.顶边 + 10 + _启动窗口.高度
时钟1.时钟周期 = 1000 × 10
.子程序 _时钟1_周期事件
销毁 ()

仿360加速悬浮窗

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
.版本 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悬浮窗实现流量监控和内存优化的代码

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接

延伸 · 阅读

精彩推荐
  • 易语言易语言设置进度条边框样式的方法

    易语言设置进度条边框样式的方法

    今天小编就为大家分享一篇关于易语言设置进度条边框样式的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随...

    易语言帮助手册4422022-01-20
  • 易语言一步一步跟我学易语言之第二个易程序菜单设计

    一步一步跟我学易语言之第二个易程序菜单设计

    今天小编就为大家分享一篇关于的一步一步跟我学易语言之第二个易程序菜单设计,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要...

    易语言帮助手册7092021-06-17
  • 易语言易语言在画板中写出指定文本当画板中已满会自动滚屏

    易语言在画板中写出指定文本当画板中已满会自动滚屏

    今天小编就为大家分享一篇关于易语言在画板中写出指定文本当画板中已满会自动滚屏,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,...

    易语言帮助手册9092022-01-12
  • 易语言易语言关于程序进程和线程的基础知识

    易语言关于程序进程和线程的基础知识

    今天小编就为大家分享一篇关于易语言关于程序进程和线程的基础知识,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起...

    三叶资源网6662022-02-24
  • 易语言实例操作易语言载入窗口

    实例操作易语言载入窗口

    在本文中小编给大家整理的是关于易语言载入窗口的教程和步骤内容,需要的可以跟着学习下...

    易语言教程网19162022-03-02
  • 易语言易语言生成exe文件的方法

    易语言生成exe文件的方法

    在本篇内容中小编给大家分享的是关于易语言生成exe文件的方法知识点,需要的朋友们参考下。...

    易语言教程网14792022-03-01
  • 易语言易语言获取指定磁盘的名称

    易语言获取指定磁盘的名称

    今天小编就为大家分享一篇关于易语言获取指定磁盘的名称,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来...

    易语言帮助手册12662022-01-04
  • 易语言一步一步跟我学易语言之关于变量

    一步一步跟我学易语言之关于变量

    今天小编就为大家分享一篇关于一步一步跟我学易语言之关于变量,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随...

    易语言帮助手册10822021-06-17