У меня есть приложение VB6, который манипулирует файлы в папке ProgramData Win7. Он отлично работает с файлами, которые он создает, но с любыми файлами, которые были изначально установлены, его нельзя удалить. Я чувствую, что может быть больше проблем, если программа не может работать как администратор.Получение VB6 приложения для работы с администратором priviliges из манифеста
Я попытался положить раздел TrustInfo в манифесте, но появляется сообщение .... "Запрошенная операция требует возвышений.
манифеста включает в себя ...
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
Любая идея, как придать ему необходимую «высоту», пожалуйста? После дополнительных исследований кажется правильным, что ProgramData - это папка, используемая в Win7, но для всех установленных файлов требуется разрешение администратора на удаление (независимо от того, запущен ли файл setup.exe как администратор).
Из интереса я сравнил свойство безопасности файла, который был установлен с файлом, что приложение созданным впоследствии. Установленный файл имел SYSTEM и Administrators с полными разрешениями и Пользователями только с Read и Execute. Созданный файл имел дополнительный объект, мою учетную запись, с полными разрешениями. Это звучит логично, поэтому я добавил свою учетную запись с полными правами на один из установленных файлов, ожидая, что приложение сможет его удалить. Затем, как и ожидалось, я могу удалить файл вручную в проводнике, без разрешения. Но приложение по-прежнему не может удалить его! Итак, я изменил права пользователей на установленный файл на полные разрешения, приложение по-прежнему не может его удалить! Итак, я перешел на «Владелец файла» в «Дополнительно», сначала «Пользователи», затем на мою учетную запись. Тем не менее приложение не может удалить его. Теперь нет никакой разницы между настройками безопасности установленного файла и созданным приложением файлом, оба имеют одинаковые разрешения и того же владельца.
Так если сравнить параметры безопасности все еще существуют некоторые различия между двумя файлами. Установленный файл имеет 2 дополнительных «не наследуемых» элемента в разрешениях для моей учетной записи и Пользователей. Даже если я удалю запись «Пользователи» в разделе «Дополнительно» (которая по-прежнему доступна только для чтения), приложение по-прежнему не может удалить.
Я слева интересно, если это проблема VB6 и я должен просто оставить приложение в его старой установке папки, в которой он может делать то, что он любит со своими файлами !!
Другим подходом было бы сделать приложение «собственным» всеми файлами, которые установлены с ним, в его папку ProgramData. Кажется, что он отлично работает с файлами, которые он сам создает. –
Вы не должны изменять файлы под файлами программы. Можете ли вы изменить программу, чтобы вместо этого сохранить файлы в «одобренном месте»? См. [Этот вопрос] (http://stackoverflow.com/questions/4273424/where-should-i-store-application-specific-settings) – MarkJ
Не знаете, что вы подразумеваете под «под файлами программы». Приложение хранит файлы программ в «Program Files» и все файлы данных в ProgramData. –