例如QQ,怎么判断QQ是否在运行呢。。求解。。谢谢!!

解决方案 »

  1.   

    foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses())
     {
          if (p.ProcessName=="QQ.exe")
           {
            你的操作
           }
     }
      

  2.   

    判断进程中是否有QQ,代码:foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses())
     {
      if (p.ProcessName=="QQ.exe")
      {
          //QQ在运行
      }
     }
      

  3.   

    System.Threading.Mutex mutex = new System.Threading.Mutex(false,"MES");
    bool Running = !mutex.WaitOne(0, false);
    if (Running)
    {
      MessageBox.Show("另一个进程正在运行!", "提示", MessageBoxButtons.OK,MessageBoxIcon.Information);
    }
    else
    {}
      

  4.   

    反正我知道疼讯一度是使用进程名判断程序是否在运行的,但是那是很2B的做法。
    如果要判断你自己的程序是否在运行的话,可以给你的程序加一个GUID,这样可以确保你的判断结果是真实的。bool createdNew;
                const string globalGuid = "Global\\C5E5A797-0BF2-494B-BBED-056ABA095C12";
                Mutex mutex = new Mutex(true, globalGuid, out createdNew);
                if (!createdNew)
                {
                    //程序正在运行
                }
                else
                {
                    //程序没有运行
                }
      

  5.   

    我只知道Mutex可以实现进程互斥,但不知道怎么用。学习了。
      

  6.   

    但是X64下QQ进程名可能是  QQ.exe *32 这样的名称啊。。
      

  7.   

    那就多层判断 
    if (p.ProcessName=="QQ.exe" || p.ProcessName=="QQ.exe *32" )
      

  8.   


    因为64位系统中QQ进程名是QQ.exe *32  所以不能这么直接写名字啊,需要模糊查询的。
      

  9.   

    Mutex可以实现进程互斥就可以做到啦