0
点赞
收藏
分享

微信扫一扫

开源deskvideosys办公行为管理代理端代码解读

开源deskvideosys办公行为管理软件分为两部分,一个是服务器,一个是代理端,这里只分析代理端的代码,代理端(agent)的代码是用vc++写的,主要运行在windows操作系统上,目前实现的功能还不是太多,主要是收集了pc端的程序运行信息,具体的源码地址为​​https://github.com/boxiaojishu/deskvideosys​​有兴趣的同学可以下载下来,分析学习下, 是研究vc编程与windows机制不错的例子。

下面再说下具体代码:

下面这段代码实现了一个读取windows操作系统的硬件信息的函数

bool getDevcieInfo(char* cmd, list<string>& resultList) {

   char buffer[BUFFER_SIZE];

   bool ret = false;

   FILE* pipe = _popen(cmd, "r"); //打开管道,并执行命令

   if (!pipe)

   return ret;

   const char* name[20] = { "UUID","ProcessorId","SerialNumber" };

   int len0 = strlen(name[0]), len1 = strlen(name[1]), len2 = strlen(name[2]);

   bool isOk = false;

   while (!feof(pipe))

   {

   if (fgets(buffer, BUFFER_SIZE, pipe))

   {

   if (strncmp(name[0], buffer, len0) == 0

   || strncmp(name[1], buffer, len1) == 0

   || strncmp(name[2], buffer, len2) == 0) // 能够正确获取信息

   {

   isOk = true;

   continue;

   }

   if (isOk == false

   || strcmp("\r\n", buffer) == 0) //去掉windows无用的空行

   {

   continue;

   }

   ret = true;

   resultList.push_back(string(buffer));

   }

   }

   _pclose(pipe); // 关闭管道

   return ret;

}


举报

相关推荐

0 条评论