Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как обеспечить обновление программ под вистой 
V
    Опции темы
drkot
Дата 2.9.2009, 03:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: 5
Всего: 8



Что тут описывать?....
И так вроде понятно smile

Программа проверила наличие обновления
Загрузила его на локальную машину
.... а вот дальше финт ушами не проходит
ибо заменить файлы находящиеся в "програм филей не получается"

обидно...

возможно соглашения по этому поводу есть?

ЗЫЖ веть такие монстры как AVP NOD OutPost они то обновляются...

ЗЗЫЖ прозьба далеко не посылать,  только оттуда

Это сообщение отредактировал(а) drkot - 2.9.2009, 03:55


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
~FoX~
Дата 2.9.2009, 07:47 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 13
Всего: 68



drkot, У монстров отдельный модуль обновления имееца...Т.е, отдельный экзешник, который стартует, качает, закрывает монстра, копирует, запускает монстра и кончает жизнь самоубийством  smile 


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
drkot
Дата 2.9.2009, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: 5
Всего: 8



~FoX~, поражаюсь вашей эрудиции!
А то что стоит ограничение на запись в папку програм файлс это пустяк...
Или Вы думаете что есть разница в том, где производить проверку и загрузку? Или это влияет на разрешения?
Или Вы думаете что нет способов (абсолютно легальных)  перезаписать эхэшник "из самого себя"?

Пардон, эмоции.

ЗЫЖ не люблю умников, сам такой.


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
CodeMonkey
Дата 3.9.2009, 10:26 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Ну, есть несколько вариантов. Вариант самый простой: при запуске программы ломимся проверять обновление. Если нашли - показываем сообщение пользователю, мол: есть обновки, изменено то-то, сё-то, устанавливаем? Если пользователь даёт добро - проверяем: запрещена ли нам запись в нашу папку. Если да, то перезапускаемся с элевацией, нет - обновляем сразу.

Вариант посложнее: пишем отдельный апдейтер (вариант - основной exe, но с параметрами) и вешаем его в планировщик, на запуск раз в неделю. Плюс под системной учёткой, если программа устанавливалась в защищённую папку (под текущей - если в обычную). Разумеется, заносить такую запись должен установщик программы.

Возможен выбор между вариантами, смотря по тому, какое обновление хочет пользователь - по запросу или автоматическое.

Ссылка в тему.

P.S. Если ещё и совсем примитивный вариант 3: проверяем, есть ли обновление, и, если есть, то показываем мессагу: новая версия, для скачивания пройдите по ссылке. Daemon Tools, например, так деляют. Лично я этот вариант ненавижу, поэтому не рассматриваю ;)


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
aliks
Дата 3.9.2009, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 17.12.2008

Репутация: нет
Всего: 1



У TMS есть специальный компонент для обновлений. При запуске проги, проверяется наличие обновления, если обновление есть, автоматом подменяется экзешник и прога запускает в нормальном режиме. Есть в компоненте режимы обновления как и для локальной сети так и для инета. В течении 5 лет использую его для обновления прог в локальной сети - проблем никогда не было - рекомендую. Использовал его в D6,D7,D2007
--------------------
Любимая кнопка - F1, Любимое спасибо - Плюс в репутацию
PM MAIL Jabber   Вверх
CodeMonkey
Дата 3.9.2009, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Ну поделитесь с общественностью, как же он работает с UAC smile Мне, например, интересно для общего образования.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
~FoX~
Дата 3.9.2009, 19:04 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 13
Всего: 68



Не хорошо так поступать....Вы спрашивали как обновить екзешник, а не как получить права на запись в защищенную папку, к тому же программ файлз расшарен под всех, кроме ограниченых, соответственно....А поправить первый пост и потом опустить нижеподписавшегось, это мерзко!



--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
kami
Дата 3.9.2009, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 23
Всего: 72



Можно попробовать задействовать UAC Component (предупреждаю сразу - сам не пробовал, т.к. не было необходимости).
Вариант стандартный (с этим компонентом): экзешник скачивает обновление>спрашивает пользователя о повышении прав> в зависимости от ответа либо обновляемся (получили права админа) либо нет - не получили их.

Можно апдейтер "засадить" в сервис, сервисы с аккаунтом Local System имеют доступ к папке Program Files.

Можно задействовать планировщик (где-то мелькала тема о враппере планировщика на Delphi, но сейчас не могу найти), как сказал CodeMonkey.

Можно попробовать отложенную замену файлов MoveFileEx с флагом MOVEFILE_DELAY_UNTIL_REBOOT (не проверял, сработает ли, но скорее всего нет - доступа к реестру не будет...)

PM MAIL WWW   Вверх
CodeMonkey
Дата 4.9.2009, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Цитата(kami @  3.9.2009,  20:05 Найти цитируемый пост)
где-то мелькала тема о враппере планировщика на Delphi, но сейчас не могу найти

В JCL есть.

Цитата(kami @  3.9.2009,  20:05 Найти цитируемый пост)
Можно попробовать отложенную замену файлов MoveFileEx с флагом MOVEFILE_DELAY_UNTIL_REBOOT

Проскакивало на sources.ru.

Ещё ссылка в тему.

Добавлено через 1 минуту и 3 секунды
Цитата(kami @  3.9.2009,  20:05 Найти цитируемый пост)
Можно апдейтер "засадить" в сервис, сервисы с аккаунтом Local System имеют доступ к папке Program Files.

Совет: не надо так делать. Зачем мне крутящийся сервис, который выполняет работу два раза в месяц?


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
drkot
Дата 28.9.2009, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: 5
Всего: 8



Цитата(aliks @  3.9.2009,  15:38 Найти цитируемый пост)
В течении 5 лет использую его для обновления прог в локальной сети - проблем никогда не было 

Ничто не вечно под Луной 

~FoX~, 
Цитата(~FoX~ @  3.9.2009,  19:04 Найти цитируемый пост)
А поправить первый пост и потом опустить нижеподписавшегось, это мерзко!

Прошу прощения, внимательно изучил свой пост и пришел к выводу, что Вы, уважаемый, просто не умеете читать.
Вы, повнимательнее посмотрите на даты сообщений. Из них легко сделать вывод, что отредактирован пост бул значительно раньше, чем Вы его увидели.

CodeMonkey, 
Цитата(CodeMonkey @  4.9.2009,  08:40 Найти цитируемый пост)
Совет: не надо так делать. Зачем мне крутящийся сервис, который выполняет работу два раза в месяц?

Именно такое решение и работает практически во всех программах под висту.
А некоторый инсталяторы (не буду показвать пальцем) реализуют этот механизм внутри себя и обновляют программы "независимо от самой программы" (каламбур)

Итог:
Нормального решения НЕТ. Как таковой механизм автоматического обновления миную юзера неприменим (для мелкого софта) Наиболее уместен механизм диалога в котором пользователь хотябы запустит инсталяцию с апдейтом (а то и скачает)
Обновление программ юзерами под юзером не имеющим админских прав НЕВОЗМОЖНО

ЗЫЖ Все сказанное относится к легальным и честным методам.

ДОБРО ПОЖАЛОВАТЬ В НОВЫЙ МИР VISTA
Те кто еще не сталкивался готовтесь курить маны (их много на всех хватит)

Это сообщение отредактировал(а) drkot - 28.9.2009, 23:22


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
former
Дата 29.9.2009, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 5
Всего: 17



Цитата(drkot @  28.9.2009,  23:03 Найти цитируемый пост)
Именно такое решение и работает практически во всех программах под висту.

Вот из-за этого люди и пишут твикеры. Представь, что все разработчики начнут писать сервисы для обновления своих программ. О последствиях, думаю, говорить не надо. И так все ясно.


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
CodeMonkey
Дата 29.9.2009, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Цитата(drkot @  28.9.2009,  23:03 Найти цитируемый пост)
Нормального решения НЕТ

Эмм... нормальное - это с блек-джеком и голыми шлюхами? Будьте реалистом.

Добавлено через 9 минут и 38 секунд
P.S. Совершенно не понимаю причём тут Vista. В любой операционке, где работают "по-нормальному" (не под админами), обновить программу может только администратор. Vista ничем не отличается в этом плане от остальных (речь идёт не только о Windows). Единственное отличие, даже, преимущество - это UAC. Вы можете проверить обновление, если оно есть, то перезапустить себя с элевацией. Всё, что надо будет сделать пользователю - подтвердить разрешение. Вообще все нормальные программы (а не собранные за пять минут на коленке) должны заботиться о будущих обновлениях во время установки (которое проводится установщиком с правами администратора) - например, поместив себя на периодический запуск в планировщик заданий (под административной учёткой). Не хотите заморачиваться в плане безопасности - ставьте программу в папку без защиты (не в Program Files, или установщик поменяет права при установке), используйте виртуализацию, отключайте UAC (понятно, что всё это криво и не рекомендуется).


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0551 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.