![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Убрать меню по правой клавиши мышки [D5, D6, Win95/98]
Sergserg © (2002-07-26 08:06:00)Здраствуйте уважаемые мастера. Есть такой вопрос как убрать(скрыть)меню появляющееся при нажатии правой кнопки мыши на кнопки Пуск.
С уважением.
Sergserg (2002-07-29 20:20:00) [1]Спасибо попробую
Eugene Lachinov (2002-07-26 14:36:00) [2]Вариант с использованием SetWindowsHookEx
library MouseDll;
{$R *.res}
uses
Messages,
SysUtils,
Windows;
var
MouseHookHandle : HHook;
hStartButton : HWnd;
function GetStartButton : HWnd;
var
ClassName : array[0..255] of char;
begin
Result := Windows.FindWindow("Shell_TrayWnd", "");
if Result <> 0 then begin
Result := GetWindow(Result, GW_CHILD);
repeat
GetClassName(Result, ClassName, 255);
if lstrcmpi(ClassName, "Button") = 0 then
Break
else
Result := GetWindow(Result, GW_HWNDNEXT);
until Result = 0
end
end;
function MouseProc(nCode : Integer; // hook code
wParam : WPARAM; // message identifier
lParam : LPARAM // mouse coordinates
) : LRESULT; stdcall;
begin
if (nCode = HC_ACTION) and ((wParam = WM_RBUTTONDOWN) or (wParam = WM_RBUTTONUP)) and
(PMouseHookStruct(lParam)^.hwnd = hStartButton) then
Result := 1
else
Result := CallNextHookEx(MouseHookHandle, nCode, wParam, lParam)
end;
function MouseHook : Bool; stdcall;
begin
Result := hStartButton <> 0;
if Result then
MouseHookHandle := SetWindowsHookEx(WH_MOUSE, MouseProc, HInstance, 0);
end;
procedure MouseUnhook; stdcall;
begin
UnhookWindowsHookEx(MouseHookHandle)
end;
exports
MouseHook,
MouseUnhook;
begin
hStartButton := GetStartButton
end.
.........
function MouseHook : Bool; external "MouseDll.dll";
function MouseUnhook : Bool; external "MouseDll.dll";
procedure TForm1.Button1Click(Sender: TObject);
begin
MouseHook
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
MouseUnhook
end;
Sergserg (2002-07-26 10:44:00) [3]Затем что в этом меню есть пункт Проводник Который мне абсолютно не нужен
Eugene Lachinov (2002-07-26 10:01:00) [4]Ответа, наверно, не знаю, но интересно зачем ?