Мой последний вопрос "Сервис списка и сервисное состояние под Win 7" заставил меня начать работать над решением, которое дает моему приложению административные привилегии под Windows Vista вперед на основе .manifest файла.
Я не был уверен в, продолжают предыдущий вопрос с этим вопросом, так как они не то же, таким образом, вот другой вопрос:
Мое приложение теперь хорошо работает под Win 7, выполняю ли я его "как администратор" из-за файла манифеста. Мой файл манифеста следующие:
Powershield Service Monitor
Когда выполнение приложения на окнах 7 или Vista, контроль учётных записей идет с диалоговым окном как это: сопроводительный текст http://www.freeimagehosting.net/uploads/39787fd3dd.jpg
Как я могу заменить "незнать" издателя?
Другая и самая большая проблема, даже Вы выполнение приложения без проблемы под Win7 или Vista, под WinXP, который это теперь разрушает с сообщением: "Этому приложению не удалось запуститься, потому что конфигурация приложения является неправильной. Переустановка приложения может решить эту проблему".
Другая вещь я хотел бы добавить: Если я добавляю ссылку (пункт использования) XPMan, приложение хорошо работает на WinXP, но затем это мой .manifest файл не имеет значения в соответствии с Vista или Win7.
Я должен всех поблагодарить что, с комментариями или ответами, я должен продолжать копать ... :) Я пошел искать файл WindowsXP.res. Содержимое этого файла:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="DelphiApplication"
version="1.0.0.0"
processorArchitecture="*"/>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="*"/>
</dependentAssembly>
</dependency>
</assembly>
Решение: Я смешал свой файл .manifest с файлом WindowsXP.Res xml, добавив раздел dependency . Если кто-нибудь знает, почему он сейчас работает, я был бы рад услышать об этом, но это было решение здесь - протестировано на паре виртуальных машин, на моем компьютере и паре других ... работает :)
Вам необходимо подписать свой код сертификатом подписи кода. Здесь должно быть много примеров. Я повторно пометил ваш вопрос тегом «подпись кода», и вы также можете найти «сертификат».
Я сам использую сертификаты Comodo и подписываю их с помощью потрясающей, замечательной Visual Build Pro v6, которая является рекламодателем здесь, на SO.
В манифесте также можно указать совместимость с различными версиями Windows. Я знаю, что есть записи о совместимости с Vista и Win7; не уверен насчет XP.
Информация о разделе совместимости манифеста доступна на MSDN . Это также может помочь - со страницы, на которую имеется ссылка:
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!--The ID below indicates application support for Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!--The ID below indicates application support for Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
</application>
</compatibility>