易语言仿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, 整数型
  .参数 th32ProcessID, 整数型
.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, 整数型
  .成员 th32ProcessID, 整数型
  .成员 th32DefaultHeapID, 整数型
  .成员 th32ModuleID, 整数型
  .成员 cntThreads, 整数型
  .成员 th32ParentProcessID, 整数型
  .成员 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.th32ProcessID)
  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 ()
.子程序 _关闭_被选择
结束 ()

运行结果:

总结

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

(0)

相关推荐

  • 易语言内存读取获得当前PC已经登陆微信号的代码

    取当前PC登陆微信号的代码 此功能需要加载精易模块5.6 .版本 2 .程序集 窗口程序集_启动窗口 .子程序 __启动窗口_创建完毕 .局部变量 局部_登陆个数, 整数型 .局部变量 局部_微信号, 文本型, , "0" .局部变量 i, 整数型 局部_登陆个数 = 取当前登陆微信号 (局部_微信号) .计次循环首 (局部_登陆个数, i) 微信号编辑框.内容 = "当前PC登陆微信号:" + 局部_微信号 [i] .计次循环尾 () .子程序 取当前登陆微信号,

  • 易语言对象内存模型详解

    易语言对象的所有方法都是虚的.易语言的对象内存布局和COM几乎一致! 大家在学习的时候有任何问题,可以在下方的留言区讨论,感谢大家对我们的支持.

  • 详解易语言内存修改框架

    源码 ID = 进程_名取ID ("PlantsVsZombies.exe") 调试输出 (ID) 基地址 = 内存.读整数 (ID, 进制_十六到十 ("6A9EC0")) 调试输出 (基地址) 一级偏移 = 内存.读整数 (ID, 基地址 + 进制_十六到十 ("768")) 调试输出 (基地址) 监视热键 (&阳光增加, #F8键) 阳光 = 内存.读整数 (ID, 一级偏移 + 进制_十六到十 ("5560")

  • 易语言优化进程内存方法

    本篇文章主要向您介绍如何使用编程软件"易语言"做到指定进程进行"内存优化" 1.启动"易语言". 2.选择"菜单栏"中的"f.程序",再在弹出的列表中选择"N.新建". 3.在弹出的标题为"新建:"的窗口中选择"Windows窗口程序",再点击标题为"确定(o)"的按钮. 4.在背景为灰色的,且标题为""(空

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

    DLL命令表 .版本 2 .DLL命令 GlobalMemoryStatus, 整数型, "kernel32", "GlobalMemoryStatus" .参数 lpBuffer, MEMORYSTATUS .DLL命令 OpenProcess, 整数型, "Kernel32.dll", "OpenProcess" .参数 dwDesiredAccess, 整数型 .参数 bInheritHandle, 整数型 .参数 dw

  • Android仿360悬浮小球自定义view实现示例

    Android仿360悬浮小球自定义view实现示例 效果图如下: 实现当前这种类似的效果 和360小球 悬浮桌面差不错类似.这种效果是如何实现的呢.废话不多说 ,直接上代码. 1.新建工程,添加悬浮窗权限. <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> 2.自定义一个FloatMessagerMainWindow import android.content.Contex

  • Android编程实现悬浮窗获取并显示当前内存使用量的方法

    本文实例讲述了Android编程实现悬浮窗获取并显示当前内存使用量的方法.分享给大家供大家参考,具体如下: 运行效果: 其中: 这一块就是悬浮窗,可以随意拖动,动态显示当前内存使用量. 下面看一下代码是如何实现的: 悬浮窗的实现是用了一个service,为什么要用service呢?了解service特点的大体就会明白.下面看一下: public class FloatService extends Service { WindowManager wm = null; WindowManager.

  • 用java等语言仿360首页拼音输入全模糊搜索和自动换肤

    360首页搜索效果如下 1.完成编写的schoolnet校园网主要目录结构如下 主要实现支持中文.拼音首字母.拼音全字母的智能搜索和换肤 页面效果如下 主要核心代码如下 1.head.jsp <%@page import="java.io.File"%> <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@

  • 易语言仿按键精灵录制键盘鼠标操作的代码

    DLL命令表 .版本 2 .DLL命令 取按键状态, 短整数型, "user32.dll", "GetAsyncKeyState" .参数 鼠标键, 整数型 .DLL命令 取鼠标位置, 整数型, "user32.dll", "GetCursorPos" .参数 当前鼠标位置, 鼠标位置, 传址 .DLL命令 模拟鼠标按键, , , "mouse_event" .参数 鼠标动作, 整数型 .参数 水平位置,

  • 易语言解析B站直播间的地址获得弹幕内容的代码

    常量数据表 .版本 2 .常量 常量1, "<文本长度: 31>", , <span class="info-text" title=" .常量 常量2, "<文本长度: 2>", , "> .常量 常量3, "<文本长度: 19>", , http://i0.hdslb.com.常量 常量4, "<文本长度: 4>", , .

  • 易语言用夜神模拟器实现抖音自动点赞和评论的代码

    用夜神模拟器实现抖音自动点赞和评论的代码 实现此功能需要加载精易模块5.6和大漠中文类模块 分辨率设置800x600,窗口大小设置固定. .版本 2 .支持库 iext .支持库 iext2 .程序集 窗口程序集_启动窗口 .程序集变量 集_大漠, 大漠中文类 .程序集变量 集_句柄, 整数型 .程序集变量 集_评论内容, 文本型 .程序集变量 集_分割文本, 文本型, , "0" .子程序 __启动窗口_创建完毕 集_大漠.初始_创建_破解 () 置随机数种子 () .子程序 功能_

  • 易语言利用鼠标模拟点击的方式实现自动画图的代码

    DLL命令表 .版本 2 .DLL命令 PostMessageA, 整数型, "user32.dll", "PostMessageA", , 如果函数调用成功,返回非零值:如果函数调用失败,返回值是零 .参数 hWnd, 整数型, , 其窗口程序接收消息的窗口的句柄 .参数 Msg, 整数型, , 指定被寄送的消息 .参数 wParam, 整数型, , 指定附加的消息特定的信息 .参数 IParam, 整数型, , 指定附加的消息特定的信息 自动绘画的代码 此功能需

  • 易语言通过百度ocr接口识别图片记录微信转账金额的代码

    封包编码 .版本 2 .程序集 程序集1 .子程序 取内容, 文本型 .参数 封包, 文本型 .局部变量 a, 整数型 .局部变量 b, 整数型 .局部变量 ls, 文本型 .如果真 (寻找文本 (封包, "[]", , 假) ≠ -1 或 寻找文本 (封包, "head", , 假) ≠ -1 或 封包 = "") 输出调试文本 (封包) 返回 ("") .如果真结束 a = 寻找文本 (封包, "[",

  • 易语言查找指定颜色并将鼠标移动到指定坐标的代码

    DLL命令表 .版本 2 .DLL命令 移动鼠标, , "user32", "SetCursorPos" .参数 x, 整数型 .参数 y, 整数型 查找指定颜色例程 .版本 2 .程序集 窗口程序集1 .子程序 _查找按钮_被单击, , , 查找颜色 .局部变量 临时字节集, 字节集 .局部变量 颜色, 字节集 .局部变量 找到位置, 整数型 .局部变量 x, 整数型 .局部变量 y, 整数型 .局部变量 宽, 整数型 .局部变量 高, 整数型 临时字节集 = 快

随机推荐