Cum sa ascund Start.Panel

Модератор: Злобный

Ответить
Аватара пользователя
AleXqwq
Юзер
Сообщения: 105
Зарегистрирован: Чт сен 11, 2003 10:44
Откуда: from there

Cum sa ascund Start.Panel

Сообщение AleXqwq »

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.
Аватара пользователя
Vital
Продвинутый
Сообщения: 558
Зарегистрирован: Вт янв 28, 2003 10:21
Контактная информация:

Сообщение Vital »

Не помню точно как это делается, но на мысль натолкнуть попробую.
Тебе нужно установить 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;
...
С клавой этот вариант точно канает, а для мыши попробуй установить ловушку на кликание в прямоугольнике кнопки Start, это и будет вторая ловушка.
Типы ловушек
Для крысы:

Код: Выделить всё

idMouseHook := SetWindowsHookEx(WH_MOUSE, @MouseProc, HInstance,0);
Для клавы:

Код: Выделить всё

idKeyBoardHook  := SetWindowsHookEx(WH_GETMESSAGE, @KeyBoardProc, HInstance,0);
Материал расчитан на то, что ты работал с глобальными ловушками и DLL-библиотеками, иначе тебе придется проштудировать этот материал.
Подумаешь, может быть ты придумаешь вариант оптимальнее этого, такой точно должен быть, потому, что этот, я придумал по ходу того, как читал твой пост.
Пока!
Аватара пользователя
AleXqwq
Юзер
Сообщения: 105
Зарегистрирован: Чт сен 11, 2003 10:44
Откуда: from there

Сообщение AleXqwq »

Spasiboniki za otvet, porobuiu esli poidiot.
Ответить

Вернуться в «Программирование»