xml — настройка манифеста приложения C ++ Builder XE3

Я добавил права администратора в свое приложение, используя файл .manifest, потому что мне нужен доступ к реестру. Это в моем .exe сейчас.
До того, как я это сделал, в моем приложении была включена хорошая тема времени выполнения. Эта тема меня беспокоит. Похоже, старые версии Windows. Полностью устаревший.
Я знаю, что это из-за того файла .manifest, который я использовал, но я не знаю, что добавить / изменить / удалить в файле .manifest, чтобы включить тему Windows и сохранить права администратора.
Что я должен делать?

Это внутри моего файла .manifest:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0"processorArchitecture="*"name="My app"type="win32"/>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!--This Id value indicates the application supports Windows Vista functionality -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!--This Id value indicates the application supports Windows 7 functionality-->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!--This Id value indicates the application supports Windows 8 functionality-->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<!--This Id value indicates the application supports Windows 8.1 functionality-->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
</application>
</compatibility>
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>

0

Решение

Приложение может иметь только 1 манифест, поэтому при использовании пользовательского манифеста вы несете ответственность за указание ВСЕ соответствующие разделы, которые ваше приложение должно быть проявлено. Таким образом, вам нужно добавить раздел, который включает ComCtrl32 v6:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0"processorArchitecture="*"name="My app"type="win32"/>
<!-- enable Comctrl v6 for visual styles -->
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"name="Microsoft.Windows.Common-Controls"version="6.0.0.0"processorArchitecture="*"publicKeyToken="6595b64144ccf1df"language="*"/>
</dependentAssembly>
</dependency>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!--This Id value indicates the application supports Windows Vista functionality -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!--This Id value indicates the application supports Windows 7 functionality-->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!--This Id value indicates the application supports Windows 8 functionality-->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<!--This Id value indicates the application supports Windows 8.1 functionality-->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
</application>
</compatibility>
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
0

Другие решения


По вопросам рекламы [email protected]