Итак, я задал вопрос с таким же названием ранее и получил ответ, который работает по большей части. Моя проблема сейчас заключается в том, что таблица строк в файле ресурсов Win32 не работает на Windows Server 2003 ( возможно другие тоже , ограниченное тестирование O / S на данный момент ).
Результаты тестирования:
Отображается правильно:
- Windows XP
- Windows Vista
- Windows 7
Не отображается правильно:
- Windows 2000 Professional
- Windows Server 2003
Я знаю, что решение, предоставленное в ответе на мой первый вопрос, работает должным образом в Windows XP и Vista, но не работает в Windows Server 2003. Должен ли я сделать что-то другое, чтобы мое «дружественное» имя заставки отображалось в Windows Server 2003?
Файл моего ресурса содержит только два элемента:
- Значок - ID: 1
- Строка таблицы
- Строка - ID: <пусто>, Значение: 1, Заголовок: CC.Votd
И поведение такое же, если я возвращаюсь к файлу ресурса, который содержит только таблицу строк.
Редактировать: Я попытался добавить еще одну строку:
- Строка - ID: <пусто>, Значение: 100, Заголовок: CC.Votd
Как я уже видел, в других заставках, которые отображают правильное имя в Windows Server 2003, но ничего не изменилось. Это расстраивает, потому что я не вижу последовательности, когда использую проводник ресурсов для просмотра заставок, которые поставляются с Windows.
Некоторые задают строку со значением 1 и понятным именем. Другие также указывают строку со значением 100. Некоторые даже не включают таблицу строк, но по-прежнему показывают имя, отличное от имени исполняемого файла.
Обновление: Я создал очень простое решение, которое показывает, как я создаю и использую файл ресурсов. Если вы скопируете файл .scr в системный каталог в окне XP / Vista, вы увидите «Дружественное имя заставки» в выпадающем списке. В Windows Server 2003 вы увидите «So_screensaver_display_name» (имя исполняемого файла без расширения). Вы можете скачать это здесь: http://www.ccswe.com/temp/SO_ScreenSaver_Display_Name.zip
Редактировать: Было бы также полезно, если бы кто-то, работающий под управлением Windows Server 2003, скомпилировал и протестировал мой пример проекта выше, чтобы я мог определить, относится ли это к моей машине с Windows Server 2003 или нет.
Также интересуют результаты на любых других ОС , поскольку у меня есть только XP / Vista / 2003 для локального тестирования . Спасибо!
Обновление: Я смог протестировать на другом компьютере с Windows Server 2003 (R2), и результаты те же. Также неправильно отображается в Windows 2000 Professional. Работает на компьютере под управлением Windows 7.
Решение: Как упоминалось в принятом ответе, я переименовал свой файл с CC.Votd.scr
на CCVotd.scr
, и теперь Windows 2000/2003 правильно прочитала описание CC.Votd
из моей таблицы строк и отобразила в раскрывающемся списке. Я до сих пор не понимаю, почему имя файла, не относящегося к DOS 8.3, не использовало мое описание, но по крайней мере исправлено.