powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / EXE-шник возможность удаления
19 сообщений из 19, страница 1 из 1
EXE-шник возможность удаления
    #33972879
vanoman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Думаю вопрос поднимался, но даже не знаю по каким клчевым словам начать поиск...

Что есть:
n-пользователей запускающих 1 exe-шник по сетке с сервера. По мере поступления заданий на доработку код и, соответственно, exe-шник меняется. Надоело, при необходимости заменить Exe на новую версию, выгонять пользователей из программы.

Вопрос: Как и можно-ли реализовать возможность некоего "освобождения" файла на диске после запуска? Т.е. Запустились, Как-то освободили Exe с которого запускались, работаем.

Иль возможно есть некии иные механизмы реализации задачи по "принудительному Выгону (от слова Выгонять) пользователей"?

Буду благодарен за советы и отсылы на RTFM
...
Рейтинг: 0 / 0
EXE-шник возможность удаления
    #33972949
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vanoman
в дельфийном форуме часто поднимается такая тема
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
EXE-шник возможность удаления
    #33973002
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно реализовать это с помощью дополнительной программы (х) работающей по принципу клиент-сервер. Она будет нужна на пользовательской стороне для поднятия приложения после обновления и рулиться с твоей машины, она может быть реализована без видимого интерфейса.
Происходит следующее:
1. Ты обновил экзешник своей проги.
2. Программа с твоего компа посылает заранее известную команду пользовательским приложениям о закрытии для обновления через установленную связь через winsock-интерфейс (пользовательские приложения должны слушать какой-нибудь порт).
3. Пользовательские приложения закрываются и запускают доп. программу (х), для мониторинга сообщений (через winsock) о том, когда запустить главную обновленную программу.
4. После того как все пользователи вышли, меняешь серверный экзешник.
5. Далее посылается команда программе х на старт приложения на юзерском компе после обновления.
6. В случае успешного старта, программа х заканчивает свою работу, если нет отправляет тебе сообщение о сбое на клиентской стороне.

Я бы сделал так!
--------------------------------------------------------------
...
Рейтинг: 0 / 0
EXE-шник возможность удаления
    #33973009
QRT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может глупость сморожу, но все же

Грубо говоря на серваке есть папка с "последним" exe-шником и У каждого пользователя в профиле есть ехе-шник и допустим bat-ник (ползователь запускает bat-ник), который действует так: сравнивает дату создания "последнего" exe-шника с ехе-шником в профиле если он новее, то копирует его в профиль и запускает, если нет, то просто запускает ехе-шник. В итоге имеем у каждого пользователя свой ехе-шник, а "последний" можешь менять когда захочешь.
...
Рейтинг: 0 / 0
EXE-шник возможность удаления
    #33973044
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Именно так как предложил QRT (с некоторыми нюансами) я давно и успешно делаю.
...
Рейтинг: 0 / 0
EXE-шник возможность удаления
    #33973106
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это работает, если не нужно быстро заменить программу у пользователей, когда не критично то, чем они занимаются и программа может съесть и то что ввели на новой версии, как и то что ввели на старой
-------------------------------------------------------------
...
Рейтинг: 0 / 0
EXE-шник возможность удаления
    #33973155
QRT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cerebrumэто работает, если не нужно быстро заменить программу у пользователей, когда не критично то, чем они занимаются и программа может съесть и то что ввели на новой версии, как и то что ввели на старой

Разумеется это так.

В моих прогах обычно переделывать надо мелкие вещи для двух-трех человек, остальным эти модификации просто не нужны, так зачем же всех выгонять??? Просто звонишь кому надо и говоришь чтобы перезапустили.
...
Рейтинг: 0 / 0
EXE-шник возможность удаления
    #33973349
vanoman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответы.

1. Про BAT-ник. Разумеется это первый вариант, что приходит в голову. Разумеется он право на существование.
Тут просто, не пинайте ногами, хочется выпендриться: Если это можно реализовать в одном модуле (exe)- то зачем нужно прибегать к помощи сторонней системы (Батника)

2. Предложение по отправке некоего сообщениея по сетке с последующим... Чертовски мнтересный вариант. Разумеется думал о нём. Не могу пока понять с чего начать.
Например можно реслизовать отсыл некоего сообщения:
net send * MySuperExe =resrart
Как можо перехватить сей засыл? Где почитать? Посоветуйте. Спасибо.

3. - Просто звонишь кому надо и говоришь чтобы перезапустили.
Да, да именно так всё и происходит. Но, говорят, хороший программист - ленивый программист. Наличие второй состовляющей во мне застваляет искать пути отказа от обзвона...
Не хочу говорить о том, что пользователей много, тел. не берут, на обед уходят... просто этот вариант уже задолбал.
...
Рейтинг: 0 / 0
EXE-шник возможность удаления
    #33973711
vanomanСпасибо за ответы.

1. Про BAT-ник. Разумеется это первый вариант, что приходит в голову. Разумеется он право на существование.
Тут просто, не пинайте ногами, хочется выпендриться: Если это можно реализовать в одном модуле (exe)- то зачем нужно прибегать к помощи сторонней системы (Батника)

2. Предложение по отправке некоего сообщениея по сетке с последующим... Чертовски мнтересный вариант. Разумеется думал о нём. Не могу пока понять с чего начать.
Например можно реслизовать отсыл некоего сообщения:
net send * MySuperExe =resrart
Как можо перехватить сей засыл? Где почитать? Посоветуйте. Спасибо.

3. - Просто звонишь кому надо и говоришь чтобы перезапустили.
Да, да именно так всё и происходит. Но, говорят, хороший программист - ленивый программист. Наличие второй состовляющей во мне застваляет искать пути отказа от обзвона...
Не хочу говорить о том, что пользователей много, тел. не берут, на обед уходят... просто этот вариант уже задолбал.

По требованиям 2 и 3 возникает совет - смотри в сторону сокетов и, например, http протокола.
Твоя программа будет слушать порт (например, 80-й) и когда получит сообщение (естественно, что это будет http-запрос, а не NET SEND) выполнит определенные действия по принудительному закрытию программы...
...
Рейтинг: 0 / 0
EXE-шник возможность удаления
    #33973737
vanomanСпасибо за ответы.

1. Про BAT-ник. Разумеется это первый вариант, что приходит в голову. Разумеется он право на существование.
Тут просто, не пинайте ногами, хочется выпендриться: Если это можно реализовать в одном модуле (exe)- то зачем нужно прибегать к помощи сторонней системы (Батника)

2. Предложение по отправке некоего сообщениея по сетке с последующим... Чертовски мнтересный вариант. Разумеется думал о нём. Не могу пока понять с чего начать.
Например можно реслизовать отсыл некоего сообщения:
net send * MySuperExe =resrart
Как можо перехватить сей засыл? Где почитать? Посоветуйте. Спасибо.

3. - Просто звонишь кому надо и говоришь чтобы перезапустили.
Да, да именно так всё и происходит. Но, говорят, хороший программист - ленивый программист. Наличие второй состовляющей во мне застваляет искать пути отказа от обзвона...
Не хочу говорить о том, что пользователей много, тел. не берут, на обед уходят... просто этот вариант уже задолбал.
Кстати, по требованию 3:
А если пользователь там вел какую-то работу (вводил данные), а его к начальству вызвали. А ты в это время начал программу обновлять... При перезапуске приложения вся работа пользователя пойдет "коту под хвост"... (Ты бы еще его компьютер удаленно перезагрузил!) Так что наживешь ты себе врагов немеряно... Здесь даже экстрасенсом быть не надо...
...
Рейтинг: 0 / 0
EXE-шник возможность удаления
    #33973861
vanoman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав СКстати, по требованию 3:
А если пользователь там вел какую-то работу (вводил данные), а его к начальству вызвали. А ты в это время начал программу обновлять... При перезапуске приложения вся работа пользователя пойдет "коту под хвост"... (Ты бы еще его компьютер удаленно перезагрузил!) Так что наживешь ты себе врагов немеряно... Здесь даже экстрасенсом быть не надо...

:-) тоже вариант. Вот что я люблю слышать так это какие-нибудь доводы для принятия/отмены решения не связанные с миром "0/1". :-)
Тоже Вариант! :-) Надо взвесить !
...
Рейтинг: 0 / 0
EXE-шник возможность удаления
    #33973871
vanoman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав СКстати, по требованию 3:
А если пользователь там вел какую-то работу (вводил данные), а его к начальству вызвали. А ты в это время начал программу обновлять... При перезапуске приложения вся работа пользователя пойдет "коту под хвост"... (Ты бы еще его компьютер удаленно перезагрузил!) Так что наживешь ты себе врагов немеряно... Здесь даже экстрасенсом быть не надо...

:-) тоже вариант. Вот что я люблю слышать так это какие-нибудь доводы для принятия/отмены решения не связанные с миром "0/1". :-)
Тоже Вариант! :-) Надо взвесить !
...
Рейтинг: 0 / 0
EXE-шник возможность удаления
    #33973932
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vanomanСпасибо за ответы.
2. Предложение по отправке некоего сообщениея по сетке с последующим... Чертовски мнтересный вариант. Разумеется думал о нём. Не могу пока понять с чего начать.
Например можно реслизовать отсыл некоего сообщения:
net send * MySuperExe =resrart
Как можо перехватить сей засыл? Где почитать? Посоветуйте. Спасибо.

не нужны тут никакие net send'ы, посмотри в сторону winsock.
1.
Начни с того, что добавь в новую своей версию программы поддежку winsock и научи ее слушать порт, через который ты будешь посылать ей сообщения о необходимости закрыться перед апдейтом и запускать программу х, которая потом вернет ее к жизни, но уже в новой реинкарнации.
2.
создай приложение х (см. выше), которое будет при запуске тупо слушать незанятый ни кем порт (bind, listen, accept и др.), и при получении по нему сообщения запускать обновившуюся программу (ShellExecute(...)) и при успешном запуске последней отключаться и в противном случае посылать тебе сообщение об ошбке, вот тут можно прикрутить net send, опять же через ShellExecute.

Для полноты картины, а то я начал сомневаться, что мы говорим об одном и том же.
Когда я говорю о посылке сообщений я имею ввиду сообщения, которыми программы будут обмениватся, а не те которыми обмениваються люди через net send.
удачи
...
Рейтинг: 0 / 0
EXE-шник возможность удаления
    #33973949
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав С
А если пользователь там вел какую-то работу (вводил данные), а его к начальству вызвали. А ты в это время начал программу обновлять... При перезапуске приложения вся работа пользователя пойдет "коту под хвост"... (Ты бы еще его компьютер удаленно перезагрузил!) Так что наживешь ты себе врагов немеряно... Здесь даже экстрасенсом быть не надо...
для этого его программа должна уметь корректно завершиться, а так как прогу писал он сам, то написать что то типа временного дампа всех несохранненых изменений думаю будет под силу.
...
Рейтинг: 0 / 0
EXE-шник возможность удаления
    #33975057
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно хранить на серваке все версии проги и только обновлять ярлычок на последнюю версию (сами экзешники прятать от кривых ручек), приучить юзверей тыкать в ярлычок. Никого не надо будет перезапускать. Периодически проверять, нельзя ли удалить какую-нить старую версию.
...
Рейтинг: 0 / 0
EXE-шник возможность удаления
    #33975066
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для более мощной защиты от дурака ярлычок можно заменить на лаунчер.
...
Рейтинг: 0 / 0
EXE-шник возможность удаления
    #33976338
Pavel Kilevatyh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тема специфичная, но рискну вставить свои пять копеек.
Если использовать в качестве хранилища исполняемого файла какую-то нормальную ФС, например ext2/3, то весь гиморрой сам собой исчезает. Современные ФС не блокируют файл при его открытии/чтении и даже записи. Просто те кто уже открыл/запустил файл будут иметь старую версию, а кто захочет обновится просто выйдет сам и запустит новую программу.
...
Рейтинг: 0 / 0
EXE-шник возможность удаления
    #33976803
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
угумс, начнёт экзешничек ресурсики подгружать, а они...
...
Рейтинг: 0 / 0
EXE-шник возможность удаления
    #33978332
ZeusTheTrueGod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное эта схема уже предложена,но почему бы не сделать приблизительно так:
На сервере хранить launcher.exe и program.dat - переименованный program.exe
При запуске launcher.exe он
1) Выбирает место куда копировать program.dat, например GetTempDirectory() и GetTempFileName().
2) Копирует туда program.dat под именем из пункта 1, изменяя расширение на .exe
3) выполняет через Shell эту программу
4) завершает работу.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / EXE-шник возможность удаления
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]