![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
NightmareZ |
|
|||
![]() [хакер] ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 10.8.2006 Репутация: 1 Всего: 13 |
Как можно передать строку из одного приложения в другое?
-------------------- NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш Ely-Art.ru - наша маленькая домашняя арт-студия mugcraft.ru - кружки на любой вкус |
|||
|
||||
Ram1reS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 25.4.2008 Где: Москва Репутация: 2 Всего: 5 |
Файлом, БД, .net remoting, wcf, web-service, msmq, тупо сокеты, etc. ...
Это сообщение отредактировал(а) Ram1reS - 10.10.2009, 17:29 --------------------
|
|||
|
||||
Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 0 Всего: 154 |
Да как угодно. Начиная от простейшего метода, через общий файл (текстовой или какой либо другой) и заканчивая специализированными технологиями для интеграции приложений.
Можешь БД использовать, можешь веб-сервис, можешь локальный сервис на компьютере, или COM взаимодействие. Все зависит от контекста и конкретной задачи.
Вот хорошая презентация на эту тему: Стратегия выбора протоколов для удаленного взаимодействия между слоями приложения -------------------- |
|||
|
||||
NightmareZ |
|
|||
![]() [хакер] ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 10.8.2006 Репутация: 1 Всего: 13 |
Зачем нужно: Запускается одна копия приложения. Затем вторая. Вторая обнаруживает, что одна копия уже запущена, завершает свою работу и передаёт первой копии параметры командной строки, если они есть.
Файл не в тему, ибо не вижу смысла что-то на диске создавать для такой мелочи. БД тем более. Сокеты, remoting, wcf... не может какой-нить файрвол это дело блочить? Msmq под дотНетом есть? Добавлено через 12 минут и 58 секунд Сборку System.Messaging.dll не могу подключить. Добавляю референс, а студия пишет, что сборки нету.... ![]() -------------------- NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш Ely-Art.ru - наша маленькая домашняя арт-студия mugcraft.ru - кружки на любой вкус |
|||
|
||||
Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 0 Всего: 154 |
http://msdn.microsoft.com/ru-ru/library/sy...pDownFilterText -------------------- |
|||
|
||||
NightmareZ |
|
|||
![]() [хакер] ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 10.8.2006 Репутация: 1 Всего: 13 |
А проще варинт есть?
З.Ы. Сокеты в этом деле плохи тем, что, например, какое-либо другое приложение может использовать тот же порт. -------------------- NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш Ely-Art.ru - наша маленькая домашняя арт-студия mugcraft.ru - кружки на любой вкус |
|||
|
||||
Crypton |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 9.10.2006 Где: США, Санкт-Петерб ург Репутация: нет Всего: 2 |
Может лучше Mutex?
--------------------
«Все, что вы знаете — ложь» Теория мироздания |
|||
|
||||
NightmareZ |
|
|||
![]() [хакер] ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 10.8.2006 Репутация: 1 Всего: 13 |
-------------------- NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш Ely-Art.ru - наша маленькая домашняя арт-студия mugcraft.ru - кружки на любой вкус |
|||
|
||||
Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 0 Всего: 154 |
С помощью мьютексов можно запретить повторный запуск приложения. Примеров в интернете много решающих эти задачи. Но это не решает вопроса о передачи строки из одного приложения, в другое. Используй реестр или временный файл. Это конечно не кошерно, но практично. А вообще для меня такого рода прблемы служат индикаторм того, что программист начинает гордить куйню. Горе от ума вообщем. Это сообщение отредактировал(а) Medved - 11.10.2009, 02:22 -------------------- |
|||
|
||||
NightmareZ |
|
||||
![]() [хакер] ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 10.8.2006 Репутация: 1 Всего: 13 |
А.... м....... ну я вроде не спрашивал, как запретить повторный запуск.......
Если два приложения одновременно будут писать в файл/реестр? Как передать первому экземпляру приложения информацию о том, что нужно прочитать этот файл/ветку реестра, ибо информация в нём/ней обновилась?
Ну так просвяти, как избавиться от этой проблемы? Как бы поступил ты? Это сообщение отредактировал(а) NightmareZ - 11.10.2009, 02:52 -------------------- NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш Ely-Art.ru - наша маленькая домашняя арт-студия mugcraft.ru - кружки на любой вкус |
||||
|
|||||
Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 0 Всего: 154 |
Зачем тебе запрещать запуск двух копий приложения, и если уж запрещать (что не сложно реализовать черезь мьютексы, которые как раз для таких ситуаций и придуманы), то обязательно передавать параметры командной строки от одного приложения - к другому? Вот это мне сложно понять. Откуда вообще взялось такое требование, и чем оно продиктовано? Какие обстоятельства привели тебя к тому, что ты стал решать эту проблему (передавать командную строку)? Это сообщение отредактировал(а) Medved - 11.10.2009, 05:07 -------------------- |
|||
|
||||
Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 0 Всего: 154 |
Просто понимаешь, программирование существует уже относительно давно, и многие задачи уже решали до тебя другие уже 1000 раз.
Если ты изобретаешь новый язык программирования, то оно понятно, там еще нужно поломать голову, как сделать что-то, что до тебя еще никто не делал. Но все остальные вопросы уже давно обдуманы умными бородатыми дядьками, и готовые варианты реализованы в виде конкретных решений, называемых средой разработки (на уровне языков, платформ, паттернов и т.д.). Вопросы как сделать то, или другое обычно исходят от неумения или лени читать документацию, которая поставляется с платформой, на которой реализуется решение. И особенно это относятся к тем случаям, которые касаются инфраструктурного кода (в отличии от прикладного уровня, непосредственно реализующего бизнес-процессы и задачи конечного пользователя) Зачастую, задачи, которые реаются простым и изящным способом, неопытные программисты начинают решать "через америку". В смысле, что тебе надо добраться до соседнего дома в Рязани, но ты для этого фрахтуешь частный самолет, летишь через Германию, там пересаживаешься на Боинг, перелетаешь через Атлантику в Нью-Йорк, а от туда на параходе в порт Находка, потом на собачьих упряжках до Новосиба, а от туда уже на поезде до Рязани, потом на такси до нужного дома. Хотя всего-то надо было пройти 10 метров пешком. И это довольно распространенная ситуация в отечественном программировании. Отчасти это объясняется особенностями преподавания и обучения программированию на территории бывшего СНГ, когда вместо того, что обучать программированию, учат кодингу. И книги соответственно по кодированию вместо того чтобы называть их "руководство по кодингу", называют "руководство по программированию". А кодинг и программирование - это разные понятия. Так как программирование включает в себя линейку - проектирование-кодирование-тестирование. Мне вот опыт подсказывает что в данном случае возможна именна такая ситуация. Это сообщение отредактировал(а) Medved - 11.10.2009, 05:28 -------------------- |
|||
|
||||
Rohoss |
|
|||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: нет Всего: 18 |
Я бы использовал System.Runtime.Remoting.Channels.Ipc
Добавлено через 6 минут и 6 секунд Medved, ИМХО, требования вполне адекватные… Мне кажется, подобным образом работают, например видеопроигрыватели, например тот же LightAlloy |
|||
|
||||
Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 0 Всего: 154 |
С таким же успехом можно убить певрое (ненужное приложение) и запустить вторую копию, в которую и передаются все данные. Угу, микроскопом гвозди забивать - вот как это называется. -------------------- |
|||
|
||||
NightmareZ |
|
||||||
![]() [хакер] ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 10.8.2006 Репутация: 1 Всего: 13 |
Обгадили с ног до головы. Косолапый считает, что я "неопытный программист", "неумеющий и ленящийся читать документацию", "начитавшийся книг по кодингу". Вот чесно, в реальной жизни я бы предпочёл за такой подход дать по морде, но так как на форумах это не принято и физически нереализуемо, то попрошу лишь не разводить свою философию в моих темах. Ок, спасибо, попробую.
А ещё так работают, например, Paint.NET, Photoshop....
Пойди погуляй. Меня не интересует твои измышлизмы по сабжу. Я задал конкретный вопрос и хочу лишь ответа на него. -------------------- NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш Ely-Art.ru - наша маленькая домашняя арт-студия mugcraft.ru - кружки на любой вкус |
||||||
|
|||||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | .NET для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |