Как создать файл манифеста для VS 2017 для проекта C ++ и убедиться, что он работает? - PullRequest
0 голосов
/ 16 ноября 2018

Я пытался выяснить, как сгенерировать файл манифеста для приложения c ++ для VS2017. Я видел кое-что для VS2010 , и единственное, что я видел для VS2017, это эта страница на сайте MS. Тем не менее, на самом деле создание файла не было ясно. Итак, что я сделал:

  1. Перейти к свойствам проекта
  2. Перейти к Configuration Properties > Manifest Tool > Embed Manifest и установите его на No.
  3. Подать заявку и построить.

Теперь у меня есть внешний файл с именем filename.exe.manifest рядом с моим filename.exe. Затем я добавил следующую информацию, выделенную жирным шрифтом и курсивом, в манифест, полученный от disableWindowFiltering на сайте MS (к сожалению, это не прямая ссылка, так как на странице нет якорей):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"

  <em><b>xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"</b></em>>

  <em><b><asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2011/WindowsSettings">
      <disableWindowFiltering>true</disableWindowFiltering>
    </asmv3:windowsSettings>
  </asmv3:application></b></em>

  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>

Как только я закончил, я выполнил приложение. Похоже, это не изменило результаты. Я все еще не мог перечислить все окна, используя EnumWindows() и EnumChildWindows(). Процесс также выполняется с правами администратора.

Я сделал что-то не так?

...