Am o problema, Fac o proga in Builder, su Delphi. cum sa fac asa cind apas tasta 'Windows'(codul '91')
sa nu apara panelul de optiuni (PROGRAMS, DOCUMENTS, ...).
Sau cine stie cum sa se execute un 'Event' care apare la apasarea a unei taste sau a maosului, dar fara a apasa nici o tasta, de exemplu ce functii a API windows trebuie sa se execute pentru ca sa se genereze apasarea tastei esc (apasarea fizica nu are loc).
Help please. Mersi mult.
Cum sa ascund Start.Panel
Модератор: Злобный
Не помню точно как это делается, но на мысль натолкнуть попробую.
Тебе нужно установить 2 ловушки (hooks).
Первая должна быть направлена на сообщение WM_SYSCOMMAND, где будет проверять wParam на SC_TASKLIST. Примерно так:
С клавой этот вариант точно канает, а для мыши попробуй установить ловушку на кликание в прямоугольнике кнопки Start, это и будет вторая ловушка.
Типы ловушек
Для крысы:
Для клавы:
Материал расчитан на то, что ты работал с глобальными ловушками и DLL-библиотеками, иначе тебе придется проштудировать этот материал.
Подумаешь, может быть ты придумаешь вариант оптимальнее этого, такой точно должен быть, потому, что этот, я придумал по ходу того, как читал твой пост.
Пока!
Тебе нужно установить 2 ловушки (hooks).
Первая должна быть направлена на сообщение WM_SYSCOMMAND, где будет проверять wParam на SC_TASKLIST. Примерно так:
Код: Выделить всё
...
if Code = HC_ACTION then begin
if TMsg(Pointer(lParam)^).message = WM_SYSCOMMAND then
if TMsg(Pointer(lParam)^).wParam = SC_TASKLIST then
{Это и есть нужное сообщение ставишь сюда свой код, чтоб не допустить событие}
end;
...Типы ловушек
Для крысы:
Код: Выделить всё
idMouseHook := SetWindowsHookEx(WH_MOUSE, @MouseProc, HInstance,0);Код: Выделить всё
idKeyBoardHook := SetWindowsHookEx(WH_GETMESSAGE, @KeyBoardProc, HInstance,0);Подумаешь, может быть ты придумаешь вариант оптимальнее этого, такой точно должен быть, потому, что этот, я придумал по ходу того, как читал твой пост.
Пока!
