我跟着关于开始和结束程序的语音识别教程。当我执行一个命令来打开MS WORD时,它确实很好,但是当我尝试关闭程序时,我得到一条关于索引超出数组范围的错误消息。它指出Procs [0]超出范围。
public static void killProg(string s)
{
System.Diagnostics.Process[] Procs = null;
try
{
Procs = Process.GetProcessesByName(s);
Process prog = Procs[0];
if (!prog.HasExited)
{
prog.Kill();
}
}
finally
{
if (Procs != null)
{
foreach (Process p in Procs)
{
p.Dispose();
}
}
}
有人可以帮忙吗?我使用C#非常新,不知道该怎么办?
答案 0 :(得分:0)
Procs = Process.GetProcessesByName(s);
可能返回0个元素。这导致Procs[0];
抛出IndexOutOfRangeException
。
保护您的代码免受您无法找到所需内容的可能性。
答案 1 :(得分:0)
显然Process.GetProcessesByName(s)
调用返回一个空数组,这意味着没有第一个元素(索引0),因此你得到一个异常。
您应该检查数组是否为空:
Procs = Process.GetProcessesByName(s);
if ( Procs.Length > 0 )
{
//your code
}