Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
adept
Зарегистрирован: 12.02.2007 Сообщения: 31
|
Добавлено: Сб Мар 31 2007 02:15 Заголовок сообщения: Как открыть окно связанное с другим процессом? |
|
|
дело происходит на C#
ситуация:
приложение на WIndows Forms,
по событию загрузки смотрим нет ли ещё процессов с таким же именем, если есть завершаем работу текущего процесса, но перед этим хочется показать окно связанное с уже существующим процессом, как это можно сделать?
на данный момент умею искать и отрубать текущий процесс,
могу даже получить ссылку на объект Process, соответствующий ранее запущенному процессу, но чего с ней дальше сотворить не знаю
помогите,а ? |
|
Вернуться к началу |
|
|
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Сб Мар 31 2007 15:45 Заголовок сообщения: |
|
|
В Windows обхение между ОС и процессами основано на сообщениях.
Посылаешь сообщение процессу, он что-то делает.
Если есть такое сообщение, по приходу которого процесс откроет окошко на экране, значит все получится.
Надо только найти что послать. |
|
Вернуться к началу |
|
|
adept
Зарегистрирован: 12.02.2007 Сообщения: 31
|
Добавлено: Сб Мар 31 2007 18:03 Заголовок сообщения: |
|
|
and3008 писал(а): | В Windows обхение между ОС и процессами основано на сообщениях.
Посылаешь сообщение процессу, он что-то делает.
Если есть такое сообщение, по приходу которого процесс откроет окошко на экране, значит все получится.
Надо только найти что послать. |
в C# у объекта Process нет ничего, что могло бы передать ему сообщение! (я думал, что форточки окну посылают сообщения?!?)
есть метод для получения MainWindowHandle, возвращает понятно что в виде IntPrt, с помощью Form.FromHandle(IntPtr) пытаюсь получить ссылку на окно, но она получается нулевой, что попробовать дальше пока не знаю
подскажите |
|
Вернуться к началу |
|
|
Jail
Зарегистрирован: 16.01.2007 Сообщения: 180 Откуда: Russia
|
Добавлено: Вс Апр 01 2007 21:44 Заголовок сообщения: |
|
|
Цитата: | ... что попробовать дальше пока не знаю
подскажите |
Почитать книжку по С#. Очень поможет. |
|
Вернуться к началу |
|
|
adept
Зарегистрирован: 12.02.2007 Сообщения: 31
|
Добавлено: Пн Апр 02 2007 02:24 Заголовок сообщения: |
|
|
Jail писал(а): | Цитата: | ... что попробовать дальше пока не знаю
подскажите |
Почитать книжку по С#. Очень поможет. |
оО! вы предлагаете второй по популярности ответ на форумах )
занятно, наверное каждый считает своим долгом хоть раз так ответить на вопрос, гыгы смешно если честно
интересно, что вам помешало промолчать если вы не знаете ответа на вопрос? |
|
Вернуться к началу |
|
|
Jail
Зарегистрирован: 16.01.2007 Сообщения: 180 Откуда: Russia
|
Добавлено: Вт Апр 03 2007 10:18 Заголовок сообщения: |
|
|
Цитата: | интересно, что вам помешало промолчать если вы не знаете ответа на вопрос? |
Да просто этот вопрос уже столько раз задавался на разных форумах,что я не знаю млин...сколько уже можно отвечать на одно и тоже!!!
У многих одна большая проблемма,просто лень матушка! Вся эта инфа подробно описана в книжках и там всё расписано намного лучше чем объясню я Вам здесь или кто-то иной. Всё это есть и во многих книжка,повторюсь ещё раз. Поиск по форумам тоже даст огромный результат. А Погуглить, никак?
Цитата: | на данный момент умею искать и отрубать текущий процесс,
могу даже получить ссылку на объект Process, соответствующий ранее запущенному процессу, но чего с ней дальше сотворить не знаю |
Видите, как раз "на данный момент" Вы этого и не знаете. А если бы прочитали, то зналибы намного больше и были бы спецом в этом деле.
Если у Вас возникают вопросы с конкретной реализацией или проблема в проге, то это одно, а если у Вас не хватает знаний, то это Ваши проблемы! А может мне за Вас найти этут тему на форумах? Или может книжечки Вам поскидывать на мыло, а?
И вопросы типа "я начинающий прогер, какой язык посоветуете"....тоже на многих форумах создаются с частотой 1 раз в месяц. А всё потому, что поискать просто лень. |
|
Вернуться к началу |
|
|
adept
Зарегистрирован: 12.02.2007 Сообщения: 31
|
Добавлено: Вт Апр 03 2007 19:16 Заголовок сообщения: |
|
|
модераторам: простите за флейм в этой теме)
2Jail:
Цитата: | А Погуглить, никак? |
хахаха(под столом!) вы просто молодец, теперь первый по популярности ответ!!
Цитата: | Если у Вас возникают вопросы с конкретной реализацией или проблема в проге, то это одно, а если у Вас не хватает знаний, то это Ваши проблемы
|
вывод первый: стало быть между вопросом который я задаю, и тем же вопросом приведённом в виде кода со строчкой комментария
Код: |
Process cpr = Process.GetCurrentProcess();
Process[] spr = Process.GetProcessesByName(cpr.ProcessName);
if(spr.Length==2)
{
int num=0;
if (cpr.Id == spr[0].Id){ num=1; }
else if (cpr.Id == spr[1].Id) { num = 0; }
IntPtr wh = spr[num].MainWindowHandle;
Control f = Form.FromChildHandle(wh); // f always null
f.FindForm().Show();
}
|
для вас есть разница, напрашивается вывод, что этой области в шарпе вы не касались, посему ответа не знаете, может быть искали его в этой теме(что конечно похвально), не нашли и решили не промолчать(до сих пор не понимаю почему)
вывод второй: могу посоветовать "лекции по формальной логике", ну хотя бы поэтому: из утверждения(не хватает знаний) следует утверждение(возникают вопросы с конкретной реализацией), чувствуете? корреляция есть, если не чувствуете то "лекции по формальной логике"
Вопрос: для вас что-нибудь означает слово Process?
только честно, чур в книжки не лазить
Цитата: | А может мне за Вас найти этут тему на форумах? Или может книжечки Вам поскидывать на мыло, а? |
хм, кажется вы не совсем представляете для чего существует форум, по крайней мере ветка "программирование"
я "почему-то" думаю, что на форумах люди ищущие ответы задают вопросы, а люди знающие(жаль нельзя два раза подчеркнуть) ответы эти дают, а незнающие ответов молча смотрят на ответы, которые дают знающие люди, вот как-то так
Цитата: | сколько уже можно отвечать на одно и тоже!!! |
и что вы часто отвечаете на такие вопросы? сколько раз за последний месяц?
p.s. кажется вы обиделись неужели из за того что я все слова пишу с маленькой буквы? не принимайте всё так близко к сердцу |
|
Вернуться к началу |
|
|
|