Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2009, 16:02   #1
Zirr
 
Регистрация: 07.03.2009
Сообщений: 3
По умолчанию Добавить в системное меню пункт не совего окна

Доброго времени суток!

Вопрос в следующем:

как перехватить WM_SYSCommand окна (с целью добавления в сисменю строки), где был клик мыши

черех хук WH_Mouse перехватываю WM_LButtonDoun? потом через структуру MOUSEHOOKSTRUCT проверяю, был ли клик на заголовке окна (HTCAPTION = 2)

Код:
Type 
  MouseStruc = ^TMouseStruc; 
  TMouseStruc = packed record 
    PT : TPoint; 
    WND : HWnd; 
    wHitTestCode : UINT; 
    dwExtraInfo : DWORD; 
End; 

function LowLevelMouseProc(Code: Integer; wParam: DWORD; lParam: DWORD): Longint; stdcall; 
begin 

    if (wParam =  WM_LBUTTONDOWN) then 
    begin 

      MStruct := Pointer (LParam); 
      if MStruct^.wHitTestCode = 2 Then 
      Begin 
         ... 
      End; 

    end;
Но проблема в том, что в MOUSEHOOKSTRUCT.wHitTestCode не приходит HTCAPTION = 2

может есть другой способ добавления в сисменю?

Заранее спс

Исходник : 0.rar

Нашел на просторах инета :
Код:
Код: (cpp) 
HOOKPROC hkprcSysMsg; 
static HINSTANCE hinstDLL; 
static HHOOK hhookSysMsg; 
hinstDLL = LoadLibrary((LPCTSTR) "c:\windows\sysmsg.dll"); 
hkprcSysMsg = (HOOKPROC)GetProcAddress(hinstDLL, "SysMessageProc"); 
hhookSysMsg = SetWindowsHookEx(WH_GETMESSAGE,hkprcSysMsg,hinstDLL,0);
Этот хук надо ставить надо на WH_GETMESSAGE, DLL можно и не загружать если в небольшой программке сделать все сегменты FIXED через def-файл,
и там не нужно будет вызывать даже MakeProcInstance - всё будет и так работать.

Последний раз редактировалось Zirr; 24.05.2009 в 16:06.
Zirr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
меню окна user_jasser Win Api 2 26.02.2009 18:54
Отключить пункт меню (Программно) ScreN Общие вопросы Delphi 1 27.12.2008 13:40
Как в Excele2007 назначить макрос на пункт пользовательского меню Suroejka Microsoft Office Excel 3 28.05.2008 14:02
Macromedia Dreamweaver закрывается при наведении на пункт меню Xardas Софт 2 04.05.2008 21:39
Как добавить подменю в системное контекстное меню Lucky13 Win Api 5 19.03.2007 20:17