![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как добавить пункт меню в работающее приложение [D5, D6, Win95/98, WinXP]
foks © (2002-04-28 15:33:00)Уважемые Мастера помогите разобраться с таким вопросом
Как мне добавить новый пункт меню в открытое приложение Delphi и обработать событие OnClick на нем я делаю так:
appendmenu(getsubmenu(getsubmenu(getmenu(findwindow("TForm1","qwerty")),0),2),MF_STRING,SC_MyMenuItem,"Новый пункт меню");
но данный код у меня работает только для текущего приложения а для другого не работает, т.е. пункт он добавляет, но message не обрабатывает.
Помогите пожалуйста.
foks (2002-04-29 13:16:00) [1]Извиняюсь, я оказался не совсем прав. Просто я сам эксперементировал с двумя приложениями, а в последнем изречении указал на DLL. Во время проверки я запускал приложение с существующим МЕНЮ. А из второго пытался добавить к нему пункт, но пункт-то добавляется, но OnClick не работает, вот я и начал эту тему с данного вопроса.
Anatoly Podgoretsky (2002-04-29 10:56:00) [2]foks © (29.04.02 10:47)
Что то здесь никак не просматривается второе приложение
foks (2002-04-29 10:47:00) [3]Попробую объяснить. Оба приложения мои. В первом (то в которое мне нужно добавить пункт меню) при загрузке запускается процедура из подключаемой библиотеки, и данная процедура, как раз и должна добавить пункт. Затем библиотека получает сообщение о нажатии на добавленный пункт и обработывает его.
А как можно этом случае поставить хук.
Song (2002-04-29 09:13:00) [4]Не понял... А Вам нужно обрабатывать чужое приложение? Тогда надо хук ставить.
foks (2002-04-29 07:33:00) [5]А можно, простенький пример, у меня:
const SC_MyMenuItem = WM_USER+1;
procedure TForm1.WMSysCommand(var Msg:TWMSysCommand);
begin
if Msg.CmType=SC_MyMenuItem then
OnMeMenu else
inherited;
end;
, но данный код работает только с текущем приложением, в чем моя ошибка.
Song (2002-04-28 16:11:00) [6]Нажатие на пункт меню можно отловить через WM_SYSCOMMAND