Как известно, чтобы программа при запуске на ОС Windows 6.0+ требовала права администратора, нужно в секцию ресурсов добавлять файл манифеста (можно и положить рядом с исполняемым файлом, но не суть) с определенным содержанием. В VS 2008 это делается легко в настройках проекта, VS 2005 выпускалась для XP, и там, соответственно этой возможности нет. Натолкнулся на небольшой проект под VS 2008, в файле проекта изменил Version="9.00" на Version="8.00" (чтобы проект можно было открыть в VS 2005), и, о чудо, проект собрался и в 2005 студии. В ресурсах полученного exe файла ничего не говорится о требуемых правах, лишь о зависимости от CRT библиотеки, но, тем не менее, при запуске программы возникает окно с предложением запустить программу от имени администратора. В проводнике, соответственно, на значке программы изображен щит. Из этого я сделал вывод, что и в 2005 студии можно собирать проекты, требующие повышенных прав при запуске. Вопрос - как это сделать? Приложен тот самый проект.
Т.е., скажем, установщики программ, вышедшие до выпуска висты, также запрашивают права администратора, хотя и у них в манифесте этого не указано. Как они это делают?
google Добавляешь в файл ресурсов (.rc) строчку: 1 24 "my_manifest_file.manifest" В этих случаях Виндовс автоматически определяет, что ехе является инсталлятором.
green Это как вариант. Кстати, легко гуглится. Но посмотрите файл проекта, там этого нет. Там вообще в ресурсах нет упоминаний про requestedExecutionLevel. Не исключено, что ошибочно и дает соответствующий статус. Может знаете по каким критериям даётся эта оценка?
sl0n OMG, спасибо. Кроме setup и install оказалось еще и update. В общем, думаю, вопрос можно считать закрытым.
Я мечтаю вообще от msi избавиться! Никто не пробывал вручную забрасывать контент? Я сейчас обноружил, что Sound Forge 10 читает библиотеки даже с затёртым в реестре HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\SideBySide\PatchedComponents но хотя это дело тёмное, надо ещё перезагрузиться и потестить ещё. Может кто вообще в курсе как это устроено?
vcredist_x86.exe патчи типа MS Visual C++ устанавливаются msi инсталятором, впрочем как и всё остальное. При этом создаются логи, дистрибутив непредсказуемо распаковывается на свободный партишн и при этом эти папки потом не вычищаются. И в реестре очень много записей от инсталятора. А ещё даже с ключём /q могут вылетать окна. наверное SideBySide всётаки есть скорее всего Wow6432Node нету. Меня собственно интересует достаточно ли этого ключа для работы или ещё есть зависимости? Я вот сначала .NETFramework думал, что уловил его reg-key, но потом обнаружил, что более важная запись ещё лежит тут, без чего вообще не работает! - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion\NativeImagesIndex\v2.0.50727_32.....
Спасибо! Интересно, что там голо. Однако без ...\Wow6432Node\... у тебя наверное что нибудь есть всётаки? ...Хотя поидее x86 должны были быть в 32битном реестре...