java鉤子函數
❶ 前端開發中所謂的鉤子是什麼意思
就是綁定的事件的意思(鉤子->綁定)
<button id="mes">show</button>
//js
var btn = document.getElementById('mes');
var showMes = function() {
alert('鉤子函數');
};
btn.addEventListener('click', showMes);
showMes 就是鉤子函數
❷ hook是什麼意思
作為單詞時其意思是掛鉤,吊鉤或者是鉤住的意思;作為音樂的意思是是一種音樂的表現形式,通常出現在副歌的位置。用在籃球領域的指的是一個籃球動作。同時還是力學彈性理論中的一條基本定律以及Windows系統機制的意思。
作為單詞時其既可以做名詞使用,也可以做動詞使用。如用作名詞例句Please hang your coat on the hook.(請把你的外衣掛在鉤上)。用作動詞例句Please hook the rope over the nail.(請把繩子掛在那根釘子上)。
(2)java鉤子函數擴展閱讀:
1、hook單詞用法:hook用作名詞時意思是「鉤」,轉化為動詞時可表示把某物彎成鉤形,也可表示用彎曲的東西把某物體鉤住,引申可表示為「吊」「掛」等。
2、hook單詞的近義詞:catch 趕上;hanger 掛鉤;fasten 拴緊;snare 陷阱;clasp 扣子;trap 圈套;button 紐扣;nail 釘子;bind 捆綁。
3、hook常用短語:用作動詞時hook up(裝好,扣住);用作名詞by hook or by crook(千方百計)。
4、hook單詞短語搭配:Cargo hook(貨鉤 ; 吊貨鉤 ; 吊鉤);crochet hook(鉤針 ; 鉤編鉤針)。
5、hook單詞過去式是hooked;過去分詞是hooked;現在分詞是hooking;第三人稱單數是hooks。
❸ java的Swing組件本身具有雙緩沖功能,那麼,用什麼方法調用這個雙緩沖呢
任何在paint(Graphics) 方法外用getGraphics()試圖獲取畫筆的方法都是不可取的
就算你可以暫時的獲取到,也會因為屏幕刷新而把你畫的內容沖掉
記住,paint是一個回調函數(又稱鉤子函數),系統會在需要繪制的時候調用paint,只有掛在系統的鉤子上才能運行
舉個例子,swing的事件監聽就是一種鉤子函數的例子,只有addListener來掛鉤,系統就會觸發
windows有14種鉤子
試想,windows每隔一段時間都去調用組件的paint來繪制組件(屏幕刷新),此時,你在另外的方法裡面用了paint,那豈不是windows一調用組件自己的paint(Graphics) 就把你的paint刷掉了...
❹ 鉤子函數的簡介
系統范圍的 將捕捉系統中所有進程將發生的事件消息。 當您創建一個鉤子時,WINDOWS會先在內存中創建一個數據結構,該數據結構包含了鉤子的相關信息,然後把該結構體加到已經存在的鉤子鏈表中去。新的鉤子將加到老的前面。當一個事件發生時,如果您安裝的是一個局部鉤子,您進程中的鉤子函數將被調用。如果是一個遠程鉤子,系統就必須把鉤子函數插入到其它進程的地址空間,要做到這一點要求鉤子函數必須在一個動態鏈接庫中,所以如果您想要使用遠程鉤子,就必須把該鉤子函數放到動態鏈接庫中去。 故解決的辦法是:把鉤子函數放到單個的線程中,譬如安裝鉤子的線程。
鉤子一共有14種,以下是它們被調用的時機:
WH_CALLWNDPROC 當調用SendMessage時
WH_CALLWNDPROCRET 當SendMessage的調用返回時
WH_GETMESSAGE 當調用GetMessage 或 PeekMessage時
WH_KEYBOARD 當調用GetMessage 或 PeekMessage 來從消息隊列中查詢WM_KEYUP 或 WM_KEYDOWN 消息時
WH_MOUSE 當調用GetMessage 或 PeekMessage 來從消息隊列中查詢滑鼠事件消息時
WH_HARDWARE 當調用GetMessage 或 PeekMessage 來從消息隊列種查詢非滑鼠、鍵盤消息時
WH_MSGFILTER 當對話框、菜單或滾動條要處理一個消息時。該鉤子是局部的。它是為那些有自己的消息處理過程的控制項對象設計的。
WH_SYSMSGFILTER 和WH_MSGFILTER一樣,只不過是系統范圍的
WH_JOURNALRECORD 當WINDOWS從硬體隊列中獲得消息時
WH_JOURNALPLAYBACK 當一個事件從系統的硬體輸入隊列中被請求時
WH_SHELL 當關於WINDOWS外殼事件發生時,譬如任務條需要重畫它的按鈕.
WH_CBT 當基於計算機的訓練(CBT)事件發生時
WH_FOREGROUNDIDLE 由WINDOWS自己使用,一般的應用程序很少使用
WH_DEBUG 用來給鉤子函數除錯
附:如何使用鉤子函數(接收到字母A按下時,窗體由最小化彈出的完整的代碼)
Public Declare Function CallNextHookEx Lib user32 _
(ByVal hHook As Long, _
ByVal nCode As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
Public Declare Function UnhookWindowsHookEx Lib user32 _
(ByVal hHook As Long) As Long
Public Declare Function SetWindowsHookEx Lib user32 _
Alias SetWindowsHookExA _
(ByVal idHook As Long, _
ByVal lpfn As Long, _
ByVal hmod As Long, _
ByVal dwThreadId As Long) As Long
Public Const WH_KEYBOARD = 2
Public Const KEY_WINSTART = 91
Public Const KEY_WINMENU = 93
Global hHook As Long
Public Function KeyboardProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If nCode >= 0 Then
If wParam = KEY_WINMENU Or wParam = KEY_WINSTART Then
If (lParam And &HC0000000) = 0 Then
MsgBox , ,
KeyboardProc = 1
Exit Function
End If
End If
End If
KeyboardProc = CallNextHookEx(hHook, nCode, wParam, lParam)
End Function
Option Explicit
Private Sub Command1_Click()
form2.Show 1
End Sub
Private Sub form_Load()
hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf KeyboardProc, 0&, App.ThreadID)
Me.Show
End Sub
Private Sub form_Unload(Cancel As Integer)
Call UnhookWindowsHookEx(hHook)
End Sub
❺ java中何為鉤子方法和回調函數
問得不清楚,所以不懂怎麼回答這個區別。
所謂回調函數,一般就是把函數的地址作為參數傳進去,讓調用的函數在內部可以調用這個函數。
例子:
void CALLBACK fun(){...} 這是一個函數,回調函數
void AAA(int a, Fun* p); 這是一個普通函數,但第二個參數是fun
AAA(5, fun);
❻ 什麼叫做鉤子函數(易語言)
鉤子函數是用來給系統回調的. 簡單的說就是你注冊一個鉤子以後.發生鉤子注冊的事件. 系統就調用你注冊的鉤子函數並傳遞參數給你. 比如你注冊了一個鍵盤鉤子, 當用戶按下XX鍵的時候系統就調用你注冊的鉤子函數. 並且把用戶按下了哪些鍵當作參數傳遞過來. XX小馬就是用這個來邪惡的
麻煩採納,謝謝!
❼ java的鉤子函數有沒有晉級版
在游覽器中,選擇逗工具地-逗internet",選擇逗安全地選項卡,單擊自定義級別按鈕,彈出安全設置對話框,在腳本選項中對java小程序腳本選項點選禁用如果想要關閉的,可以將IE游覽器activex功能,java功能和腳本功能全部關閉
❽ 編程里說的 鉤子和勺子是什麼
Windows系統中鉤子具有相當強大的功能,通過這種技術可以對幾乎所有的Windows 系統中的消息進行攔截、監視、處理。這種技術可以廣泛應用於各種軟體,尤其是需要有監控、自動記錄等對系統進行監測功能的軟體。
VB編程中鉤子的實現
(一)鉤子函數(HOOK Function)的格式。Hook Function實際上是一個函數,如果是系統鉤子,該函數必須放在動態鏈接庫中。該函數有一定的參數格式,在VB中如下:
Private Function HookFunc(ByVal nCode As Long,ByVal wParam As Long,ByVal lParam As Long)As Long
其中,nCode代表是什麼情況之下所產生的鉤子,隨鉤子的不同而有不同組的可能值;參數wParam,lParam傳回值包括了所監視到的消息內容,它隨Hook所監視消息的種類和nCode的值不同而不同。對於用VB所設置的鉤子函數,一般的框架形式如下:
Private Function HookFunc(ByVal nCode As Long,ByVal wParam As Long,ByVal lParam As Long)As Long
Select case of nCode
case ncode<0:hookfunc=callnexthookex(hHookFunc,nCode,wParam,lParam)
case值1:處理過程1:HookFunc=X1
case2:處理過程2:HookFunc=X1
……
end select
end Function
函數的傳回值,如果消息要被處理,則傳0,否則傳1,吃掉消息。
(二)鉤子的安裝及執行。鉤子的安裝要用到幾個API函數:可以使用API函數SetWindowsHookEx()把一個應用程序定義的鉤子子程安裝到鉤子鏈表中。SetWindowsHookEx()函數的聲明如下:
Declare function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA"(ByVal idHook As Long,ByVal lpfn As Long,ByVal hmod As Long,ByVal dwThreadId As Long)As Long
idHook值為它處理的消息類型;lpfn值為鉤子子程序的地址指針。如果dwThreadId參數為0或是一個由別的進程創建的線程的標識,lpfn必須指向DLL中的鉤子子程。除此以外,lpfn可以指向當前進程的一段鉤子子程代碼。hMod值為應用程序的句柄,標識包含lpfn所指的子程的DLL。如果dwThreadId標識當前進程創建的一個線程,而且子程代碼位於當前進程,hMod必須為0。dwThreadId值為與安裝的鉤子子程相關聯的線程的標識符,如果為0,鉤子子程與所有的線程關聯。鉤子安裝成功則返回鉤子子程的句柄,失敗返回0。
另外,一般應在鉤子子程中調用CallNextHookEx()函數以執行鉤子鏈表所指的下一個鉤子子程,否則安裝了別的鉤子的應用程序就會收不到鉤子通知,從而產生錯誤的結果。CallNextHookEx()函數的聲明如下:
Declare Function CallNextHookEx Lib"user32" Alias "CallNextHookEx"(ByVal hHook As Long,ByVal ncode As Lonog, ByVal wParam As Long,lParam As Any)As Long
hHook值是SetWindowsHookEx()的傳回值,nCode、wParam、lParam則是Hook函數中的三個參數。在程序終止之前,必須調用UnhookWindowsHookEx()函數釋放與鉤子關聯的系統資源。UnhookWindowsEx()函數聲明如下:
Declare Function Unhook WindowsHookEx Lib "user32" Alias "Unhook WindowsHookEx(ByVal hHook As Long)As Long
hHook為安裝鉤子時的返回值,即鉤子子程的句柄。