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

Вниз

Handle активного окна   Найти похожие ветки 

 
SerJaNT ©   (2006-08-18 03:22) [0]

Как узнать handle активного (чужого) окна?


 
Джо ©   (2006-08-18 04:10) [1]

GetForegroundWindow


 
Alert2006   (2006-08-18 04:10) [2]

Я понял как поределять handle активного окна, надо через GetForegroundWindow.
Но проблема вот какая: сидит программа в трее в которой зарегистрированна глобальная горячая клавиша, например, VK_F1.
По нажатию на F1 в правом верхнем углу появляется popupmenu - popumenu.popup(0,0). И нужно по щелчку на одном из элементов этого меню вставить текст в поле ввода текста активного окна.
Делаю так:
на событии OnClick выбранного MenuItem.

// предпологается, что текст уже скопирован в буфер

SendMessage(GetForegroundWindow, WM_PASTE, 0, 0);


Но проблема в том что когда я кликну по определенному MenuItem фокус активного окна пропадает и соответственно данные с буфера не вставляются. Так вот вопрос: как вставить текст при щелчке по MenuItem в поле ввода активного окна?


 
SerJaNT ©   (2006-08-18 04:10) [3]

Я понял как поределять handle активного окна, надо через GetForegroundWindow.
Но проблема вот какая: сидит программа в трее в которой зарегистрированна глобальная горячая клавиша, например, VK_F1.
По нажатию на F1 в правом верхнем углу появляется popupmenu - popumenu.popup(0,0). И нужно по щелчку на одном из элементов этого меню вставить текст в поле ввода текста активного окна.
Делаю так:
на событии OnClick выбранного MenuItem.

// предпологается, что текст уже скопирован в буфер

SendMessage(GetForegroundWindow, WM_PASTE, 0, 0);


Но проблема в том что когда я кликну по определенному MenuItem фокус активного окна пропадает и соответственно данные с буфера не вставляются. Так вот вопрос: как вставить текст при щелчке по MenuItem в поле ввода активного окна?


 
SerJaNT ©   (2006-08-18 04:11) [4]

Сорри, забыл удалить старый ник Alert2006


 
Джо ©   (2006-08-18 04:30) [5]

1. Clipboard не использовать, дурной тон.

2. Перед появлением popup-menu (сразу же, как только пришло сообщение о клике на иконке в notification area), ты должен сделать:
 а) Input1 := GetCurrentThreadId;
 b) Input2 := GetWindowThreadProcessId(ForegroundWindow, nil);
 c) AttachThreadInput(Input1, Input2, True);
 d) Повторить PostMessage(GetFocus, WM_CHAR, Char, 0) для каждого символа текста.
 e) Произвести AttachThreadInput(Input1, Input2, False).

Кажется, в таком духе, если я ничего не напутал (пишу по памяти).



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

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

Наверх




Память: 0.48 MB
Время: 0.031 c
15-1155627150
vidiv
2006-08-15 11:32
2006.09.10
Вопрос по HTML про <img ismap> и javascript


5-1138111947
Creative
2006-01-24 17:12
2006.09.10
обработчик onKeyDown


2-1155871671
apic
2006-08-18 07:27
2006.09.10
Подключение к инету...


2-1155564514
dera
2006-08-14 18:08
2006.09.10
Простой вопрос. Скачал компонент. Как его добавить в Делфи?


15-1155533431
Ega23
2006-08-14 09:30
2006.09.10
С Днём рождения! 13 августа