Для нашего тестирования программного обеспечения у нас есть тест, который позволяет нам проверить, открыты ли определенные окна, используя вызов FindWindowByClassNameAndRegex P / Invoke. Проблема, которую мы получаем, заключается в том, что когда у нас открыты окна с более чем определенным количеством специальных символов, мы всегда получаем IntPtr.Zero в качестве возврата. Есть ли известные проблемы с этим? Вот код, который мы используем, чтобы найти окно: (в данном случае это окно для Firefox)
Regex windowTitleRegex = new Regex(Regex.Escape(fullWindowTitle).Replace("\?", "."), RegexOptions.IgnoreCase | RegexOptions.ECMAScript);
curWindowHandle = NativeMethods.FindWindowByClassNameAndRegex("MozillaUIWindowClass", windowTitleRegex);
Где заголовок окна ~`!@#$%^&*()_-+={[}]|:;'<,>.?/\"àëÉùÙâÏûâÏûÊÛçîÀË«éïÂλœÇÔêôÈŒ\
(Нет фактического переноса строки, это просто форматирование)