Обмен инфой между прогами.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Обмен инфой между прогами.

Сообщение Matew » 10.01.2005 (Пн) 9:46

Появилась необходимость меняться инфой между двумя моими прогами, решил сделать через буфер обмена, мож есть спооб получше? Подскажите, если я не прав. Инфа-это строка, длиной символов 200-300.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.01.2005 (Пн) 10:03

Способов много, выбирай лучший. Инфа - в MSDN, искать по словам interprocess communications.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 10.01.2005 (Пн) 10:39

Мда.... залез, ради интереса, думал хоть что-нить пойму... :( Даже не понял, что относиться к ВБ :( У меня задумка вот такая была-одно приложение закрывается, скидывает все, что нужно в буфер обмена Винды и запускает второе приложение, которое все это дело считывает. Помойму так получится гораздо быстрее через файл, а других способов я как не знал, так и не узнал в МСДНе :( . Вопрос собственно вот в чем: может ли юзер успеть как нитьэто дело испортить (ну там нажать контрол Вэ или еще как)? Вся соль в том, что вторая прога написана на 1С, а там фиг его знает, как че работает :( .
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 10.01.2005 (Пн) 12:23


ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2056
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 10.01.2005 (Пн) 14:15

В принципе есть обмен через DDE.
Но я только слышал об этом...

Попробуй поискать

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 11.01.2005 (Вт) 4:30

Дык способов и правда до кучи - всякие там трубы, мэйлслоты... GSerg уже сказал, где обо всём этом почитать :-)

Имхо буфер обмена - самый плохой способ. Что, если у юзера там что-то важное лежит, и ты это затрёшь?
Изображение

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 11.01.2005 (Вт) 11:21

если это твои проги, то зачем тебе вся эта лабуда с interprocess
заюзай свой com-объект, который будет и в первой проге и во второй и будет отвечать за соединение и обмен информацией

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 11.01.2005 (Вт) 15:56

Что такое com-объект? С чем его едят?:)
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 11.01.2005 (Вт) 15:58

открой VB и увидишь, что можно создать проекты разных типов.
нас будет интересовать ActiveX Dll или ActiveX Exe

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 11.01.2005 (Вт) 16:06

Я с ними пытался разобраться, это такоие классы или чет то типа того? В них работают тока свойствами и чем то еще и нельзя делать просто процедуры?
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 11.01.2005 (Вт) 16:18

изучай классы - это тебе все равно нужно
так как до interprocess communication ты похоже еще не дорос
без обид :wink:

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 11.01.2005 (Вт) 16:19

Даже если бы и дорос на ВБ то на 1С я б его ну никак бы не сделал :)
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 11.01.2005 (Вт) 16:31

так у тебя проблема обмена данными между двумя одинаковыми програми на 1c ???
пиши файлик в одной , а в другой считывай,
а если версия SQL , то седлай табличку для обмена инфой и юзай ее в обеих прогах

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 11.01.2005 (Вт) 16:33

Нет, одна прога на ВБ, одна на 1С я хочу сделать быстрее, чем через файл.
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 11.01.2005 (Вт) 16:57

а что, разве файловые операции медленные?
можешь через реестр, но в итоге это ничуть не быстрее

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 11.01.2005 (Вт) 16:59

Мне вот кажется что через буфер обмена намного быстрее- скажи, если не так.
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 11.01.2005 (Вт) 17:02

Реестр не для этого... Не делайте из реестра помойку! :evil:


Ну есть же специальные средства для IPC, зачем изобретать велосипеды?
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 11.01.2005 (Вт) 17:05

Matew писал(а):Мне вот кажется что через буфер обмена намного быстрее- скажи, если не так.

Я же уже сказал, что нехорошо портить содержимое буфера обмена без ведома юзера. Мало ли, что у него там лежит.
Изображение

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 11.01.2005 (Вт) 17:15

Короче либо длл либо файл... Разница по скорости значительная? Есть повод стараться?
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 11.01.2005 (Вт) 17:15

Чтобы не делать из реестра помойку, я делал так: отправитель писал в реестр, а получатель читал и тут же стирал. Работало мгновенно. Как вариант, вполне катит, особенно учитывая, что это был ключ самой программы, в котором я как ее автор в принципе могу писать все, что захочу...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 11.01.2005 (Вт) 17:25

Угу... Можешь гигабайт порнухи записать, кто ж запретит ;-)
Но имхо это как-то некошерно :-|

Кстати, а если у тебя получателей несколько одновременно запустится - как ты подстрахуешься? У тебя ведь попеременно то один, то другой будет успевать данные прочитать?
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.01.2005 (Вт) 18:07

Мелкософт официально рекомендует не использовать реестр для хранения данных :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 11.01.2005 (Вт) 18:16

во-во и мы все дружно начинаем убирать из своих программ процедуры для работы с реестром :D

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 11.01.2005 (Вт) 18:25

А мне ответьте....плиз :) Есть повод стараться?
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 11.01.2005 (Вт) 18:29

я думаю подход должен быть такой - надо отталкиваться от объема и частоты обмена информацией.
для значительных объемов сложной информации я бы рассмотрел возможность использования единого хранилища на базе СУБД, например MSSQL (благо сейчас 1С на ней работает)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 20

    TopList