Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизВопрос по Inno Setup. Как обновить файл? Найти похожие ветки
← →
@!!ex © (2010-04-24 00:29) [0]Есть ехешка. Она в автозугрзке и в момент установки запущена.
Ее нужно обновить. Как это сделать?
← →
silver © (2010-04-24 00:30) [1]завершить, обновить, запустить
← →
@!!ex © (2010-04-24 00:32) [2]Не могу найти в хелпе к Inno соответствующих команд...
← →
Германн © (2010-04-24 00:32) [3]
> Она в автозугрзке и в момент установки запущена.
А при чем тут автозагрузка?
← →
@!!ex © (2010-04-24 00:33) [4]> [3] Германн © (24.04.10 00:32)
Уточнение на тему: программа всегда запущена.
Как обновить?
← →
Германн © (2010-04-24 00:34) [5]
> Не могу найти в хелпе к Inno соответствующих команд...
>
В Inno есть секция, где ты можешь написать свой собственный код.
← →
silver © (2010-04-24 00:35) [6]
> Не могу найти в хелпе к Inno соответствующих команд...
там есть скриптовой язык (секция [code]), можно вызывать API
← →
@!!ex © (2010-04-24 00:37) [7]Спасибо. Попробую.
← →
@!!ex © (2010-04-24 00:45) [8]То что нужно. Правда там не совсем API, но тез функций что он предоставляет - выше крыши.
← →
silver © (2010-04-24 01:29) [9]
> Правда там не совсем API, но тез функций что он предоставляет
> - выше крыши.
ну я все не помню
в любом случае, вызов ф-ий из любой длл позволяет сделать многое
← →
Anatoly Podgoretsky © (2010-04-24 08:27) [10]> @!!ex (24.04.2010 00:29:00) [0]
Ее надо закрыть (должна быть закрыта) перед обновлением.
← →
Anatoly Podgoretsky © (2010-04-24 08:28) [11]> silver (24.04.2010 01:29:09) [9]
Тогда совсем АПИ
← →
Суслик_ © (2010-04-26 01:41) [12]ну тебе в секции [code] написать свой функционал по закрытию обновляемой программы. или ты можешь потребовать от пользователя, чтобы он закрыл сам.
для детектирования загруженности программы можешь воспользоваться мьютексом. детали не помню, но я именно так и делаю - в программе создаю глобальный мьютекс, в инсталляторе проверяю его наличие.
если не ошибаюсь, в inno есть соотв. команда проверки мьютекса.
← →
[true]TRIx © (2010-04-26 04:57) [13]не парь мозги. это опенсорц на дельфи. сделай выгрузку процесса +с-о-м
← →
inoremap (2010-04-26 09:49) [14]restartreplace
← →
Суслик__ (2010-04-26 14:12) [15]У меня примерно так
// Событие
function InitializeUninstall(): Boolean;
begin
Result := True;
if CheckForMutexes("Global\MyProgIsRunning2473298472947294387") then
begin
MsgBox("Программа ""+GetAppName("")+"" в настоящий момент запущена на Вашем компьютере."#13#10+#13#10+
"Нельзя выполнить удаление, пока запущенная программа не будет остановлена."#13#10+#13#10+
"Процесс удаления прерван.", mbInformation, MB_OK);
Result := False;
end;
end;
← →
silver © (2010-04-26 23:48) [16]
> У меня примерно так
зачем?
софт же ваш, проще в анинсталле закрыть
еще б и рекламку вставили - юзера все стерпят, а некоторые и нажмут, да
← →
Омлет © (2010-04-27 00:04) [17]> Суслик__ (26.04.10 14:12) [15]
Зачем этот код? Достаточно добавить директиву AppMutex в секцию [Seup] .
← →
Суслик_ © (2010-04-27 01:21) [18]
> Омлет © (27.04.10 00:04) [17]
>
> > Суслик__ (26.04.10 14:12) [15]
>
> Зачем этот код? Достаточно добавить директиву AppMutex в
> секцию [Seup] .
там раньше был более сложный функционал.
уже не помню какой - svn на работе.
просто теперь оставил так - работает и ладно.
про директиву я знаю.
я показал как работает ))) инсталляторы такая штука - сделал и забыл (имхо).
← →
silver © (2010-04-27 01:32) [19]
> сделал и забыл (имхо).
а юзеры помнят и матерят
← →
Суслик_ © (2010-04-27 01:39) [20]
> silver © (27.04.10 01:32) [19]
>
>
> > сделал и забыл (имхо).
>
> а юзеры помнят и матерят
зачем ты эту ерунду тут говоришь?
← →
Германн © (2010-04-27 01:47) [21]
> а юзеры помнят и матерят
Но не в такой ситуации как у Суслик__ (26.04.10 14:12) [15]
Там всё чётко. Юзера предупредили. Дальнейшее полностью в руках юзера.
← →
Суслик_ © (2010-04-27 02:59) [22]Германн, ты на мою сторону встал? Или я тонкого юмора не понял?
)))
← →
Германн © (2010-04-27 03:26) [23]
> Суслик_ © (27.04.10 02:59) [22]
>
> Германн, ты на мою сторону встал?
А я разве когда-то вставал на другую сторону, Дим?
Я всегда "на твоей стороне". Это ты не всегда на "той стороне".
← →
@!!ex © (2010-04-27 07:42) [24]> [16] silver © (26.04.10 23:48)
> софт же ваш, проще в анинсталле закрыть
У меня фоновая утилита, закрывать автоматически сам бог велел...
А если это нормальная программа, просто тихо ее грохать нельзя..
← →
Anatoly Podgoretsky © (2010-04-27 09:01) [25]> Суслик_ (27.04.2010 02:59:22) [22]
Больше на сторону пользователя - мол сам дурак.
← →
silver © (2010-04-27 12:41) [26]
> А если это нормальная программа, просто тихо ее грохать
> нельзя..
что значит нельзя?
вы подумайте о чем вы говорите
юзер УДАЛЯЕТ програмный продукт (в котором не только екзе есть), а вы побаиваетесь потерять его данные чтоли?
самому не смешно?
← →
@!!ex © (2010-04-27 12:43) [27]> [26] silver © (27.04.10 12:41)
Нет. А должно быть?
← →
silver © (2010-04-27 12:43) [28]конечно же лучше заколебать предложениями, или оставить не удаленным
чо, можно сделать анинсталл с одним мессаджбоксом - "зайдите в program files, удалите папку ххх, запустите regedit удалите ветку ххх"
мало ли, юзеру чо понадобится - пусть сам решает
← →
silver © (2010-04-27 12:44) [29]
> Нет. А должно быть?
да
← →
DVM © (2010-04-27 12:45) [30]
> silver © (27.04.10 12:41) [26]
> юзер УДАЛЯЕТ програмный продукт (в котором не только екзе
> есть), а вы побаиваетесь потерять его данные чтоли?
> самому не смешно?
А теперь представь как Word грохает все документы пользователя при своем удалении. Или приложение грохает базу данных при удалении. Или Delphi все проекты ? Данные пользователя нельзя удалять, ДВАЖДЫ НЕ СПРОСИВ.
← →
silver © (2010-04-27 12:47) [31]
> А теперь представь как Word грохает все документы пользователя
> при своем удалении. Или приложение грохает базу данных при
> удалении. Или Delphi все проекты ?
не представлю
на фейхоа ему это делать?
перестаньте бредить
> Данные пользователя нельзя удалять, ДВАЖДЫ НЕ СПРОСИВ.
где я написал, что их надо удалять вообще?
← →
@!!ex © (2010-04-27 12:49) [32]> [31] silver © (27.04.10 12:47)
> где я написал, что их надо удалять вообще?
Если программа запущена есть вероятность что пользователь оставил открытый не сохраненный документ
← →
DVM © (2010-04-27 12:50) [33]
> silver © (27.04.10 12:47) [31]
> где я написал, что их надо удалять вообще?
> юзер УДАЛЯЕТ програмный продукт (в котором не только екзе
> есть), а вы побаиваетесь потерять его данные чтоли?
Здесь. Тихо грохнув программу можно повредить данные.
> перестаньте бредить
Советую делать тоже самое.
← →
silver © (2010-04-27 12:52) [34]
> Если программа запущена есть вероятность что пользователь
> оставил открытый не сохраненный документ
и при этом случайно запустил анинстал, ога
← →
@!!ex © (2010-04-27 12:53) [35]> [34] silver © (27.04.10 12:52)
Прогу закрыть забыл случайно.
Реально, хватит бредить. Такая ситуация редкая, но возможная и ее нужно учитывать.
← →
silver © (2010-04-27 12:54) [36]
> Здесь. Тихо грохнув программу можно повредить данные.
ГДЕ там написано "НАДО УДАЛЯТЬ ДАННЫЕ ЮЗЕРА"?
вам в голову не приходило, что анинстал даже может сказать приложению сохраниться?
> Советую делать тоже самое.
на вопрос ответь сначала
← →
silver © (2010-04-27 12:55) [37]
> Реально, хватит бредить.
так почему не заканчиваете?
> Прогу закрыть забыл случайно.
и?
← →
DVM © (2010-04-27 12:57) [38]
> silver © (27.04.10 12:52) [34]
> и при этом случайно запустил анинстал, ога
Запросто. Разное бывает. Пользователь может и не знать, что у него там запущено, особенно если оно работает в фоновом режиме. А еще не надо забывать о возможной одновременной работе нескольких пользователей в терминальных сессиях.
← →
silver © (2010-04-27 12:57) [39]
> Запросто. Разное бывает. Пользователь может и не знать,
> что у него там запущено, особенно если оно работает в фоновом
> режиме.
и?
← →
silver © (2010-04-27 12:58) [40]
> А еще не надо забывать о возможной одновременной работе
> нескольких пользователей в терминальных сессиях.
как мессаджбокс спасет?
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.067 c