VS 2005 и UAC

Тема в разделе "WASM.SOFTWARE", создана пользователем google, 6 июл 2010.

  1. google

    google New Member

    Публикаций:
    0
    Регистрация:
    10 авг 2007
    Сообщения:
    140
    Как известно, чтобы программа при запуске на ОС Windows 6.0+ требовала права администратора, нужно в секцию ресурсов добавлять файл манифеста (можно и положить рядом с исполняемым файлом, но не суть) с определенным содержанием. В VS 2008 это делается легко в настройках проекта, VS 2005 выпускалась для XP, и там, соответственно этой возможности нет.
    Натолкнулся на небольшой проект под VS 2008, в файле проекта изменил Version="9.00" на Version="8.00" (чтобы проект можно было открыть в VS 2005), и, о чудо, проект собрался и в 2005 студии. В ресурсах полученного exe файла ничего не говорится о требуемых правах, лишь о зависимости от CRT библиотеки, но, тем не менее, при запуске программы возникает окно с предложением запустить программу от имени администратора. В проводнике, соответственно, на значке программы изображен щит. Из этого я сделал вывод, что и в 2005 студии можно собирать проекты, требующие повышенных прав при запуске. Вопрос - как это сделать?

    Приложен тот самый проект.
     
  2. google

    google New Member

    Публикаций:
    0
    Регистрация:
    10 авг 2007
    Сообщения:
    140
    Т.е., скажем, установщики программ, вышедшие до выпуска висты, также запрашивают права администратора, хотя и у них в манифесте этого не указано. Как они это делают?
     
  3. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    google
    Добавляешь в файл ресурсов (.rc) строчку:
    1 24 "my_manifest_file.manifest"

    В этих случаях Виндовс автоматически определяет, что ехе является инсталлятором.
     
  4. google

    google New Member

    Публикаций:
    0
    Регистрация:
    10 авг 2007
    Сообщения:
    140
    green
    Это как вариант. Кстати, легко гуглится.
    Но посмотрите файл проекта, там этого нет. Там вообще в ресурсах нет упоминаний про requestedExecutionLevel. Не исключено, что
    ошибочно и дает соответствующий статус. Может знаете по каким критериям даётся эта оценка?
     
  5. sl0n

    sl0n Мамонт дзена **

    Публикаций:
    0
    Регистрация:
    26 сен 2003
    Сообщения:
    703
    если в имени екзешника есть setup или install, тогда уак считает екзе инсталятором
     
  6. google

    google New Member

    Публикаций:
    0
    Регистрация:
    10 авг 2007
    Сообщения:
    140
    sl0n
    OMG, спасибо. Кроме setup и install оказалось еще и update.
    В общем, думаю, вопрос можно считать закрытым.
     
  7. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    774
    Я мечтаю вообще от msi избавиться! Никто не пробывал вручную забрасывать контент?
    Я сейчас обноружил, что Sound Forge 10 читает библиотеки даже с затёртым в реестре
    HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\SideBySide\PatchedComponents
    но хотя это дело тёмное, надо ещё перезагрузиться и потестить ещё.
    Может кто вообще в курсе как это устроено?
     
  8. google

    google New Member

    Публикаций:
    0
    Регистрация:
    10 авг 2007
    Сообщения:
    140
    Лично я не понял что значит
    и что
    а такого у меня на висте х64 нету.
     
  9. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    774
    vcredist_x86.exe патчи типа MS Visual C++ устанавливаются msi инсталятором,
    впрочем как и всё остальное. При этом создаются логи, дистрибутив непредсказуемо
    распаковывается на свободный партишн и при этом эти папки потом не вычищаются.
    И в реестре очень много записей от инсталятора.
    А ещё даже с ключём /q могут вылетать окна.

    наверное SideBySide всётаки есть :) скорее всего Wow6432Node нету.

    Меня собственно интересует достаточно ли этого ключа для работы или ещё есть зависимости?
    Я вот сначала .NETFramework думал, что уловил его reg-key, но потом обнаружил, что более
    важная запись ещё лежит тут, без чего вообще не работает! -
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion\NativeImagesIndex\v2.0.50727_32.....
     
  10. google

    google New Member

    Публикаций:
    0
    Регистрация:
    10 авг 2007
    Сообщения:
    140
    Вот что у меня. Ничего в реестре не правил.
     
  11. Semiono

    Semiono Member

    Публикаций:
    0
    Регистрация:
    27 ноя 2005
    Сообщения:
    774
    Спасибо! Интересно, что там голо. Однако без ...\Wow6432Node\... у тебя наверное
    что нибудь есть всётаки? ...Хотя поидее x86 должны были быть в 32битном реестре...
     
  12. google

    google New Member

    Публикаций:
    0
    Регистрация:
    10 авг 2007
    Сообщения:
    140