請問如何擋掉 滑鼠右鍵 和 ctrl+esc |
答題得分者是:turboted
|
kunying
一般會員 發表:17 回覆:28 積分:19 註冊:2002-03-14 發送簡訊給我 |
大家好,最近寫程式需要
擋掉 (1)滑鼠右鍵 (鍵盤上那一個按鍵)
(2)ctrl esc (鍵盤上那一個按鍵,有微軟圖的那一個按鍵) 所以搜尋深度歷險,發現錢達智大哥的文章
利用 hook 來擋鍵盤
可是他的方法也不能擋掉這二個按鍵,想請問各位怎麼做才可擋掉
這二個按鍵。 (能試的我都試了…)
是我改錯了嗎,請大家幫忙 ~>_<~ 謝謝。 以下是錢達智大哥的文章(部份)
http://vcl.vclxx.org/DELPHI/D32SAMPL/HOOKDEMO.ZIP unit HKProc; interface uses
Windows, Messages; var
hNextHookProc: HHook;
procSaveExit: Pointer; function KeyboardHookHandler(iCode: Integer;
wParam: WPARAM;
lParam: LPARAM): LRESULT; stdcall; export;
function EnableHotKeyHook: BOOL; export;
function DisableHotKeyHook: BOOL; export;
procedure HotKeyHookExit; far; implementation function KeyboardHookHandler(iCode: Integer;
wParam: WPARAM;
lParam: LPARAM): LRESULT; stdcall; export;
const
_KeyPressMask = $80000000;
begin
messagebox(0,'keydown','keydown',64);
Result := 0;
If iCode < 0 Then
begin
Result := CallNextHookEx(hNextHookProc, iCode, wParam, lParam);
Exit;
end;
Result := 1; //這一段被我改掉,什麼鍵進來都不回應
end; //結果還是不能擋 >_< function EnableHotKeyHook: BOOL; export;
begin
Result := False;
if hNextHookProc <> 0 then Exit;
// 掛上 WH_KEYBOARD 這型的 HOOK, 同時, 傳回值必須保留下
// 來, 免得 HOOK 呼叫鏈結斷掉
hNextHookProc := SetWindowsHookEx(WH_KEYBOARD,
KeyboardHookHandler,
HInstance,
0);
Result := hNextHookProc <> 0;
end; function DisableHotKeyHook: BOOL; export;
begin
if hNextHookProc <> 0 then
begin
UnhookWindowshookEx(hNextHookProc); // 解除 Keyboard Hook
hNextHookProc := 0;
MessageBeep(0);
MessageBeep(0);
end;
Result := hNextHookProc = 0;
end; procedure HotKeyHookExit;
begin
// 如果忘了解除 HOOK, 自動代理解除的動作
if hNextHookProc <> 0 then DisableHotKeyHook;
ExitProc := procSaveExit;
end; end. ________________________
「有時候你以為天要塌下來了,其實是因為你站歪了!」
------
________________________ 「有時候你以為天要塌下來了,其實是因為你站歪了!」 | |||
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
這個問題也困擾著我,因為出機給客戶時,希望客戶不要亂按,似乎是沒法要求,而在 XP/2K/NT 中,一些系統的按鍵(熱鍵)是無法擋掉的!
在 XP/2K/NT 中不讓你 HOOK 一些系統鍵,是怕你 HOOK 掉系統鍵,並且叫出自己的程式取代 Windows 的介面,這樣可以直接由操作者自己輸入自己的密碼給你的程式... 這樣就變成漏洞了。
之前在網路上有找到過軟體設定的方法,好像是可以把整個鍵盤的 scan code 都重新定義... 可惜忘了網址了...
我同事的想法是用硬體解決,直接將那幾個按鈕的線路剪掉... 不過可能沒有人會這樣作吧 沒空更新的網頁...<><>< src="http://www.taconet.com.tw/dllee/gif/dlleebn.gif"> C及指標教學
http://coolsite.to/dllee | 介紹Shells
http://coolsite.to/ushells | |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |