首页 新闻 会员 周边

传入指定进程判断状态,但一直返回false!!是不是属性不对???

1
悬赏园豆:5 [已解决问题] 解决于 2012-04-18 10:26

 var a = System.Diagnostics.Process.GetProcessesByName("QQEIM");
            bool b;
            foreach (var p in a)
            {
                 b= p.HasExited;      //bool类型,获取指示关联进程是否已终止的值
                if (b==true)
            {
                MessageBox.Show("打开");
            }
                else
                {
                    MessageBox.Show("关闭");
                }
            }

C#
木木学习的主页 木木学习 | 初学一级 | 园豆:71
提问于:2012-04-17 11:23
< >
分享
最佳答案
1
var a = System.Diagnostics.Process.GetProcessesByName("QQPlayer");
             if (a.Length > 0)
             {
                 bool b;
                 foreach (var s in a.Cast<Process>())
                 {
                     b = !s.HasExited;    //指示关联进程未终止
                     if (b == true)
                     {
                         Console.WriteLine("进程正在运行");
                     }
                     else
                     {
                         Console.WriteLine("进程未运行");
                     }
                 }
             }
             else
             {
                 Console.WriteLine("该进程不存在");
             }
收获园豆:5
Halower | 小虾三级 |园豆:1723 | 2012-04-17 11:57

呵呵,谢谢呢!那要是给多个指定进程的话是不是要声明个集合呢?

木木学习 | 园豆:71 (初学一级) | 2012-04-17 13:53

@木木学习: 不需要那么麻烦,可以直接把几个你要的进程放到数组里,之后遍历传给GetProcessesByName函数就行了。

Halower | 园豆:1723 (小虾三级) | 2012-04-17 14:36

@谢舸哥: 那要声明个数组落?可不可以演示给我看一下下呢。。。。。

木木学习 | 园豆:71 (初学一级) | 2012-04-17 14:54

@木木学习: 

 class Program
    {
        static void Main(string[] args)
        {
            string[] procName = { "QQ", "QQPlayer", "QQ游戏大厅" };
            GetProByName(procName);
            Console.ReadKey();
        }
        public static void GetProByName(string[] arr)
        {
            foreach (string pro in arr)
            {
                var a = System.Diagnostics.Process.GetProcessesByName(pro);
                if (a.Length > 0)
                {
                    bool b;
                    foreach (var s in a.Cast<Process>())
                    {
                        b = !s.HasExited;    //指示关联进程未终止
                        if (b == true)
                        {
                            Console.WriteLine(pro + "正在运行");
                        }
                    }
                }
                else
                {
                    Console.WriteLine(pro + "进程不存在");
                }
            }

        }

    }

 

Halower | 园豆:1723 (小虾三级) | 2012-04-17 18:50

@谢舸哥: 我好崇拜你额!!!!呜呜,你怎么可以那么牛啊........

木木学习 | 园豆:71 (初学一级) | 2012-04-18 10:13
其他回答(1)
1

是否已终止,?  反回true的话是终止了,反回false是未终止,你刚刚好搞反了。

只会造轮子 | 园豆:2274 (老鸟四级) | 2012-04-17 11:48

哦,哦!是这样的额,呵呵,谢谢呢!!!

支持(0) 反对(0) 木木学习 | 园豆:71 (初学一级) | 2012-04-17 13:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册