|
|
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Требуется сделать обновление небольшой программки через интернет ПО ЗАПРОСУ ПОЛЬЗОВАТЕЛЯ. В папке проекта все работает(программа + апдейтер). После установки в program files начались проблемы c доступом. Перечитал много тем по обновлениям, но до истины так и не докопался. Я понял, что нужно создать сервис, который будет запускаться при установке под админской учеткой. Он и будет подменять файлы программы и библиотек в program files Подскажите как запустить сервис из программы? Как потом из сервиса запустить обновленную программу? Или может я вообще двигаюсь в неправильном направлении? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 11:19 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
MasterZПодскажите как запустить сервис из программы?Через IPC, например. Shared Memory или Named Pipes или вообще сокеты. Программа подключается к сервису и запрашивает обновление, после чего сервис должен как-то штатно завершить все запущенные экземпляры программы, а на компьютере их может быть запущено несколько, под разными пользователями, а если это удалённый рабочий стол, то кто-то может в ней работать и не будет рад прерыванию своей работы. MasterZКак потом из сервиса запустить обновленную программу?Тут сложнее, надо в первом пункте составить список пользователей, у кого она была запущена и потом заново запустить её от имени этих пользователей (как реализовать - хз, не делал так). MasterZИли может я вообще двигаюсь в неправильном направлении?Если вам необходимо чтобы обновляли программу именно пользователи - может её устанавливать не в Program Files, а в %appdata%?.. Для каждого пользователя - свой экземпляр, с которым он может делать всё что угодно и, заодно, дополнительная служба не потребуется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 11:41 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
MasterZИли может я вообще двигаюсь в неправильном направлении? Нынче модно в appdata ставиться и там же обновляться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 11:54 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
wadmanMasterZИли может я вообще двигаюсь в неправильном направлении? Нынче модно в appdata ставиться и там же обновляться. Бесит это! Приложение, которое ставится в appdata - должно сразу же удаляться с компьютера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 12:32 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
ziv-2014wadmanпропущено... Нынче модно в appdata ставиться и там же обновляться. Бесит это! Приложение, которое ставится в appdata - должно сразу же удаляться с компьютера. Правильно! Больше всякого *овна на компьютер с админскими правами! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 13:48 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
ненавижу захламляющие сервисы как в гугл хроме. Лучше брать пример с мозиллы, и проверять обновления при запуске ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 13:59 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
ziv-2014wadmanпропущено... Нынче модно в appdata ставиться и там же обновляться. Бесит это! Приложение, которое ставится в appdata - должно сразу же удаляться с компьютера. Микрософты потом запретят запускать программу из appdata, придется переделывать. Хочется как в мозиле, или notepad++ с одним условием, чтобы приложение или сервис само не лезло в интернет ПО ЗАПРОСУ ПОЛЬЗОВАТЕЛЯ.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 14:09 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
MasterZХочется как в мозиле, или notepad++ с одним условием, чтобы приложение или сервис само не лезло в интернет ПО ЗАПРОСУ ПОЛЬЗОВАТЕЛЯ.. Приделать менюшку/кнопку "Проверить обновления" - не предлагать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 14:22 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
[quot alekcvp]MasterZПодскажите как запустить сервис из программы?Через IPC, например. Shared Memory или Named Pipes или вообще сокеты. Программа подключается к сервису и запрашивает обновление, после чего сервис должен как-то штатно завершить все запущенные экземпляры программы, а на компьютере их может быть запущено несколько, под разными пользователями, а если это удалённый рабочий стол, то кто-то может в ней работать и не будет рад прерыванию своей работы. Я думаю немного по другому. Сервис нужен только для того, чтобы с правами админа подменить старые файлики программы новыми. Пользователь запрашивает обновления, через меню и приложение проверяет есть-нет, закачивает все что нужно, сообщает сервису что ему пора работать и убивается. Сервис, как я уже говорил, подменяет старые файлы новыми и запускает обновленное приложение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 14:43 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
MasterZсообщает сервису что ему пора работать и убивается. Сервис, как я уже говорил, подменяет старые файлы новыми и запускает обновленное приложение. ... а в этот момент приложение запущено у ещё 2х пользователей по RDP и сервис идёт лесом, т.к. exeшник заблокирован ?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 14:51 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
alekcvpMasterZсообщает сервису что ему пора работать и убивается. Сервис, как я уже говорил, подменяет старые файлы новыми и запускает обновленное приложение. ... а в этот момент приложение запущено у ещё 2х пользователей по RDP и сервис идёт лесом, т.к. exeшник заблокирован ?.. Да, об этом я не подумал, проблемма... Программа задумывалась как персональная не многопользовательская, но получается, что по закону Мерфи... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 14:59 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
MasterZПрограмма задумывалась как персональная не многопользовательская В чём тогда проблема засунуть её в профиль пользователя (appdata) ?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 15:06 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
wadmanНынче модно в appdata ставиться и там же обновляться.Каких только сексуальных девиаций в мире не встретишь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 15:08 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
alekcvpЧерез IPC, например. Shared Memory или Named Pipes или вообще сокеты. Программа подключается к сервису и запрашивает обновление, после чего сервис должен как-то штатно завершить все запущенные экземпляры программы, а на компьютере их может быть запущено несколько, под разными пользователями, а если это удалённый рабочий стол, то кто-то может в ней работать и не будет рад прерыванию своей работы. Что-то чересчур мудрено. Всё, что описано как задача сервиса, может выполнять инсталлятор. Который будет запущен от админа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 17:26 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
MasterZЗдравствуйте! Требуется сделать обновление небольшой программки через интернет ПО ЗАПРОСУ ПОЛЬЗОВАТЕЛЯ. В папке проекта все работает(программа + апдейтер). После установки в program files начались проблемы c доступом. ... Апдейтер должен работать с правами администратора, нужно добавить соответствующий манифест. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 18:07 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
Запускается отдельная программа апдейт, возвращает через команду что есть обновления. Текущая программа запускает через runas программу апдейт с правами, и закрывает саму себя. И начинает обновления программы - апдейт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 18:19 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
Василий 2Всё, что описано как задача сервиса, может выполнять инсталлятор. Который будет запущен от админа. Вы ТЗ читали? Обновлять приложение должен пользователь, как он запустит инсталлятор "от админа"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 19:02 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
FoxpcТекущая программа запускает через runas программу апдейт с правами, и закрывает саму себя. И начинает обновления программы - апдейт1. Откуда программа знает данные учётной записи администратора? 2. Что делать, если есть экземпляры программы, запущенные другими пользователями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 19:03 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
alekcvp, 1) Код: pascal 1. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 2) Как понять - другим пользователем? Запускается от того, от кого была запущена программа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2019, 20:49 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
alekcvpПрограмма подключается к сервису и запрашивает обновление, после чего сервис должен как-то штатно завершить все запущенные экземпляры программы, а на компьютере их может быть запущено несколько, под разными пользователями, а если это удалённый рабочий стол, то кто-то может в ней работать и не будет рад прерыванию своей работы. MasterZКак потом из сервиса запустить обновленную программу?Тут сложнее, надо в первом пункте составить список пользователей, у кого она была запущена и потом заново запустить её от имени этих пользователей (как реализовать - хз, не делал так).Все это не надо. Сервис стягивает (можно по запросу) обновление, переименовывает старый экзешник (да, это штатно разрешено, даже он "заблокирован") и переписывает на его место новый. Всё. Ну, можно, если надо, еще сообщить тем, кто запрашивал обновление, что оно готово. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 00:59 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
YuRockдаже ондаже если он ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 01:00 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
Foxpcненавижу захламляющие сервисы как в гугл хроме.Меня тоже от этого воротит. Но сейчас это мэйнстрим - при установке, которая проходит с админскими правами, ты можешь установить программу в PF, которую сможет запускать любой, и службу, которая local admin. Определенная логика и польза в таком подходе есть. В будущем всегда можно что-либо дополнительное прикрутить к службе, когда нужны права. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 01:04 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
FoxpcЛучше брать пример с мозиллы, и проверять обновления при запускеНу так бери пример, только полностью. Она не проверяет при запуске, она постоянно апдейты тянет, а пни запуске просто проверяет, стянут ли очередной апдейт. Можно и по запросу это проверять и перезапускаться, если он стянут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 01:09 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
MasterZ...нужно создать сервис, который будет запускаться при установке под админской учеткой. Он и будет подменять файлы программы и библиотек в program files... "Все уже украдено до нас" - (с). https://ru.wikipedia.org/wiki/Установщик_Windows Сценарий инсталляции (документ .msi) выполняется под специальной учеткой, в привилегированном режиме службы NT (конкретно — под аккаунтом LocalSystem), эта учетка может доволно много, даже если у юзера совсем немного прав. В сценарий воткнуть можно все, что угодно, даже запуск своего прежнего инсталлятора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 02:14 |
|
||
|
Опять обновление программы
|
|||
|---|---|---|---|
|
#18+
s62MasterZЗдравствуйте! Требуется сделать обновление небольшой программки через интернет ПО ЗАПРОСУ ПОЛЬЗОВАТЕЛЯ. В папке проекта все работает(программа + апдейтер). После установки в program files начались проблемы c доступом. ... Апдейтер должен работать с правами администратора, нужно добавить соответствующий манифест. Как вариант подходит, но возможно ли это для CreateProcess, как?. ShellExecuteEx использвать не хочется. И еще, будет ли запрос на запуск апдейтера под админом. Такой запрос будет пугать пользователей. Не хотелось бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2019, 08:03 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39796874&tid=2039595]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
175ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 507ms |

| 0 / 0 |
