Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 |

 

  Вопрос: Обмен данными между приложениями Добавлено: 11.11.08 17:56  

Автор вопроса:  Legon

Ответить

  Ответы Всего ответов: 25  

Номер ответа: 16
Автор ответа:
 Legon



Вопросов: 4
Ответов: 32
 Профиль | | #16 Добавлено: 14.11.08 21:04
Ффуууххх. Замучался. :) Сижу, и смотрю на этот код как баран на новые ворота. И я понимаю, что я не понимаю, но не понимаю ЧТО я не понимаю.
  1. Do
  2.             Proc.Add(Console.ReadLine)
  3.         Loop

Вроде понимаю, что раз не задействованны механизмы выхода из цикла, значит - он для вида. Я так думаю. На этом мое понимание и заканчивается.
Я не понимаю:
1. Передает ли этот инстанс информацию другому инстансу или только в пределах себя?
2. Если передает, то где механизм (или событие), сигнализирующее о том, что поступила команда от другого инстанса?
3. Раз нет события, то как сделать постановку новых заданий в очередь?
4. И самое главное: Запускаются инстансы так, как этого хочет Windows. По 30-40 штук за раз и более. Каким образом остальные инстансы узнают, какой из них главный? Ведь работать будет только один, а остальные служат только для передачи главному командной строки.

Если я уже вас всех достал, закрывайте тему. Я так понял, что возни со мной будет больше, чем я расчитывал.
Спасибо.

Ответить

Номер ответа: 17
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #17 Добавлено: 14.11.08 21:26
В этом коде нет механизма передачи данных между процесами. Это просто иллюстрация обработки файлов в очереди в отдельном потоке.

Цикл который вы скопировали просто служит для того чтоб ставить файлы в очередь с клавиатуры через консоль - в вашем приложении он, разумеется. не нужен.

Ответить

Номер ответа: 18
Автор ответа:
 Legon



Вопросов: 4
Ответов: 32
 Профиль | | #18 Добавлено: 14.11.08 21:50
Тогда возвращаюсь к самому началу: А как передать и получить данные между инстансами? :)

Ответить

Номер ответа: 19
Автор ответа:
 Sebas



Вопросов: 0
Ответов: 5
 Web-сайт: www.gamecity.ru
 Профиль | | #19
Добавлено: 18.11.08 10:06
  1. public event Microsoft.VisualBasic.ApplicationServices.StartupNextInstanceEventHandler StartupNextInstance
  2.     Member of Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase
  3.  
  4. Summary:
  5. Occurs when attempting to start a single-instance application and the application is already active.

Ответить

Номер ответа: 20
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #20 Добавлено: 18.11.08 14:12
Не помню где видел, но искать советую по аббревиатуре DDE.

Ответить

Номер ответа: 21
Автор ответа:
 Legon



Вопросов: 4
Ответов: 32
 Профиль | | #21 Добавлено: 20.11.08 01:07
Не помню где видел, но искать советую по аббревиатуре DDE.
Насколько я понял, DDE больше не поддерживается в платформе .NET

Sebasпопробовал:
  1. Imports Microsoft.VisualBasic.ApplicationServices
  2. Public Class Form1
  3.     Dim insNew As New StartupNextInstanceEventHandler(AddressOf NewInstans)
  4.  
  5.     Public Sub NewInstans(ByVal sender As Object, ByVal e As StartupNextInstanceEventArgs)
  6.         MsgBox(e.CommandLine.Item(0))
  7.     End Sub
  8. End Class

Вываливает системную ошибку платформы .NET

Ответить

Номер ответа: 22
Автор ответа:
 Legon



Вопросов: 4
Ответов: 32
 Профиль | | #22 Добавлено: 20.11.08 01:59
Более того: я создал вообще голый проект, установил флажок Make Application Single Instance (Уррррра, я наконец узнал, куда делось свойство App.PrevInstance), и при запуске второго инстанса все равно ошибка .NET (не виндосовская)

Ответить

Номер ответа: 23
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #23 Добавлено: 20.11.08 08:13
e.CommandLine.Item(0)

Ты так смело обращаещься к первому элементу массива.. а ты уверен, что в этом массиве есть хотя бы 1 аргумент? - это раз..
во вторых, написанный тобой код, выгляди, мягко говоря, странным.. Как правило, подобный вызов делается не в форме а в специальном классе, который генерируется студией (найти его можно в свойствах проекта - 'Application Events')
и в третьих, если уж ты создал своего делегата, то где ты подписал его на событие StartupNextInstance?

Ответить

Номер ответа: 24
Автор ответа:
 Legon



Вопросов: 4
Ответов: 32
 Профиль | | #24 Добавлено: 20.11.08 18:21
Прошу простить за "устаревший" пример. На самом деле, на момент описания, я действительно обнаружил и свою ошибку, и "куда надо прописывать" обработчик события. Но суть проблемы остается: Даже в совершенно пустом проекте я ставил галочку "Make Application Single Instance", компилировал его и при запуске второго инстанса вываливалась ошибка: "..... Отправлять отчет/Не отправлять". И что делать - фиг его знает.

Ответить

Номер ответа: 25
Автор ответа:
 Legon



Вопросов: 4
Ответов: 32
 Профиль | | #25 Добавлено: 20.11.08 19:28
Запустил первый инстанс в среде, а второй через проводник. И среда выдала: "Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
Мдяяя...

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам