管道与字符串,判断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)    收藏  举报

导航