![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Активное окно
saha © (2003-04-22 13:00:00)Привет!
Можно ли как-нибуть выяснить какое окно сейчас является активным,
и если можно, то что надо указать в sendmessage что бы это окно вставило в себя из буфера обмена строку?
Игорь Шевченко (2003-04-23 09:24:00) [1]saha (23.04.03 09:23)
У приложений нету хендлов.
saha (2003-04-23 09:23:00) [2]Приложения которому отправляю сообщение
Song (2003-04-22 19:52:00) [3]А handle-то ты чего берёшь?
saha (2003-04-22 18:21:00) [4]а зачем мне getFocus?
есть handle нужного окна, блин, как ему сказать что бы он вставил из буфера? пробовал sendmessage(handle,WM_paste,0,0) - не работает.
Handle получаю GetForegroundWindow. Пробовал sendmessage(handle,WM_close,0,0) - работает, окно закрывается. А вот sendmessage(handle,WM_KEYDOWN,ctrl+v) ну никак не могу понять чем обозначается ctrl.
Song (2003-04-22 17:53:00) [5]GetFocus
chernoruk (2003-04-22 17:09:00) [6]активное окошко можно узнать и так: GetForegroundWindow,
а эмулировать ctrl+v для него лучше с помощью keybd_event
saha (2003-04-22 14:23:00) [7]а если ему послать sendmessage(handle,WM_KEYDOWN,ctrl+v)?
чего там писать незнаю, сейчас мучаюсь, или так тоже не пойдет?
Игорь Шевченко (2003-04-22 14:18:00) [8]В общем случае это сделать невозможно
saha (2003-04-22 13:56:00) [9]ну я понимаю, что не окну надо говорить, а контролу. Если я правильно понял: Screen.ActiveForm.ActiveControl или что-то подобное. Ну предположим word копирует что-то в буфер я делаю что-нибудь с полученной информацией и хочу вернуть в word эту информацию. Сейчас я возвращаю эту информацию в буфер обмена и надо нажимать paste чтобы получить ее. Можно без paste? т.е. программно вставлять в активное окно что-то?
Snap (2003-04-22 13:51:00) [10]Chto ty podrozumevaesh pod oknom?
saha (2003-04-22 13:48:00) [11]Ок. А как ему сказать что бы он вставил из буфера строку?
Dms (2003-04-22 13:20:00) [12]Screen.ActiveForm