Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > UAC & Delphi


Автор: BN34 22.9.2015, 18:31
Сделал как написано здесь:
http://mda-delphi.blogspot.ru/2009/03/vista-uac-delphi-3.html
http://freeweb.siol.net/aoven/SourceCode/ElevationDemo.zip

Все работает нормально, но есть проблема с отображением «friendly name» класса.
(об «friendly name» написано здесь - http://www.sandon.it/?q=node/90)

Почему-то получилось так, что юникодная строка отобразилась как будто ansi-строка.
И при том самое первое значение как бы где-то прокешировалось.
Потому как я уже несколько раз менял ресурс со строкой, пресобирал dll, перерегистрировал dll, менял кодировки строки.
И все равно отображается самая первая строка, что была при первой регистрации dll.

Например, сейчас строковый ресурс выглядит так:
Код

STRINGTABLE
LANGUAGE 0, 0
{
101, "Test Test Test Test"
}

STRINGTABLE
LANGUAGE 25, 0
{
101, "test abc 123"
}

STRINGTABLE
LANGUAGE 25, 1
{
101, "test abc"
}


А окно запроса повышения прав все равно выводит старую строку:

user posted image

Подскажите, как сделать так, чтобы строка нормально отображалась и отображалась русскими буквами???


Автор: -Сергей- 3.3.2016, 19:02
Вероятней всего, что .rc файл в кодировке utf8, и brcc32 не понимает его.
Пересохранить его в ANSI, создать заново res-файл и перекомпилировать dll.
А то, что после пересборки строки не меняются, наверно надо перерегистрировать dll
regsvr32 /u dllfile; затем  заново регистрировать
или почстить MuiCache. Например у меня он тут:
HKEY_CLASSES_ROOT\Local Settings\MuiCache\6c\B1A07F78

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)