如果工具提示打开,则进程未运行

时间:2014-08-02 11:22:57

标签: c# winforms process tooltip

我有一个函数可以检查给定的进程是否正在运行,并且除了该进程打开工具提示的时候它才有效。如果进程确实打开了工具提示,那么此函数返回false,我似乎无法找出问题。

public static bool isRunning(string progName, bool isId, int id)
{
    foreach (Process pro in Process.GetProcesses("."))
        if (isId)
        {
            if (pro.Id == id)
                return true;
        }
        else
        {
            if (pro.ProcessName == progName)
                return true;
        }

    return false;
}

调用此函数的一个示例 - isRunning(" chrome.exe",false,-1) isRunning("",true,248 )。 有什么我做错了或我需要检查的其他东西吗?

以下是该文件的完整代码:http://ideone.com/9CUJ5V

编辑:我部分解决了我的问题。我补充说:

foreach(Process pro in Process.GetProcessesByName(progName)){
    if(pro.MainWindowHandle != (IntPtr)0)
        return true;

根据Process.MainWindowHandle上的msdn文档,如果它没有图形界面,它将返回零。

但是下一个问题是,例如,如果我将蒸汽最小化到任务栏(因此没有窗口实际可见),它将返回true。

0 个答案:

没有答案