ゞ情非得已Sky 发表于 2023-4-19 11:32:36

PC取指定进程使用率

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>
{
    变量 结构大小 <公开 类型 = 整数>
    变量 页错误数量 <公开 类型 = 长整数>
    变量 最高工作设置大小 <公开 类型 = 长整数>
    变量 当前工作设置大小 <公开 类型 = 长整数>
    变量 最高页使用 <公开 类型 = 长整数>
    变量 当前页使用 <公开 类型 = 长整数>
    变量 最高非页使用 <公开 类型 = 长整数>
    变量 当前非页使用 <公开 类型 = 长整数>
    变量 页文件使用 <公开 类型 = 长整数>
    变量 最高页文件使用 <公开 类型 = 长整数>

    #
}







页: [1]
查看完整版本: PC取指定进程使用率