Сейчас на форуме: hgdagon, asfa, bartolomeo (+6 невидимых)

 eXeL@B —› Программирование —› Отловить сообщение контексного меню
Посл.ответ Сообщение

Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 07 сентября 2006 01:49
· Личное сообщение · #1

Нужно узнать сообщения которые посылаются контекстным меню IE главному окну. Конкретно интересуют пункты контекст. меню изображений: Показать рисунок, Сохранить рисунок как..., Печать рисунка... Пробовал Spy++, но там видно только WM_RBUTTONDOWN и пр., а сами сообщений нужных пунктов нет. Вопрос как всетаки их поймать?




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 07 сентября 2006 03:11
· Личное сообщение · #2

Сам то понял? Никаких сообщений не посылают пункты меню. Обрабатываются щелчки по ним в цикле обработки сообщений окна (оконная процедура).

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 07 сентября 2006 03:49
· Личное сообщение · #3

Т.е. программно мне никак не заставить IE выполнять теже действия? Смотрел объектную модель IE, тоже не нашел подобых методов (Показать рисунок, Сохранить рисунок как..., Печать рисунка... ), точнее они есть, но как я понял применимы только ко всему документу вцелом.




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 07 сентября 2006 03:53
· Личное сообщение · #4

Вырази подробнее вопрос - зачем тебе нужны эти сообщения? Пока нифига не понятно что ты задумал.

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 48.3 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 07 сентября 2006 05:15
· Личное сообщение · #5

RascalRascal пишет:
Никаких сообщений не посылают пункты меню.


Зачем же так категорично? На самом деле сообщения они конечно посылают, другой вопрос кому именно. У меню есть свое окно, которое и получает (к сожалению недокументированные) сообщения типа 0x1E2 и 0x1EF. Главному окну приходят действительно только WM_RBUTTONDOWN и WM_CONTEXTMENU.

SIM

Посмотри здесь: http://www.wasm.ru/baixado.php?mode=tool&id=284 http://www.wasm.ru/baixado.php?mode=tool&id=284 . Там я встраиваюсь в JavaBite и помимо всего прочего перехватываю и расширяю контекстное меню. Может быть поможет.




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 07 сентября 2006 05:46
· Личное сообщение · #6

Stiver
SIM пишет:
Нужно узнать сообщения которые посылаются контекстным меню IE главному окну

Обрати внимание на вопрос

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 48.3 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 07 сентября 2006 06:03
· Личное сообщение · #7

RascalRascal пишет:
Обрати внимание на вопрос


Уел, уел Но думаю, что товарищу все равно, какое окно ловить, лишь бы работало.




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 07 сентября 2006 07:39
· Личное сообщение · #8

Stiver
Гыгы. Я просто не пойму что он хочет сделать с помощью меню. Идею не понять.

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 07 сентября 2006 20:14 · Поправил: SIM
· Личное сообщение · #9

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




Ранг: 251.8 (наставник), 17thx
Активность: 0.120
Статус: Участник
Seeker

Создано: 07 сентября 2006 22:06
· Личное сообщение · #10

SIM
---------------------------------------------------------------------- ----------
SendInput Function
---------------------------------------------------------------------- ----------

The SendInput function synthesizes keystrokes, mouse motions, and button clicks.

-----
DREAMS CALL US





Ранг: 103.3 (ветеран), 8thx
Активность: 0.060
Статус: Участник

Создано: 07 сентября 2006 22:13
· Личное сообщение · #11

[telepate]
SIM -> ты юзаешь IE объект в своей программе, верно? на чем пишешь? Delphi? не можешь понять как полноценно управлять объектом, так как там все завернуто на незнакомых тебе интерфейсах? юзай EmbeddedWB. самый лучший вариант.
[/telepate]




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 08 сентября 2006 02:17
· Личное сообщение · #12

SendMessage (WndIe, WM_COMMAND, тут, или тут) идентификатор строки меню.

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 10 сентября 2006 19:30
· Личное сообщение · #13

Через SendMessage попробовал - неработают команды контекстного меню, сообщения приходят, а действий нет.


 eXeL@B —› Программирование —› Отловить сообщение контексного меню
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати