递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 4092|回复: 0
打印 上一主题 下一主题

[视窗] PC取指定进程使用率

[复制链接]

109

主题

460

帖子

2467

积分

金牌会员

Rank: 6Rank: 6

积分
2467
跳转到指定楼层
楼主
发表于 2023-4-19 11:32:36 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
PC取指定进程使用率


<火山程序 类型 = "通常" 版本 = 1 />

方法 取指定进程使用率 <公开 静态 类型 = Psapi结构 注释 = "使用率需自己计算" 注释 = "只返回数据" 折叠 折叠2
        @视窗.外部头文件 = "<AclAPI.h>\r\n<TlHelp32.h>\r\n<Psapi.h>\r<iostream>"
        @视窗.外部库 = "AdvAPI32.Lib\r\nPsapi.lib" @禁止流程检查 = 真>
参数 进程句柄 <类型 = 变整数 注释 = "默认取自身" @默认值 = 0>
{
    @ HANDLE hProcess;
    如果 (进程句柄 == 0)
    {
        @ hProcess = ::GetCurrentProcess();
    }
    否则
    {
        @ hProcess = (HANDLE)@<进程句柄>;
    }
    @ PROCESS_MEMORY_COUNTERS_EX pmc;
    @ GetProcessMemoryInfo(hProcess,(PROCESS_MEMORY_COUNTERS*)&pmc, sizeof(pmc));
    变量 Psapi结构 <类型 = Psapi结构>
    @ @<Psapi结构.结构大小>=pmc.cb;
    @ @<Psapi结构.页错误数量>=pmc.PageFaultCount;
    @ @<Psapi结构.最高工作设置大小>=pmc.PeakWorkingSetSize;
    @ @<Psapi结构.当前工作设置大小>=pmc.WorkingSetSize;
    @ @<Psapi结构.最高页使用>=pmc.QuotaPeakPagedPoolUsage;
    @ @<Psapi结构.当前页使用>=pmc.QuotaPagedPoolUsage;
    @ @<Psapi结构.最高非页使用>=pmc.QuotaPeakNonPagedPoolUsage;
    @ @<Psapi结构.当前非页使用>=pmc.QuotaNonPagedPoolUsage;
    @ @<Psapi结构.页文件使用>=pmc.PagefileUsage;
    @ @<Psapi结构.最高页文件使用>=pmc.PeakPagefileUsage;
    返回 (Psapi结构)

}



<火山程序 类型 = "通常" 版本 = 1 />

类 Psapi结构 <公开 折叠 @视窗.结构类 = 0>
{
    变量 结构大小 <公开 类型 = 整数>
    变量 页错误数量 <公开 类型 = 长整数>
    变量 最高工作设置大小 <公开 类型 = 长整数>
    变量 当前工作设置大小 <公开 类型 = 长整数>
    变量 最高页使用 <公开 类型 = 长整数>
    变量 当前页使用 <公开 类型 = 长整数>
    变量 最高非页使用 <公开 类型 = 长整数>
    变量 当前非页使用 <公开 类型 = 长整数>
    变量 页文件使用 <公开 类型 = 长整数>
    变量 最高页文件使用 <公开 类型 = 长整数>

    #
}







回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-24 08:48 , Processed in 0.091717 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表