|
Вопрос # 123/ вопрос открыт / |
|
Доброе время суток, Господа программисты!
Как сделать, чтобы когда программа запущена кнопка Виндоус не работала. Заранее благодарен!!!
 |
Вопрос задал: Geron (статус: 1-ый класс)
Вопрос отправлен: 2 октября 2006, 11:17
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 3; последнее сообщение — 25 декабря 2006, 17:33; участников в обсуждении: 2.
|
Alex Van Glukhman (статус: 7-ой класс), 3 октября 2006, 23:14 [#1]:
Во всех формах property KeyPreview:=true;
Event OnKeyDown
Key VK_WIN
Вперёд!!!
|
|
Alex Van Glukhman (статус: 7-ой класс), 4 октября 2006, 14:48 [#2]:
Предыдущее сообщение можно не рассматривать!!!
В главное форме приложения:
interface
uses
Windows, Messages, Variants, Types;
type
pKBDLLHOOKSTRUCT = ^TKBDLLHOOKSTRUCT;
TKBDLLHOOKSTRUCT = record
vkCode: DWORD;
scanCode: DWORD;
flags: DWORD;
time: DWORD;
dwExtraInfo: DWORD;
end;
...
//Далее идёт определение формы
...
const
WH_KEYBOARD_LL=13;
var
Hk: HHOOK;
strct: pKBDLLHOOKSTRUCT;
...
implementation
...
function LowLewelKeyboardProc(nCode: integer;
wParam: Longint; lParam: Longint): Longint;
stdcall;
begin
Result:=1;
if (wParam=WM_KEYUP) or (wParam=WM_KEYDOWN)
then begin
strct:=pKBDLLHOOKSTRUCT(lParam);
if strct.scanCode=VK_LWIN then exit;
if strct.scanCode=VK_RWIN then exit;
end;
Result:=CallNextHookEx(Hk, nCode, wParam,
lParam);
end;
...
procedure TMnFrm.FormCreate(Sender: TObject);
begin
//Отключаем
Hk:=SetWindowsHookEx(WH_KEYBOARD_LL,
@LowLewelKeyboardProc, HInstance, 0);
end;
procedure TMnFrm.FormClose(Sender: TObject);
begin
UnhookWindowsHookEx(Hk);
end;
тоже самое можно получить в консольном приложении только используем структуру
try
finally
end;
|
|
Новаковский Юрий Аврамович (статус: 4-ый класс), 25 декабря 2006, 17:33 [#3]:
Попробуте так:
Program HideStartButton;
uses Windows;
var h1, h2 : THandle;
begin
h1 := FindWindow('ProgMan', nil);
h1 := GetWindow(h1, GW_CHILD);
ShowWindow(h1, SW_HIDE);
h2 := FindWindow('Shell_TrayWnd', nil);
ShowWindow(h2, SW_HIDE);
MessageBox(0, 'Рабочий стол и кнопка Пуск были скрыты.', 'HideStartButton', MB_ICONINFORMATION);
ShowWindow(h1, SW_SHOW);
ShowWindow(h2, SW_SHOW);
MessageBox(0, 'Рабочий стол и кнопка Пуск были восстановлены.', 'HideStartButton', MB_ICONINFORMATION);
end.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|