Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Две копии проги. Добавлено: 26.10.06 19:37  

Автор вопроса:  Arseny | ICQ: 298826769 
Имеется своя программа, которая запускается как сама собой, так и с параметрами.

Не могу догнать, как сотворить, чтобы когда первая копия программы запущена, вторая копия запускается, проверяет, что уже есть запущенная и передает свои параметры запущенной копии, причем должна вывести первую копию на переднй план. Ну и соответственно заканчить суицидом... Ф-ф-у-у-у.... Кто-нибудь понял? :)

После
If App.PrevInstance Then End
никакие операторы не выполняются, как быть?

Ответить

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

Номер ответа: 1
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #1 Добавлено: 26.10.06 21:10
Самый надежный способ - енумеруем окошки и проверяем для каждого из них GetProp(hWnd, App.ProductName & "_TAG";) = 1. Нашли - передаем параметры, выводим найденное окошко на передний план и суицидимся.
Не находим - устанавливаем SetProp(Me.hWnd, App.ProductName & "_TAG", 1)

Ответить

Номер ответа: 2
Автор ответа:
 Arseny



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #2 Добавлено: 26.10.06 21:29
Чего-то я еще больше не догоняю: то, что ты предлагаешь, как раз и делается через App.PrevInstance; с ее помощью я и так уже понял что одна копия запущена. Выгрузить вторую я могу в любое время, но КАК мне передать параметры в ПЕРВУЮ копию, и КАК вывести окно ПЕРВОЙ копии НАВЕРХ?

Ответить

Номер ответа: 3
Автор ответа:
 AKE



Вопросов: 0
Ответов: 7
 Профиль | | #3 Добавлено: 26.10.06 23:30
Самый "тупой", простой но надежный метод - через файл.
В проге переодически опрашивай наличие файла. Если нашел - открывай, читай свои параметры и уничтожай файл.

А при старте проги,
If App.PrevInstance Then
  Вывод всех параметров в файл
  End (или Unload Form1: Exit Sub или другой, как вы говорите, "суицид";)
End If

Ответить

Номер ответа: 4
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #4 Добавлено: 27.10.06 04:54
Это..
мона в ниче не опрашивать. Выделить временный текстбокс для обмена данными. При загрузке проги, записать хендел этого текстобокса где в файл. Другая прога прочитай этот файл, будет знать какому окну отправлять текст (команды вмысле).. SendMessage WM_SETTEXT шо-тотакое... когда посылаешь, у текстобокса событие автоматически сработает Text1_Change(), в нем и обрабатуешь... Предельно просто, никаких таймеров, и главное работает :)

Ответить

Номер ответа: 5
Автор ответа:
 Arseny



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #5 Добавлено: 27.10.06 09:02
2 AKE: Насчет этого я уже думал, но это не показалось мне эстетичным... Таймер на каждую секунду(или даже меньше) ставить что-ли?

2 HACKER: Уже любопытнее, ща буду опробывать, сэнкс!

P.S. А как же вывести окно со второго плана?
т.е. поверх программы, которая передала параметры?

Ответить

Номер ответа: 6
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #6 Добавлено: 28.10.06 01:20
API ShowWindow

Ответить

Номер ответа: 7
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #7 Добавлено: 31.10.06 17:05
ловите - рабочий пример!
http://slil.ru/23327287

Ответить

Номер ответа: 8
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #8
Добавлено: 31.10.06 20:34
Обычно предыдущую копию программы определяет по установленному первым экземпляром мутексу.

Ответить

Номер ответа: 9
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #9 Добавлено: 31.10.06 23:07
при отладке в IDE появляется куча геморра (мьютекс не уничтожается после закрытия проги)

Ответить

Номер ответа: 10
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #10 Добавлено: 31.10.06 23:57
В Form_Unload CloseHandle мютекса своего... и все будэ ок :)

Ответить

Страница: 1 |

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



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