Здравствуйте, PanychY, Вы писали:
PY>Оиждаемое поведение UAC:
PY>а) либо при запуске спросит "крутые" права, пользователь подтвердит, и дальше всё будет работать;
Запросит, если для этой программы требуется elevated privileges.
PY>б) либо непосредственно при вызове указаных функций будет запрошено разрешение.
Это невозможно. Раз уж запустились без elevated privileges, то так тому и быть.
PY>По факту не происходит ни а) ни б). В нужный момент функции получают "отказ в доступе" и дальше работа не возможна.
Правильно.
PY>Что я делаю не так? Или точнее так: почему оно не делает как надо?
Установить в манифесте эти самые elevated privileges. Для VS 2008 это делается просто, а для 2005 — не в курсе как сделать.
PY>Некоторые другие приложения, рожденные от MSVC 7.0(причем очень давно), добросовестно спрашивают все права, и даже рожденные от MSVC 6.0, а эта гадина упирается.
Скорее всего Windows их опознала как требующие elevated privileges
////////////////////
Before a 32 bit process is created, the following attributes are checked to determine whether it is an installer:
• Filename includes keywords like "install," "setup," "update," etc.
• Keywords in the following Versioning Resource fields: Vendor, Company Name, Product Name, File Description, Original Filename, Internal Name, and Export Name.
• Keywords in the side-by-side manifest embedded in the executable.
• Keywords in specific StringTable entries linked in the executable.
• Key attributes in the RC data linked in the executable.
• Targeted sequences of bytes within the executable.
////////////////////
http://technet.microsoft.com/en-us/library/cc709628%28WS.10%29.aspx