Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.09.19;
Скачать: CL | DM;

Вниз

Отослать сообщение окну...   Найти похожие ветки 

 
SIV500   (2010-06-22 18:03) [0]

Народ привет. Подскажите пожалуйста как отослать сообщения окну другой програмы, после того как я поменял родителя етого окна на свою форму.
Вот так вот меняю родителя:

///
var
wHandle : THandle;
begin
wHandle := FindWindow("OpWindow" ,nil);
Windows.SetParent(wHandle,self.Handle);

////

Не меняя родителя отсылал сообщение так: PostMessage(CurrentHandle, WM_KEYDOWN, VK_RIGHT, 0); Все работало.

/// CurrentHandle - заранее нахожу окно


 
Вотведь   (2010-06-22 18:31) [1]

PostMessage(wHandle, WM_KEYDOWN, VK_RIGHT, 0); ?


 
SIV5000   (2010-06-22 20:10) [2]

Пробовал так, но не работает. (не находит окна)


 
Юрий Зотов ©   (2010-06-22 21:12) [3]

Похоже, что при переназначении родителя изменился стиль окна, поэтому оно было пересоздано и получило новый хэндл. Соответственно, по старому оно уже не находится и надо искать снова (FindWindowEx)


 
Leonid Troyanovsky ©   (2010-06-23 08:39) [4]


> SIV500   (22.06.10 18:03)  

> Народ привет. Подскажите пожалуйста как отослать сообщения
> окну другой програмы, после того как я поменял родителя
..
> Windows.SetParent(wHandle,self.Handle);

Не надо так делать.

--
Regards, LVT.


 
SIV5000   (2010-06-23 08:40) [5]


> Не надо так делать.

Почему?


 
Вотведь   (2010-06-23 08:47) [6]

>>SIV5000   (23.06.10 08:40) [5]
>>Почему?


По качану.

В справке написано "The new parent window and the child window must belong to the same application" не для тебя?

Или ты, типа, кулхацкер?


 
Leonid Troyanovsky ©   (2010-06-23 08:50) [7]


> SIV5000   (23.06.10 08:40) [5]

Потому, что чужое окно, по всей видимости, не child,
и не получит то, что может быть ему необходимо.
См. также http://support.microsoft.com/kb/89563

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2010-06-23 09:00) [8]


> Вотведь   (23.06.10 08:47) [6]

> window must belong to the same application" не для тебя?

Уже давно, IMHO, не написано.
Но, все равно, глюков будет немало.

--
Regards, LVT.


 
Игорь Шевченко ©   (2010-06-23 18:34) [9]

http://www.transl-gunsmoker.ru/2010/06/postmessage.html


 
Leonid Troyanovsky ©   (2010-06-23 18:41) [10]


> Игорь Шевченко ©   (23.06.10 18:34) [9]

Кста:

> Во-вторых, даже если вам удастся отправить нужные сообщения
> ввода в очередь ввода целевого окна, это не установит/обновит
> модификаторы клавиатуры (shift states). Когда обработчик
> клавиатурного сообщения в этом окне вызовет функцию GetKeyState
> или GetAsyncKeyState, то он увидит "настоящее" состояние
> дел, а не фальшивое, которое вы хотели ему подсунуть, отправляя
> сообщения.

можно путем AttachThreadInput установить требуемое состояние,
но, успеха оно, все равно, не принесет.

Foreground or not foreground потоки обрабатывают очереди
ввода по-разному.

--
Regards, LVT.


 
Игорь Шевченко ©   (2010-06-23 18:45) [11]


> Foreground or not foreground потоки обрабатывают очереди
>
> ввода по-разному.


Поделись источником знаний


 
Leonid Troyanovsky ©   (2010-06-23 19:14) [12]


> Игорь Шевченко ©   (23.06.10 18:45) [11]

> Поделись источником знаний

Жизненная опытность ;)
Путем личных наблюдений.

--
Regards, LVT.


 
В школу!   (2010-06-23 21:46) [13]


> Жизненная опытность ;)
> Путем личных наблюдений.


"Только мы заявляем прямо - это полная ерунда".

Для каждого потока существует виртуализированная очередь ввода, про которую недвусмысленно и без обиняков пишет Рихтер, Великий и Ужасный.
Если бы background и foreground потоки обрабатывали бы сообщения от RIT по-разному, эта концепция не стоила бы выеденного гроша.



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

Текущий архив: 2010.09.19;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.011 c
10-1167983615
Ромка
2007-01-05 10:53
2010.09.19
Количество страниц в Excel


15-1277065796
Юрий
2010-06-21 00:29
2010.09.19
С днем рождения ! 21 июня 2010 понедельник


15-1277551866
Илья_
2010-06-26 15:31
2010.09.19
Компонент для работы с локальной сетью


15-1277105792
12
2010-06-21 11:36
2010.09.19
Идея такая. Пусть пользователь сам себе рисует форму..


15-1277287798
картман
2010-06-23 14:09
2010.09.19
Кто об этом писал?