Могу ли я добавить файл манифеста в чужой exe-файл? - PullRequest
3 голосов
/ 18 сентября 2009

У меня есть несколько EXE-файлов, для которых у меня нет кода. Могу ли я добавить файлы манифеста?

Кроме того, согласно моему пониманию этой темы, для программы, совместимой с Vista, она не должна записывать в какие-либо защищенные места, такие как HKLM, Program Files и т. Д.

Для реестра мы можем использовать HKCU, но о файлах, которые создаются в Program Files? они должны быть созданы в незащищенном месте во время выполнения EXE?

Спасибо

Ответы [ 2 ]

5 голосов
/ 18 сентября 2009

Вы можете добавить манифест, используя внешний файл. Просто поместите манифест в папку с exe-файлом и назовите его «file.exe.manifset», где file.exe - имя исполняемого файла. Однако в Server 2003, Vista и более поздних версиях, если в программе имеется встроенный манифест, внешний манифест по умолчанию будет игнорироваться. Существует раздел реестра, который переопределяет это поведение, или вы можете использовать mt.exe из Windows SDK, чтобы заменить манифест в exe. См. эту ссылку для более подробной информации.

Для существующих приложений, которые пытаются записать в Program Files или HKLM, они должны работать в Vista, потому что Vista перенаправляет записи в другое место и сообщает приложению, что запись успешно завершена.

0 голосов
/ 18 сентября 2009

Вы можете создать файл манифеста без исходного кода.

Это нормально, требовать административные привилегии для установки или обновления, так что вы можете поместить EXE и DLL (и вспомогательные файлы) в Program Files.

Нельзя требовать административных привилегий для регулярного использования, поэтому вы должны помещать файлы данных и настройки в реестр в HKCU или в папку Application Data пользователя.

...