-3

未处理的异常:

System.IndexOutOfRangeException:索引超出了数组的范围。


在 C:\Users\Seif\Documents\Visual Studio 2010\Projects\HPLog\HPLog\Program.cs:line 中的 HPLog.MultiLevelPointer.ProcessMem.Main(String[] args) 处 61 按任意键继续。. .

Line61   System.Diagnostics.Process[] Client =  
                System.Diagnostics.Process.GetProcessesByName("Client");
         ProcessMemoryReader preader = new ProcessMemoryReader();

         preader.ReadProcess = Client[0];
         preader.OpenProcess();
4

3 回答 3

4

Hows this:当你甚至没有问问题时的答案!

System.Diagnostics.Process[] Client =  
            System.Diagnostics.Process.GetProcessesByName("Client");
 ProcessMemoryReader preader = new ProcessMemoryReader();

 if (Client != null && Client.Length > 0) {
     preader.ReadProcess = Client[0];
     preader.OpenProcess();
 }
 else {
     // Error handling...
 }
于 2013-03-04T06:20:25.750 回答
0

尝试这样的事情:

try
{
   System.Diagnostics.Process Client = System.Diagnostics.Process.GetProcessesByName("Client")[0];
}
catch (IndexOutOfRangeException e)
{
    System.Diagnostics.Process Client = null;
}

然后在使用 Client 之前,确保它不为空

另外,您确定“客户端”是实际的进程名称吗?

于 2013-03-04T06:21:41.197 回答
0

在使用数组之前,您应该测试它是否存在null或包含任何项目。因为您总是有机会不存在具有该名称的进程。

于 2013-03-04T06:22:01.723 回答