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

0

Я добавил права администратора для своего приложения, используя файл.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>
Теги:
manifest
c++builder-xe3

1 ответ

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
    Кстати, если кто-то будет использовать это в будущем, в конце кода будет избыточный символ. :)
  • 0
    @ J4Nk0: удалено
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню