|
Связь двух сборок
|
|||
---|---|---|---|
#18+
Навязшая в зубах тема, но тем не менее. Строим свой лаунчер, о двух колесах и одном руле. Лаунчер является отдельной сборкой (.exe) и пишется к существующему приложению, во время запуска которого происходит много всяких инициализирующих процессов. Требуется в лаунчере отображать красивый прогресс-бар, информирующий скучающего пользователя о ходе инициализации основного приложения. Следовательно, лаунчер должен каким-то образом получать оповещения от основного приложения о ходе инициализации. Варианты: 1. Запустить основное приложение через domain.ExecuteAssembly, подписаться на всё, что надо, и отображать. Но тут есть проблема: как по окончании инициализации закрыть лаунчер. Ибо ExecuteAssembly - операция синхронная, а если ее запустить в отдельном потоке, то лаунчер нельзя будет закрыть, не завершив все порожденные им потоки. 2. Запустить основное приложение через Process.Start. Тогда вопрос - как получать оповещения о ходе инициализации. 3. Еще как-то (?) Буду благодарен за любые идеи по поводу. А за похожее готовое решение например на stackoverflow буду благодарен еще больше. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2014, 12:59 |
|
Связь двух сборок
|
|||
---|---|---|---|
#18+
zz, как один из вариантов можно воспользоваться глобальной таблицей атомов winapi, можно получать уведомления и строковый данные о инициализации, ну а команду на отключение тут выбор за вами.. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2014, 13:12 |
|
Связь двух сборок
|
|||
---|---|---|---|
#18+
zzНавязшая в зубах тема, но тем не менее. Строим свой лаунчер, о двух колесах и одном руле. Лаунчер является отдельной сборкой (.exe) и пишется к существующему приложению, во время запуска которого происходит много всяких инициализирующих процессов. Требуется в лаунчере отображать красивый прогресс-бар, информирующий скучающего пользователя о ходе инициализации основного приложения. Следовательно, лаунчер должен каким-то образом получать оповещения от основного приложения о ходе инициализации. "Все страньше, и страньше..." (с) Не понял/не вижу никакого смысла в отдельном лаунчере при такой постановке задачи... Существующее приложение так или иначе должно информировать лаунчер о происходящих инициализирующих процессах - если это не реализовано, придется допиливать. А в случае "допила" гораздо проще при старте приложения быстренько показывается "легковесный" сплэшскрин с прогрессбаром, логами, блэкджеком и девушками (с) - и все... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2014, 13:49 |
|
Связь двух сборок
|
|||
---|---|---|---|
#18+
sphinx_mv, в лаунчер впихнута самолепная система обновления. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2014, 13:57 |
|
Связь двух сборок
|
|||
---|---|---|---|
#18+
zzв лаунчер впихнута самолепная система обновления.Что мешает совместить? лаунчер запустился, показал свой сплешскрин, обновил приложение при необходимости и запустил его, а дальше sphinx_mvпри старте приложения быстренько показывается "легковесный" сплэшскрин с прогрессбаром, логами, блэкджеком и девушками (с) - и все... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2014, 14:28 |
|
Связь двух сборок
|
|||
---|---|---|---|
#18+
Многоуважаемые менеджеры хотят видеть единое окно с единым прогрессбаром и для процесса обновления, и для инициализации, и для всяких других блекджеков. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2014, 14:42 |
|
Связь двух сборок
|
|||
---|---|---|---|
#18+
Ну так и пусть оно выглядит одинаково ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2014, 14:45 |
|
Связь двух сборок
|
|||
---|---|---|---|
#18+
Идея понятна, возможно, мы в конце концов так по-страусиному и поступим. Но пока хотелось бы соблюсти честность, поэтому курю таблицу атомов, по совету Где-то в степи. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2014, 14:48 |
|
Связь двух сборок
|
|||
---|---|---|---|
#18+
Я бы попробовал копнуть в сторону использования WaitEventHandle+Remoting - примерно так, как это сделано здесь (в коде по ссылке цель совсем другая, но промежуточная задача та же самая - взаимодействие между двумя независимыми процессами). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2014, 15:11 |
|
Связь двух сборок
|
|||
---|---|---|---|
#18+
wcf + named pipes binding. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2014, 15:40 |
|
Связь двух сборок
|
|||
---|---|---|---|
#18+
ЕвгенийВwcf + named pipes binding. похоже, это именно то, о чем так долго говорили большевики. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2014, 16:49 |
|
Связь двух сборок
|
|||
---|---|---|---|
#18+
zz, Самое простое это с приложения слать в лаучер postmessage, предварительно получив дескриптор последнего или через параметр или через findwindow? а в процедуре окна пускателя отлавливать что пришло, правда выбор богатств не велик - всего два параметра.. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2014, 18:01 |
|
Связь двух сборок
|
|||
---|---|---|---|
#18+
Где-то в степи... а в процедуре окна пускателя отлавливать что пришло, правда выбор богатств не велик - всего два параметра..И что? В качестве параметров можно выдавать позицию в файле лога запуска приложения и размер записи, приложение пишет в файл прогресс запуска (всякие красивые строчки), а запускалка читает из него нужное сообщение и отображает. Заодно и лог запуска останется... А там - гуляй фантазия... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2014, 21:32 |
|
|
start [/forum/topic.php?fid=20&msg=38718384&tid=1402607]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 549ms |
total: | 684ms |
0 / 0 |