c/c++通过命令来获取win下的用户的总数个数(c++怎么获取到操作系统的在线用户个数)

 如图所示获取这里的在线用户的总个数:

c/c++通过命令来获取win下的用户的总数个数(c++怎么获取到操作系统的在线用户个数)_第1张图片

#include "pch.h"
#include 
#include 
using namespace std;
//获得用户在线的个数

// 描述:execmd函数执行命令,并将结果存储到result字符串数组中   
// 参数:cmd表示要执行的命令  
// result是执行的结果存储的字符串数组  
// 函数执行成功返回1,失败返回0    
int execmd(char* cmd, char* result) {
	char buffer[128];                         //定义缓冲区                          
	FILE* pipe = _popen(cmd, "r");            //打开管道,并执行命令   
	if (!pipe)
		return 0;                      //返回0表示运行失败   

	while (!feof(pipe)) {
		if (fgets(buffer, 128, pipe)) {             //将管道输出到result中   
			strcat_s(result, 1024 * 4, buffer);
		}
	}
	_pclose(pipe);                            //关闭管道   
	return 1;                                 //返回1表示运行成功   
}
int  getUserCount() {
	int i = 0;
	char result[1024 * 4] = "";
	//定义存放结果的字符串数组   
    char *cmd = "query user";
	char *next_token = nullptr;
	if (1 == execmd(cmd, result)) {
		const char *d = " ,*";
		char *p;
		p = strtok_s(result,d, &next_token);
		while (p)
		{
			i++;
			p = strtok_s(NULL, d, &next_token);
		}
	}

	int count = ((i - 6) + 1) / 7;
	return count;

}

int main() {
	////获取用户的数量
	int connUser = getUserCount();
	cout << connUser << endl;
	return 0;
}

 

 

你可能感兴趣的:(c/c++)