管道与字符串,判断QQ是否运行以及QQ当前运行的个数
1 #define _CRT_SECURE_NO_WARNINGS 2 #include<stdio.h> 3 #include<stdlib.h> 4 #include<string.h> 5 6 int exeshell(char *cmd,char *result)// cmd为传递的指令 result 为返回的结果 7 { 8 FILE *pf = _popen(cmd, "r");// 打开一个管道 用管道执行一个cmd 9 if (pf==NULL) 10 { 11 printf("创建管道失败!"); 12 return 0; 13 } 14 else 15 { 16 while (!feof(pf))//到文件末尾返回1,没有返回0 17 { 18 char str[256] = { 0 }; 19 if (fgets(str,256,pf))//返回值就是读到多少个字符 20 { 21 strcat(result, str);//拼接字符串 22 } 23 24 } 25 _pclose(pf);//关闭管道 26 return 1; 27 } 28 29 } 30 31 void main() 32 { 33 char result[1024 * 9] = { 0 };//缓冲区 34 if (exeshell("tasklist",result)!=0) 35 { 36 printf("%s",result); 37 } 38 39 printf("\n"); 40 41 int i = 0;// 标记有多少个QQ在运行 42 char *p = strstr(result,"QQ.exe");// 判断QQ.exe 是否存在于result中 43 if (p==NULL) 44 { 45 printf("QQ未在运行\n"); 46 } 47 else 48 { 49 // strstr 是在串中查找指定字符串的第一次出现 QQ.exe 占六个字节 所以这里为 p+6 50 for (char *p = strstr(result, "QQ.exe"); p != NULL;p=strstr(p+6,"QQ.exe")) 51 { 52 i++; 53 } 54 55 printf("QQ在运行!一共有%d个QQ在运行\n",i); 56 } 57 58 system("pause"); 59 }
长风破浪会有时,直挂云帆济沧海
posted on 2015-05-14 08:52 Dragon-wuxl 阅读(215) 评论(0) 收藏 举报
浙公网安备 33010602011771号