![]() |
Автоматическое удаление программ при закрытии
Здравствуйте господа форумчане!
Однако вопрос ко всем знающим, чтобы решить следующую задачу;): через install_setap ставлю программу, запускаю и работаю; - а при закрытии, установленная программа, должна быть полностью удалена с компьютера. Что для этого необходимо? Или как написать скрипт? Или Куда? Предполагается НЕ portable версия. Простите за делитанские вопросы! Но вопрос актуальный. За ранее спасибо |
Цитата:
|
не всегда есть портативная версия - однако, следует задать и такой вопрос:
- а можно ли создать портативную версию самому? |
Цитата:
|
ну вот:
- дальше следует - список программ (коих бесконечное количество) - ответы "можно или нет"...;) И все же, не уходя от темы, подскажите пожалуйста: - Можно ли создать скрипт для самоудаления программы в момент закрытия после проделанной работы? |
vla-ad, можно, например используя AutoIT. Просто надо:
1. Отследить все записи в реестр, создаваемые во время установки. 2. Отследить все добавления новых файлов, все возможные изменения в существующих файлах, все возможные удаления файлов. 3. При самоудалении ВСЁ вернуть назад! :) Если это покажется сложным, воспользуйся готовыми решениями по созданию портабельных программ... Гугл сразу наведёт ( хотя бы сюда ) |
Это можно реализовать средствами msi.
То-есть, в рамках процесса установки, запустить программу. Это сделает работу программы не самостоятельной, а частью процесса установки. Естественно инсталлятор в данном случае будет находиться в состоянии ожидания успешного завершения. Следующим шагом завершения работы инсталлятора необходимо сделать отмену, то-есть деинсталл. В теории (зависит от программы и того, как сделан ее родной инсталлятор), довольно легко сделать msi, который будет молча все это проделывать, а соответственно для пользователя это выглядит как обычный файл, на который можно 2 раза мышкой щелкнуть и после некоторого ожидания получить работающую программу. Естественно, все это подразумевает в перую очередь наличие msi, а не exe, а значить, если его нет, дополнительные телодвижение по его созданию. Можно сделать легче и не редактировать msi вручную. Если родной инсталлятор не msi, но поддерживает комманды де инсталляции, то сгодиться любой способ вроде nsis`а или того же AutoIT (не уверен, но в теории они должны иметь функцию ожидания выполнения), тогда все выглядет просто: инталл-запуск_с_ожиданием_деинсталл. И ты получишь exe. Вообще-то, если уж на то пошло, деинсталяцию с коммандной строки поддерживает любая программа, которая кошерно устанавливается на операционных системах, веть ты же ее видешь в оснастке установка\удаление программ.... другое дело, что тут еще надо разбираться как это делается... например wmic... (*шепчет на ушко*: можешь подсмотреть унинсталл стриг в реестре) Если нет прав локального админа, можно слелать коммандный сценарий с ранасом, но придеться его зашифровать, чтоб пользователь не подсмотрел пароль, опять же 3 комманды. Но все же странная необходимость, установка, только для того, чтобы немножко поработать. Долго ждать начала работы, долго ждать ее завершения (все относительно конечно, разные программы делают инсталл\деинстал и по 1 мин и по 30 мин). Кроме того, то что ты хочешь, подразумевает наличия у пользователя прав локального админа, а это уже совсем не по феншую. Крайне не рекомендую. Если ты опишешь ситуацию... для чего все это, то возможно тебе подскажут как это реализовать более правильно.... |
Цитата:
Однако я только о хорошем. В частности: - чисто админские цели, прийти, сделать и уйти. Довольно часто приходится сталкиваться с тем, когда, оставляя нужный софт на машине, через время определяешь кучу ошибок и проблемы только из-за любопытности пользователя, который тыкает что не надо и куда не следовало бы. Дабы избавиться от ненужных постдействий и минимизировать работу по времени, желателен такой скрипт или может порядок действий, создания и записей, чтобы устанавливая необходимый пакет программ, поработав, можно было бы смело закрывать с надеждой на удаление. Вот и вся задача. Не вижу ничего предосудительного. |
Перечитай мой предидуший пост еще раз, ты ответил, пока я его редактировал, добавляя пару новых мыслей.
Цитата:
Помни, если ты все же сделаешь, что задумал, то можешь потерять авторитет... представь себе 2к7 офис, на котором чтоб "поработать" пользователю приходиться ждать ну не реально большое время и еще один залетный мальчик, который не разбираясь в ситуации просто сносит твое и ставит свое, у него работает быстро и красиво, у тебя долго и неприятно..... пользователь в данном случае должен четко и осознано понимать почему у него программы работают "не так". |
Цитата:
- Я так понимаю здесь по этому вопросу мне никто не поможет? - или что в изначальном вопросе было не так? |
Цитата:
Варианты уже даны. На мой взгляд самый простой - cmd (тихая установка-запуск с ожиданием-деинсталл командой из унинсталл стриг), самый правильный - редактировать msi (юзер акшен на запуск проинсталлированного приложения и еще один на выполнение штатного деинстала, он там же где то в акшенах, внимательно посмотреть и найдеться). Как сделать деинсталл, вроде сказано. Как объеденить - тоже.. Выбирай только способ объединения и вперед. Или непонятно написано? Тогда вызывает вопрос, что именно? |
cmd или msi понятно;)
- cmd - это значит тихо, (как?) из командной строки запуск программы?, а как же с ней работать тогда? - msi - нужно редактировать, но его еще создать нужно, не везде он есть, и как в итоге? ну вот и вопросы - может для кого-то из ниоткуда, но как по мне до конца так ниче и не понял. Прошу изв. не все пока догнал. |
Цитата:
+ сам по себе, по завершении работы программы, деинталл не запуститься Значить это 3 абсолютно разные задачи. Которые необходимо объединить чем-то. 1. Тихая установка приложения. То-есть чтоб пользователь ни чего не делал. По этому вопросу тут чего только нет, ищи по темам, скорее всего найдешь решение, причем реализаций тоже много. 2. запуск приложения с ожиданием... если тебя интересует cmd, то тут обычная комманда start /wait 3. деинсталл. Можно взять комманду из HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*приложение* параметр: UninstallString Именно значение данного параметра используется системой тогда, когда ты в "панель управления\установка удаление программ" нажимаешь "удалить". Как заставить эту комманду работать "тихо" сугубо индивидуально и зависит от того что это за программа (это как с тихой установкой, либо имеется возможность, либо еще дополнительно точить) Ну а объединение, это как душе нравиться, можно объединить любым инсталлятором или сценарием.. интересует cmd? вот как пример, тихая установка запус и снос winrar`a, но имей в виду без установки нет ассоциаций, так что, просто так архив не открыть, впрочем можно сделать ассоциации на что угодно.. ни кто не мешает сделать на архивы ассоциацию на твой сценарий, только не забуть ему передать имя файла и его внутри отдать исполняемому файлу: winrar.cmd + ассоциация на запуск дааного скрипта (имя файла будет передаваться параметром %1 ------ set install_patch="C:\Software\Arc\WinRar.3.91" start /wait "" "%install_patch%\wrar391ru.exe" /s start /wait "" "%ProgramFiles%\WinRAR\winrar.exe "%1"" start /wait "" "%ProgramFiles%\WinRAR\Uninstall.exe" /s exit ------ быстро и просто, но неприятно хотябы тем что рождаеться черненькое окно, непомню, вроде можно его скрыть как то, вроде /b, хелп глянь. можешь это спрятать куданить в C:\distrib, а пользователю на раб стол ярлык.... но это как самый быстрый вариант, опять же по сути это все можно скомпилять и в exe.... и иметь 1 файл, который делает то же самое.... |
Время: 14:41. |
Время: 14:41.
© OSzone.net 2001-