Как мне получить заголовок диалога из его ресурсов?
Клиент прислал следующий вопрос:
Мы разрабатываем автоматизированные тесты для нашего приложения. Помимо всего прочего, в приложении есть вкладки для отображения различных свойств. Это означает, что наименование вкладки хранится в ресурсах в виде заголовка диалогового элемента. Поскольку мы хотим, чтобы наши автоматизированные тесты работали для всех локализованных версий нашего приложения, мы не можем жестко задавать эти заголовки вкладок в тестах. Я не смог найти какой-либо информации о том, как можно программно извлечь заголовок диалога из его ресурса. Буду рад любым наводкам.
Я ответил списком наводок:
- Стандартные шаблоны диалогов используют структуру DLGTEMPLATE.
- Расширенные шаблоны диалогов используют структуру DLGTEMPLATEEX.
- Пошаговое руководство по стандартным диалоговым шаблонам.
- Пошаговое руководство по расширенным диалоговым шаблонам.
Клиент поблагодарил за наводки, а затем спросил:
Тогда получается, что единственным способом решения этой задачи является загрузка данных ресурса диалога, их разбор и поиск той строки, которая мне нужна? Это можно сделать даже при помощи языка C#?
Ну, это зависит от того, что вы понимаете под «единственным способом».
В конечном счете, кому-то придется загрузить данные ресурса диалога и разобрать их, потому что вы же сами так и сказали: «Я хочу получить заголовок диалога из его ресурсов». Что может быть альтернативой? Экстрасенсорные способности?
В Win32 нет какой-либо библиотеки для разбора ресурсов шаблона диалога. Если вы не хотите делать этот разбор, тогда, возможно, вы сможете найти кого-нибудь, кто займется этим. И, если вам повезет, этот человек может даже предоставит интерфейс для языка C# к своей библиотеке.