Название: Обновление DLL в win7 Отправлено: Etud от Август 02, 2011, 13:59 Известно, что программа не может изменять DLL (другие данные) в Program Files, так как это системная защищённая папка.
Но программа по дефолту с моими библиотеками устанавливается именно туда. У меня в программе (установлена C:\Program Files\MyProgram\тут папки) нужно периодически обновлять DLL-ки. Пока вижу простое решение: Задать папку с обновляемыми DLL прямо прямо на диске C:\Plugins, в которой и обновляю свои библиотеки. Недостаток: Пользователь может удалить эту папку, ведь она на видном месте. Есть ли другие хорошие решения ?!! Название: Re: Обновление DLL в win7 Отправлено: Fess от Август 02, 2011, 14:04 1. Качаете обновление в темп (инсталлятор)
2. Кидаете юзеру алерт о том, что есть обновление и оно готово к установке 3. Юзер ставит с нужными правами. Название: Re: Обновление DLL в win7 Отправлено: Etud от Август 02, 2011, 14:21 Спасибо, и как вариант приемлемо.
Но это ручное обновление, а нужно автоматическое. Не хочется юзера напрягать установкой, просто нажал кнопку-скачал update. Название: Re: Обновление DLL в win7 Отправлено: Blackwanderer от Август 02, 2011, 14:24 Копайте в WinAPI. Возможность программно выполнить что-то с админскими правами (если таковые есть) точно существует. В Total Commander есть соответствующие кнопочки для удаления/записи в защищенные каталоги.
Название: Re: Обновление DLL в win7 Отправлено: Etud от Август 02, 2011, 14:27 DLL-ки маленькие (8 КБ) и делать инсталлятор не выгодно.
А искать папку C:\Program Files\MyProgram\Plugins, переносить вручную пользователю сложно. Название: Re: Обновление DLL в win7 Отправлено: Etud от Август 02, 2011, 14:29 Копайте в WinAPI. Возможность программно выполнить что-то с админскими правами (если таковые есть) точно существует. В Total Commander есть соответствующие кнопочки для удаления/записи в защищенные каталоги. О, вот видимо верно. Осталось выяснить как выставить админские права на папку в Win7. Название: Re: Обновление DLL в win7 Отправлено: Blackwanderer от Август 02, 2011, 14:44 Цитировать Осталось выяснить как выставить админские права на папку в Win7. Права выдаются именно на действие: копирование, изменение настроек системы и т.д.Название: Re: Обновление DLL в win7 Отправлено: Странник от Август 02, 2011, 14:45 по-моему, если пользователь не имеет права записи в папку с программой, лучше вывести сообщение об этом и не извращаться.
Название: Re: Обновление DLL в win7 Отправлено: zenden от Август 02, 2011, 15:18 Вот код запуска программы с повышенными правами:
Код
Осталось только обработать параметр командной строки '/option' и выполнять нужные операции с файлами. Название: Re: Обновление DLL в win7 Отправлено: Etud от Август 02, 2011, 16:01 Оказалось на папку C:\Program Files\MyProgram\Plugins
нужно для Пользователя выставить разрешения на изменение-запись файлов (по умолчанию только чтение). То есть нужно программно изменить разрешения для моей папки Plugins. Как это сделать ? Вот что нужно ! Вот код запуска программы с повышенными правами... А что делает этот код, можно подробнее. Может это сильно круто - давать повышенные права программе ?!! Название: Re: Обновление DLL в win7 Отправлено: zenden от Август 02, 2011, 16:10 Может это сильно круто - давать повышенные права программе ?!! нет, не сильно круто, (http://www.regen.hu/Win7logonUi/images/uac.gif) многие программы так делают Название: Re: Обновление DLL в win7 Отправлено: Etud от Август 02, 2011, 16:29 Т.е. у программы сразу права админа и соответсвенно для папки DLL они работают ?
Так я понял ? Осталось только обработать параметр командной строки '/option' и выполнять нужные операции с файлами. тут поподробнее плиз, что обработать... Название: Re: Обновление DLL в win7 Отправлено: zenden от Август 02, 2011, 17:25 тут поподробнее плиз, что обработать... Предыдущий код запускает еще одну копию вашей программы с параметром командной строки. А вот простейший код, анализирующий переданные параметры: Код
Название: Re: Обновление DLL в win7 Отправлено: Авварон от Август 02, 2011, 18:12 А почему не назначать права на плагинс при установке программы?:)
Название: Re: Обновление DLL в win7 Отправлено: Etud от Август 02, 2011, 19:43 А почему не назначать права на плагинс при установке программы?:) да, у меня такая мысль была выше. как это программно сделать ? Название: Re: Обновление DLL в win7 Отправлено: fsMark от Август 03, 2011, 12:32 Я решаю проюлему автообновления проще, ставлю в личную папку пользователя, также делает Google Chrome.
Например для winXP "c:\Documents and Settings\user\Local Settings\Application Data\appname" Название: Re: Обновление DLL в win7 Отправлено: Fess от Август 03, 2011, 13:43 да, у меня такая мысль была выше. а как вы ее устанавливаете? Смотрите возможности инсталлера.как это программно сделать ? Или используйте Application Data лучше для All Users, а не текущего юзера. |