![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перехват Текста под мышью. [D6, D7, Win95/98, WinME, Win2k]
DDF © (2002-12-25 08:33:00)Уважаемые Мастера, подскажите. Мне необходимо чтоб прога перехватывала текст Меню и Контекстного меню другой проги. К примеру моя прога содержит Label и весит себе спокойно, теперь я мышью навожу на какую нибудь строку меню или контекстного меню другой виндовской проги в Label моей проги помещается эта строка.
За ранее благодарю.
Song (2002-12-25 16:25:00) [1]Вроде Almaz говорил что контексные через GetMenu() невозможно получить. Сам не пробовал, вот решил через Вас выяснить..
DDF (2002-12-25 16:18:00) [2]Подскажите, что не так?
Куда не наважу мышь всегда d=-1
procedure TForm1.Timer1Timer(Sender: TObject);
var
P: TPoint;
H: HWND;
M: HMENU;
d:integer;
begin
GetCursorPos(p); //Координаты мыши
Edit1.Text:=inttostr(p.x);
Edit2.Text:=inttostr(p.y);
H:=WindowFromPoint(p); //HWND окна под мышью
M := GetMenu(H);
d:=GetMenuItemCount(M); //Количество Item в меню
end;
Song (2002-12-25 14:57:00) [3]GetMenuItemID - логично, да?
Я тебя сейчас научу. Ищешь помощь по GetMenu(), потом нажимашешь Group и видишь группу инструкций, который предназначены для работы с меню. Вот тама и смотри!
DDF (2002-12-25 14:53:00) [4]И подскажите как uIDItem вытащить
DDF (2002-12-25 14:47:00) [5]Я уж глянул, только вылетает у меня GetMenuString() с ошибкой
d:=GetMenuString(M,1,BUF,100,MF_BYPOSITION);
где
M:HMENU;
d:integer;
Buf:Pchar;
Song (2002-12-25 14:32:00) [6]GetMenuString(), ещё наверно способы есть. Ты бы в хэлп-то глянул..
DDF (2002-12-25 14:18:00) [7]MenuItemFromPoint() обработал, теперь как вытащить текст меню?
Lady D (2002-12-25 14:11:00) [8]HMENU := GetMenu(HWND)
DDF (2002-12-25 14:07:00) [9]HWND определил, как найти HMENU
DDF (2002-12-25 13:47:00) [10]Я новичек в этом деле, не могли бы описать последовательность как моя прога должна вытащить текст.
Я так понимаю надо сначало как то перехватить движение мыши и имея координаты через WindowFromPoint() определить HWND окна. Затем как-то определить на каком объекте в окне установлен курсор и затем, с помощью неизвестных пока мне функции, вытащить из этого объекта текст.
Как должно быть?
Song (2002-12-25 13:32:00) [11]WindowFromPoint()
DDF (2002-12-25 13:31:00) [12]ОК, нашел.
Вопросик как определить HWND окна над которым мышь.
Song (2002-12-25 13:06:00) [13]Меню хэлп - Win SDK
DDF (2002-12-25 12:56:00) [14]Ни кто не подскажит как это реализовать?
DDF (2002-12-25 11:55:00) [15]У меня в Help-е ни чего не нашлось.
Song (2002-12-25 11:45:00) [16]Нажимаешь Ctrl+F1 на названии.
DDF (2002-12-25 11:40:00) [17]Подскажите как MenuItemFromPoint() пользоваться
Song (2002-12-25 10:57:00) [18]MenuItemFromPoint()