powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как из аппликации запустить другую и передать ей параметры?
21 сообщений из 21, страница 1 из 1
Как из аппликации запустить другую и передать ей параметры?
    #32592602
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите как из одной аппликации VB запустить другую и передать в не параметры (ссылки на некоторые огбъекты вызывающей проги). И как затем выгрузить эту аппликацию при окончании работы в первой. Какие можно ожидать неприятности, если некоторые действия, результаты которых должны отображаться в первой аппликации, я перенесу во вторую? Что произойдет, если во время выполнения некоторой обработки во второй, закрыть первую?
Точнее. У меня есть аппликация, основная роль которой - интерфейсная часть, те, показать на объекте MS MapPoint текущее местоположение транспортных средств. MapPoint работает быстро, когда кол-во объектов не превышает 20-30, но при 200 - 400 замедление значительное. А я бы хотел, чтобы юзер не замечал это. Поэтому хочу создать параллельную програмку и передать ей управление процессом заполнения карты. Те сделать как бы асинхрон. Возможно ли это? Где можно почитать?
...
Рейтинг: 0 / 0
Как из аппликации запустить другую и передать ей параметры?
    #32593133
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Трудный вопрос?
...
Рейтинг: 0 / 0
Как из аппликации запустить другую и передать ей параметры?
    #32593672
boevik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не понятный.
Тебя надо только запустить MapPoint или передавать ей какие либо данные в процессе работы?
Вторая аппликация она так же на VB и тебя надо ей передавать что либо?

--------------------------------------------------
Никогда не говори никогда
...
Рейтинг: 0 / 0
Как из аппликации запустить другую и передать ей параметры?
    #32593941
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще, если необходим обмен данными между приложениями используют FileMapping
http://www.mvps.org/vb/hardcore/html/sharedmemorythroughmemory-mappedfiles.htm
...
Рейтинг: 0 / 0
Как из аппликации запустить другую и передать ей параметры?
    #32594016
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boevikНе понятный.
Тебя надо только запустить MapPoint или передавать ей какие либо данные в процессе работы?
Вторая аппликация она так же на VB и тебя надо ей передавать что либо?

--------------------------------------------------
Никогда не говори никогда

Нет, MapPoint я запускаю на главном приложении. Я хочу передать в невидимую аппликацию (вторую) сылку на объект MapPoint и все операции по заполнению его данными осуществлять там. С тем что бы не тормозить работу основного приложения. Я уже понял, что надо воспользоваться Command Function при построении второго приложения, но пока нет времени проверить, как это работает. Пока не понятно могу ли я передать ссылку на объект MapPoint и как ей потом воспользоваться. Как получить ссылку на вторую аппликацию и как ее закрыть при закрытии основной проги.
...
Рейтинг: 0 / 0
Как из аппликации запустить другую и передать ей параметры?
    #32594030
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
marvanВообще, если необходим обмен данными между приложениями используют FileMapping
http://www.mvps.org/vb/hardcore/html/sharedmemorythroughmemory-mappedfiles.htm

Я думаю, что мне не нужен обмен данными. Я хотел бы во второй аппликации автономно управлять данными. Просто мне нужна там ссылка на объект, который находится на первой аппликации. Или я не правильно изъясняюсь и поэтому же не понимаю ваши рекомендации
...
Рейтинг: 0 / 0
Как из аппликации запустить другую и передать ей параметры?
    #32594063
boevik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зачем ссылка на объект.
Пусть проги общаются между собой, передают друг другу данные.
Можно осуществлять и через DDE
--------------------------------------------------
Никогда не говори никогда
...
Рейтинг: 0 / 0
Как из аппликации запустить другую и передать ей параметры?
    #32594103
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rivkin DmitryПросто мне нужна там ссылка на объект
ссылку передать можно через командную строку при запуске второго приложения, а что за объект, на который она ссылается? Все же имеет смысл использовать FileMapping: MapPoint - с определённой переодичностью считывает из участка памяти данные и записывает управляющие команды , а второе приложение из того же участка считывает команды и записывает туда данные.
...
Рейтинг: 0 / 0
Как из аппликации запустить другую и передать ей параметры?
    #32594187
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boevikЗачем ссылка на объект.
Пусть проги общаются между собой, передают друг другу данные.
Можно осуществлять и через DDE
--------------------------------------------------
Никогда не говори никогда

Но у MapPoint контрола нет свойств
LinkTopic, LinkItem, LinkMode
Как же тогда можо пользоваться DDE?

Все же, может быть разделить мои вопросы.
1 - как запустить и как потом не забыть выгрузить вторую прогу?
2 Как из 2-й проги управлять контролами первой?

Простите за непонимание. Но хочется разобраться
...
Рейтинг: 0 / 0
Как из аппликации запустить другую и передать ей параметры?
    #32594189
boevik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1) Запустить функцией Shell
2) Пусть первая прога передает второй данные (да хоть через TextBox), а вторая прога их расшифровует и управляет MapPoint-ом. Так же через DDE передать сообщение об окончании работы и вторая прога сама свернется.

--------------------------------------------------
Никогда не говори никогда
...
Рейтинг: 0 / 0
Как из аппликации запустить другую и передать ей параметры?
    #32594207
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВсе же имеет смысл использовать FileMapping: MapPoint - с определённой переодичностью считывает из участка памяти данные и записывает управляющие команды , а второе приложение из того же участка считывает команды и записывает туда данные.

Вот это как раз я и не хочу делать, так как при считывании из памяти и, главное, при занесении данных на MapPoint контрол бейсик будет занят и клиенту придется ждать...
...
Рейтинг: 0 / 0
Как из аппликации запустить другую и передать ей параметры?
    #32594210
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boevik1) Запустить функцией Shell
2) Пусть первая прога передает второй данные (да хоть через TextBox), а вторая прога их расшифровует и управляет MapPoint-ом. Так же через DDE передать сообщение об окончании работы и вторая прога сама свернется.

--------------------------------------------------
Никогда не говори никогда

А как она (вторая прога) перехватит сообщение. Ну, допустим, на активации формы в ее текстбоксе я прочту ссылку на объект MapPoint. А как же я получу сообщение, что пора сворачиваться? Ставить специально для этого таймер? Или есть событие?
...
Рейтинг: 0 / 0
Как из аппликации запустить другую и передать ей параметры?
    #32594218
boevik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Rivkin Dmitry, посмотри ссылку, что я кинул про DDE.
Никакого таймера не надо.
Просто сделай свой "протокол".
К примеру, при получении слова "End" прога завершает работу.

--------------------------------------------------
Никогда не говори никогда
...
Рейтинг: 0 / 0
Как из аппликации запустить другую и передать ей параметры?
    #32594242
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boevikRivkin Dmitry, посмотри ссылку, что я кинул про DDE.
Никакого таймера не надо.
Просто сделай свой "протокол".
К примеру, при получении слова "End" прога завершает работу.

--------------------------------------------------
Никогда не говори никогда

Ссылку я посмотрел и понл так, сто когда на сервере я напишу в линкованное поле "End", то на клиенте в то же мгновение в соответствующем поле появится это "End". И как я его поймаю? На Change этого контрола?
...
Рейтинг: 0 / 0
Как из аппликации запустить другую и передать ей параметры?
    #32594250
boevik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Rivkin Dmitry
Ссылку я посмотрел и понл так, сто когда на сервере я напишу в линкованное поле "End", то на клиенте в то же мгновение в соответствующем поле появится это "End". И как я его поймаю? На Change этого контрола?
Да, поймай на Change и действуй соотвественно полученной инструкции :)
...
Рейтинг: 0 / 0
Как из аппликации запустить другую и передать ей параметры?
    #32594267
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может быть можно воспользоваться тем, что возвращает функция Shell?
If the Shell function successfully executes the named file, it returns the task ID of the started program. Однако что это такое "task ID"? Если его сохранить, то как потом послать команду свернуться? API?

Опять возвращаюсь к самому контролу MapPoint. Работать сним можно только так:
Global objMap As MapPointCtl.Map

Set objMap = MapForm.MappointControl1.NewMap(geoMapEurope)
Set objMap = MapForm.MappointControl1.ActiveMap

Теперь, имея в руках объект, можно заполнять его иконками (машинками).
Пример одной из функций:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
Private Sub CarPushPin(car As CarObj, ID As Long, La As Double, Lo As Double, Note As String)
On Error GoTo err_CarPushPin
    Dim pp As PushPinKey, PPSet As MapPointCtl.DataSet, objLoc As MapPoint.Location
    
    If Not (ValidLatitude(La) Or ValidLongitude(Lo)) Then Exit Sub
    
    Set pp = car.PushPin
    
    If pp.PushPin Is Nothing Then
        Set pp.PushPin = objMap.AddPushpin(objMap.GetLocation(La, Lo), car.CarNumber)
        pp.PushPin.Note = Note
        pp.PushPin.BalloonState = geoDisplayName
        pp.PushPin.Symbol = objMap.Symbols("DefVehicleIcon")
        pp.PushPin.Symbol = objMap.Symbols(car.IconID)
            
        If DataSetsExists(car.CarNumber) Then
            Set PPSet = objMap.DataSets(car.CarNumber)
        Else
            Set PPSet = objMap.DataSets.AddPushpinSet(car.CarNumber)
        End If
        
        objMap.DataSets(car.CarNumber).Symbol = pp.PushPin.Symbol
    
        pp.PushPin.MoveTo PPSet
        pp.ID = ID
    
    Else
        If pp.ID = ID Then
            Exit Sub
        Else
            Set objLoc = objMap.GetLocation(La, Lo)
            Set pp.PushPin.Location = objLoc
            pp.PushPin.Note = Note
            'pp.PushPin.BalloonState = geoDisplayName
            pp.ID = ID
            
            DoEvents
        End If
    End If
    DoEvents
    
exit_CarPushPin:
    Exit Sub

err_CarPushPin:
    If Err = -2147181454 Then  'The requested member of the collection does not exist
        Resume Next
    Else
        If Err <> - 2147024809  Then
            MsgBox Err.Description, vbExclamation, App.ProductName
        End If
    End If
    Resume exit_CarPushPin

End Sub

Когда этих самых Pushpin-ов становится достаточно много - работа замедляется существенно.
Теперь вопрос. Как мне вот этот objMap передать во вторую аппликацию?
...
Рейтинг: 0 / 0
Как из аппликации запустить другую и передать ей параметры?
    #32594611
boevik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Rivkin DmitryКак мне вот этот objMap передать во вторую аппликацию?
Я не уверен, что можно будет передать объект (ссылку на) objMap во вторую программу.
Максимум, можно создать копию, передав всё описание во вторую прогу.
А почему бы с самого начало не открыть вторую программу и пусть вторая программа занимается только показом MapPoint?
...
Рейтинг: 0 / 0
Как из аппликации запустить другую и передать ей параметры?
    #32594822
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так это - то, что я хочу. Но сам объект MapPoint (карта) должен находится на первой проге! Но как это осуществить? Если вторая прога будет клиентом, а первая сервером, клиент видит и может управлять всем на сервере или нет? Если да, то как?
...
Рейтинг: 0 / 0
Как из аппликации запустить другую и передать ей параметры?
    #32594876
boevik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На клиенте будет сидеть MapPoint (карта), сервер передает клиенту данные и клиент рисует карту.
Как это сделать? Посмотри пример.

Кстати, можно не затыкаться на DDE. Посмотри в сторону передачи данных через Inet контроль. Типа как по сетке но на одном компе, тогда связь будет двухсторонней.

--------------------------------------------------
Никогда не говори никогда
...
Рейтинг: 0 / 0
Как из аппликации запустить другую и передать ей параметры?
    #32594967
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boevikНа клиенте будет сидеть MapPoint (карта), сервер передает клиенту данные и клиент рисует карту.
Как это сделать? Посмотри пример.

Кстати, можно не затыкаться на DDE. Посмотри в сторону передачи данных через Inet контроль. Типа как по сетке но на одном компе, тогда связь будет двухсторонней.

--------------------------------------------------
Никогда не говори никогда

Что-то я туго соображаю.
1 Т.е 1-я прога - становится клиентом, а 2-я - сервером? Но возможно ли, чтобы клиент запускал сервер?

2 По Inet контроль в MSDN Lib ничего не ншел. Где искать?

3 boevik, может на мое мыло кинешь телефон, если не секретный ты boevik
спецназа, пообщаемся? :)
...
Рейтинг: 0 / 0
Как из аппликации запустить другую и передать ей параметры?
    #32595158
boevik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Rivkin Dmitry
1 Т.е 1-я прога - становится клиентом, а 2-я - сервером? Но возможно ли, чтобы клиент запускал сервер?

2 По Inet контроль в MSDN Lib ничего не ншел. Где искать?

3 boevik, может на мое мыло кинешь телефон, если не секретный ты boevik
спецназа, пообщаемся? :)
1) Нет, клиент не может запустить клиент. Сервер может
2) Internet Transfer Control
3) Ты уже знаешь :)
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как из аппликации запустить другую и передать ей параметры?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]