使用Windows计数器的方法(c++)

最近需要做一个具有简单功能的“任务管理器”,要求是获得当前进程列表及进程拥有者/进程内存使用量/PID的信息,还需要获得当前系统内存总量和已用内存量,在google、csdn、baidu、msdn查阅多时,基本都解决了,这里记录一下主要思路。

获得系统进程列表:
先用CreateToolhelp32Snapshot()函数生成系统进程快照,
然后用Process32First()和Process32Next()就可以获得进程名称和对应的PID了

对指定的进程,获得它的拥有者:
先用OpenProcess()打开指定进程,
再用OpenProcessToken()获得令牌,
再用GetTokenInformation()获得令牌信息(其中就包含进程拥有者的SID),
再用LookupAccountSid()将SID翻译成用户名

获得指定进程的内存使用量:(用性能计数器的方式获得)
先用PdhOpenQuery()打开一个查询,
再用PdhAddCounter()对这个查询添加计数器:
例子:
监控指定进程消耗CPU时间
\Process(%s)\% Processor Time %s是进程名(进程名为对应的应用程序名称去掉扩展名剩下的部分)
需要监控某个进程的内存使用情况,字符串如下:
\Process(%s)\Working Set %s是进程名
再用PdhCollectQueryData()收集查询信息,
再用PdhGetFormattedCounterValue()将查询值格式化,
最后调用PdhCloseQuery()结束查询

时间: 2024-08-02 14:13:50

使用Windows计数器的方法(c++)的相关文章

Python闭包实现计数器的方法

  这篇文章主要介绍了Python闭包实现计数器的方法,分析了闭包的概念及实现计数器的相关技巧,需要的朋友可以参考下 本文实例讲述了Python闭包实现计数器的方法.分享给大家供大家参考.具体实现方法如下: 先来看看专业的解释:闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数.这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外.所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体. 代码如下: ? 1 2

删除Windows服务的方法

首先要知道什么是Windows服务? Windows服务也称为Windows Service,它是Windows操作系统和Windows网络的基础,属于系统核心的一部分,它支持着整个Windows的各种操作.诸如DNS客户端.打印程序.Windows更新服务.计划任务.Windows时间服务.告警器等服务,它们关系到机器能否正确运行.如果不能适当地管理这些服务,就会影响到机器的正常操作. 一个服务首先是一个Win32可执行程序,或者是是rundll32.exe来运行一个.dll的方式形成的进程.

Win7系统中查看Windows日志的方法

  Win7系统中查看Windows日志的方法          Windows日志位于计算机管理的事件查看器中,用于存储来自旧版应用程序的事件以及适用于整个系统的事件. Win7系统的Windows日志包括五个类别,分别为应用程序日志.安全日志.系统日志.安装程序日志和转发事件日志. 应用程序日志包含由应用程序记录的事件;安全日志包含系统的登录.文件资源的使用以及与系统安全相关的事件;系统日志包含 Windows 系统组件记录的事件;安装程序日志包含与应用程序安装有关的事件;转发事件日志用于存

windows删除服务方法

  windows删除服务方法 1.删除服务 办法一:用sc.exe这个Windows命令 开始--运行--cmd.exe,然后输入sc就可以看到了.使用办法很简单: sc delete "服务名" (如果服务名中间有空格,就需要前后加引号)如针对上面的: sc delete ConnectMON 办法二:直接进行注册表编辑 打开注册表编辑器,找到下面的键值: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices 一般服务会以相同的名字在这

2种windows版本查看方法

  windows版本查看方法一:从电脑系统中查看 1.在Windows电脑桌面的"计算机"上鼠标右键,然后点击"属性",如下图所示. 注:如果是Win8电脑,则为在"这台电脑"图标上鼠标右键,然后选择属性. 2.接下就可以打开系统界面了,在这里就可以找到Windows版本,如下图所示. 图中小编电脑是Windows 7系统,Windows版本为Win7旗舰版 Service Pack 1(SP1). windows版本查看方法二:命令查看法 1

卸载win10内置windows app的方法

原文:卸载win10内置windows app的方法 2015年,微软推出了windows10操作系统,其以漂亮的界面.良好的操作方式.方便的推送升级迅速获得了好多人的好评,因此,好多同学都换了window10操作系统.但是,微软沿袭了win8的做法,内置了很多不实用的windows app,比如Groove音乐.人脉.地图....这里,我来为大家介绍一下怎么卸载win10中的内置应用(高手请默默飘过),以下为Groove音乐截图:   要卸载它,我们用微软自带的Windows PowerShe

python关闭windows进程的方法_python

本文实例讲述了python关闭windows进程的方法.分享给大家供大家参考.具体如下: 下面的python代码根据进程的名字调用windows的taskkill命令关闭指定的进程 import os command = 'taskkill /F /IM QQ.exe' #比如这里关闭QQ进程 os.system(command) 希望本文所述对大家的Python程序设计有所帮助. 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮

windows10系统打开Windows控制面板的方法

Windows 10: 1.同时按下Windows徽标键+X键,调出超级菜单,点击"控制面板":   2.打开控制面板后下的查看方式分别为"类别"."大图标"."小图标". 好了以上就是小编为各位整理的关于windows10系统打开Windows控制面板的方法的全部内容了,其实就是有快捷键或右击开始菜单在弹出菜单就可以找到控制面板了.

使用JavaScript制作一个简单的计数器的方法_基础知识

设计思想 该方法的关键是Cookie技术和动态图像特性的综合运用.使用Cookie,可以在用户端的硬盘上记录用户的数据,下次访问此站点时,即可读取用户端硬盘的Cookie,直接得知来访者的身份和访问次数等有关信息.JavaScript中通过document.cookie属性访问Cookie,这个属性包括名字.失效日期.有效域名.有效URL路径等.用等号分开的名字和其值是Cookie的实际数据,本例中用来存储该访问者访问该页面的次数.通过把Web页中的图像映射到一个Images数组,一定条件下修改