Я нашел ошибку .Net, работающую под управлением Windows XP. Строковое значение Screen.PrimaryScreen.DeviceName
или Screen.AllScreens[]
содержит дополнительные символы в конце (нули и мусор из буфера памяти). Проблема не существует в Windows 7. Вопрос в том, есть ли Windows Update (KB), который исправляет это?Недопустимые символы в Screen.PrimaryScreen.DeviceName
Попробуйте это (на XP):
Text = string.Format("{0}: {1}",
Screen.PrimaryScreen.DeviceName.Length,
Screen.PrimaryScreen.DeviceName);
Обычно результат: 31: \\.\DISPLAY1
. Правильная длина равна 12, а не 31. Существует \0
после Display1
, и по этой причине строка выглядит нормально, но для сравнения строк это неправильно.