Visual Studio 2010 SP1 ломает вещи? - PullRequest
2 голосов
/ 29 октября 2011

Я использую этот небольшой фрагмент кода для перехвата процессов Java с определенными параметрами:

string query = "Select * From Win32_Process Where Name = 'javaw.exe'";
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
ManagementObjectCollection processList = searcher.Get();

foreach (ManagementObject obj in processList)
{
    string cmdLine = obj.GetPropertyValue("CommandLine").ToString();
    if (cmdLine.IndexOf("someapplication") != -1)
    {
        // ...
    }
}

Этот код работал как чудо всего пару дней назад, когда у меня не было SP1 для VS2010. Теперь он выдает исключение нулевого указателя в строке 7. Я пытаюсь скомпилировать для .NET Framework 2.0.

Помощь !? : /

Ответы [ 2 ]

2 голосов
/ 29 октября 2011
if (cmdLine != null && cmdLine.IndexOf("someapplication") != -1)
1 голос
/ 29 октября 2011

Вероятно, это связано не столько с SP1, сколько с обновлением Java. Просто проверьте на null:

string query = "Select * From Win32_Process Where Name = 'javaw.exe'";
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
ManagementObjectCollection processList = searcher.Get();

foreach (ManagementObject obj in processList)
{
    object cmdLineValue = obj.GetPropertyValue("CommandLine");

    if(cmdLineValue != null) {
        string cmdLine = cmdLineValue.ToString();
        if (cmdLine.IndexOf("someapplication") != -1)
        {
             // ...
        }
    }
}
...