Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.04.13;
Скачать: [xml.tar.bz2];

Вниз

Как послать WM_LBUTTONDOWN неактивному окну?   Найти похожие ветки 

 
Chorniy   (2008-02-25 20:51) [0]

Имеем:

1. Окно моей программы (fsStayOnTop), на котором расположена кнопка. Эта кнопка посылает сообщение WM_LBUTTONDOWN окну другой программы (другая программа - игра, развернутая на весь экран)

2. Когда я кликаю по кнопке, то мое окно становится активным
и сообщение то ли не доходит, то ли некорректно обрабатывается другим окном. В общем на другом окне ничего не происходит.

3. При посылке WM_KEYDOWN все рабоет отлично.

как сделать чтобы сообщения обрабатывались, и возможно ли вообще послать сообщения о клике мыши на неактивное окно?


 
Мк30 ©   (2008-02-25 22:29) [1]

Удалено модератором


 
Chorniy   (2008-02-25 23:21) [2]

Продолжаю разбираться с ситуацией.

Оказывается, что я посылаю сообщения по хендлу, который приндалежит не самому окну, а приложению, и не могу, зная хендл приложения, получить хендл его окна.

ВОПРОС:
почему функция GetParent(Form1.Handle) возвращает ноль, а не Application.Handle? и как зная Application.Handle найти Form1.Handle?


 
Leonid Troyanovsky ©   (2008-02-25 23:34) [3]


> Chorniy   (25.02.08 20:51)  

> как сделать чтобы сообщения обрабатывались, и возможно ли
> вообще послать сообщения о клике мыши на неактивное окно?

Неактивным окнам нет дела до событий ввода.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2008-02-25 23:40) [4]


> Chorniy   (25.02.08 23:21) [2]

> почему функция GetParent(Form1.Handle) возвращает ноль,
> а не Application.Handle?

Потому, что оно ему не тот parent.
See also: GetWindowLong with GWL_HWNDPARENT.

--
Regards, LVT.


 
Chorniy   (2008-02-26 00:38) [5]


> Leonid Troyanovsky ©   (25.02.08 23:40) [4]

спасибо, находить окна я научился. Посылаю сообщение всем, окнам которые имеются у игры (5 штук), однако никаких действий не происходит.

два варианта происходящего:

1. игра обрабатывает события мыши не через виндовские сообщение (такое вообще возможно???)

2. т.к. окно неактивное, то клик оно не обрабатывает (
> Неактивным окнам нет дела до событий ввода.
) Но почему тогда оно отлично обрабатывает сообщение нажатия клавиши? будучи все так же неактивным.

подскажите пожалуйста какой вариант вернее... или напишите свой.


 
Chorniy   (2008-02-26 00:41) [6]

может я неправильно понимаю что такое "неактивное окно"? по моему мнению - это то окно которому не принадлежит фокус ввода.


 
Chorniy   (2008-02-26 00:48) [7]

сделал тестовую прогу, на событие OnMouseDown поставил смену цвета формы
посылаю форме сообщение WM_LBUTTONDOWN, фокус ввода ей не принадлежит, однако цвет сменяется.


 
Chorniy   (2008-02-26 00:51) [8]

Даже если окно тестовой проги свернуто, то все равно цвет меняется (значит мессадж доходит и обрабатывается)

;))))


 
Германн ©   (2008-02-26 01:37) [9]


> 1. игра обрабатывает события мыши не через виндовские сообщение
> (такое вообще возможно???)

Естественно возможно.
Подумай сам как в ДОСе работали с мышью? Ведь там не было никаких "виндовских сообщений".


 
Chorniy   (2008-02-26 06:35) [10]


> Естественно возможно.

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

вопрос:
какие есть способы принять от мышки события, минуя messages, пусть даже самые извращенные ;) и где почитать про них?


 
Alexander_Warlock ©   (2008-03-16 03:32) [11]

Если удалось решить этот вопрос - хотелось бы пообщаться (icq: 121138909). Игра случаем не Lineage II ?



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.04.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
2-1205916579
Дмитрий
2008-03-19 11:49
2008.04.13
процент заряда акумулятора на нотбук ?


2-1205773453
Александр Ч.
2008-03-17 20:04
2008.04.13
Обратная совместимость программ с Vista на XP


4-1186600664
cerber
2007-08-08 23:17
2008.04.13
запуск документа ворд из ресурса.


11-1187786759
mdw
2007-08-22 16:45
2008.04.13
Сайт http://www.kolnmck.ru/


2-1205655917
NewSer
2008-03-16 11:25
2008.04.13
Как проверить уникальность вводимого в ключевое поле значения?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский