如何在ProcessID C#上找到窗口句柄

时间:2018-10-21 20:45:47

标签: c#

我正在尝试查找具有特定名称的进程,看看是否存在Class:CTX WndClass,如果存在。.每30秒执行一次循环检查。

如果没有关闭,请等待30秒,以查看是否现在关闭了进程。

这是我到目前为止的内容,但它告诉我期望在第51行显示“}”,我不明白为什么会笑。

这是问题,就在其他地方之前

private static void FindMain(int handle)
            {
                // Get the class.
                StringBuilder sbClass = new StringBuilder(256);
                GetClassName(handle, sbClass, sbClass.Capacity);

                if (sbClass.Length == 0)
                    System.Threading.Thread.Sleep(30000);
                foreach (var process in Process.GetProcessesByName("ARS.exe"))
                {
                    process.Kill();
                }
                else
                 FindMain(handle);
            }
        }

1 个答案:

答案 0 :(得分:2)

您的代码应如下所示:

if (sbClass.Length == 0)
{
     System.Threading.Thread.Sleep(30000);
     foreach (var process in Process.GetProcessesByName("ARS.exe"))
     {
         process.Kill();
     }
}
else
{
     FindMain(handle);
}

您缺少一些花括号。 'else'句子属于'if'句子,因此花括号必须匹配。

您应该使用匹配的花括号来更好地格式化代码,这样可以避免此类问题。