Я пытался выяснить, как сгенерировать файл манифеста для приложения c ++ для VS2017. Я видел кое-что для VS2010 , и единственное, что я видел для VS2017, это эта страница на сайте MS. Тем не менее, на самом деле создание файла не было ясно. Итак, что я сделал:
- Перейти к свойствам проекта
- Перейти к
Configuration Properties > Manifest Tool > Embed Manifest
и
установите его на No
.
- Подать заявку и построить.
Теперь у меня есть внешний файл с именем 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()
. Процесс также выполняется с правами администратора.
Я сделал что-то не так?