civilian 님이 쓰신 글 :
: http://www.techiecorner.com/51/how-to-disable-window-key-at-keyboard-in-windows-xp/
:
: 상어와밥 님이 쓰신 글 :
: : 키보드에있는 윈도우그림표시로된 키를 막고 싶은데 어떻하면 될까요
: :
: : 키값을 확인하니 왼쪽 91 오른쪽 92가 나타나는데 도무지 막히지가 않네요
: : 부탁합니다
빠른 답변감사합니다
답변을 찾다보니 있어서 해결했습니다
링크해 주신곳은 MS윈도우 페이지군요 ^^
다른분이 필요할까 싶어서 찾은 소스를 첨부합니다 ^^
type
PKeyHookStruct = ^TKeyHookStruct;
TKeyHookStruct = record
vkCode: INTEGER;
scancode: INTEGER;
flags: INTEGER;
time: INTEGER;
dwExtraInfo: INTEGER;
end;
const WH_KEYBOARD_LL= 13;
var HookID: HHOOK;
procedure LockSystem;
begin
HookID:=SetWindowsHookEx (WH_KEYBOARD_LL, @LLKeyHookFunc, hInstance,0)
end;
function LLKeyHookFunc (hookcode:integer; keycode:wParam; kstrokeinfo:lParam): LResult; stdcall;
var
PKeyHook: PKeyHookStruct;
begin
PKeyHook :=Ptr(kstrokeinfo);
Result:=0;
if (hookcode >= 0) then
begin
if ((PKeyHook.vkCode = VK_ESCAPE) and (GetAsyncKeyState(VK_CONTROL) < -32766)) then
Result:= 1
else if ((PKeyHook.vkCode = VK_LWIN) or (PKeyHook.vkCode = VK_RWIN)) then
Result:= 1
else if ((pKeyHook.vkCode = VK_TAB) and (GetAsyncKeyState(VK_LMENU) < -32766)) then
Result := 1
else if ((PKeyHook.vkCode = VK_ESCAPE) and (GetAsyncKeyState(VK_LMENU) < -32766)) then
Result := 1
else if ((PKeyHook.vkCode = VK_F4) and (GetAsyncKeyState(VK_LMENU) < -32766)) then
Result := 1;
end;
if (Result = 0) then
Result:=CallNextHookEx (HookID, hookcode, keycode, kstrokeinfo);
end;
불러서 쓸때는
LockSystem;
입니다
|