ник: akkorn
ДрЮня
Q: еще разок - 2. а зачем запускать прогу с сервера? не проще с каждой рабочей станции
A: для того, чтобы пользователи пользовались новой версией. у меня бывает до 5 обновлений в день))) то мелочи добавляю, то исправляю действия по ошибке (той или иной). а юзеры хотят сразу же исправленную версию.
Относительно предложения Ю.Ш.
Уважаемый Юрий! Ваше предложение довольно интересное, но есть одно но: На каждой машине необходимо устанавливать программу что может не корректно быть, если пользователь ограничен в правах для установки программ. Или Вы имели ввиду простое копирование? Так или иначе программа будет иметь кучу своих копий в системе предприятия, что наверное не очень хорошо, так ведь? Однако, Спасибо за ваше предложение )))
ylhtqrf ака Андрейка )))
Спасибо за наводку. Это именно то, что надо. По моему это лучший выход.
..мысли:
относительно начального вопроса темы: ..Но не плохо было бы иметь возможность "удалееной выгрузки программы" для более гибкой системы администрирования... но это уже похоже из сюжета: это не возможно.
т.к. не представляется возможным управлять компьютером пользователя.. хотя, если запущен экземпляр на машине юзера, то при определенном действии можно проверять на сервере наличие определенного файла с определенным ключом в теле. если так, то выгружать программу.
но и этот вариант не годится, т.к таймер встраивать не желательно (на действие проверки), а если по действию какому- то конкретному (нажатие кнопки)- то может случиться так: пользователь запустит программу и смоется в цех на пол дня... или в столовую... или банально домой (((.... Выхода нет. Отказываюсь от этой идеи дистанционной выгрузки программы...
Относительно новых предложений участников:
В общем, ylhtqrf - ваша версия наиболее действенна ))))
Моя версия выхода из ситуации: взять идею ylhtqrf в виде идеи Ю.Ш.
Итак, о тонкостях: Проще наверное в самой программе создать функцию- запуск локальной копии, ну что то вроде RunWithCopy ()
Первыми строками данной функции будет узнать откуда запущена программа (параметр app.path). Если из сети (первые два символа - \\), то продолжаем, если нет- окончание функции.
Далее, в папке %Temp% создаем копию данной программы с тихой заменой, проверяем в цикле на пять секунд при отработке через каждые полсекунды, что файл существует и что он не ReadOnly, если упешно- запускаем ТУ копию и выходим из текущей. ВСЕ.
Преимущества, как я их вижу: Оригинальный файл будет занят только 1 секунду при запуске (приблизительно). На медленных машинах- подольше малость (время создания локальной копии).
Недостатки: Не возможно будет очистить системный диск вместе с папкой темп при запущенной программе. Но тогда в этом случае вместо переменной %temp% можно использовать переменную %userappdata%, в этом случае по идее не должно быть ошибки при копировании, если у юзера права юзеров а не админов машины )).
Спасибо всем )))))
Приступаю к осуществлению ...
P.S. Ну конечно же, уважаемые участники, мне хотелось бы узнать ваши мнения.
Как вам идея?