如何傳遞 substrate hook 自定義類引數

發布 數碼 2024-03-28
5個回答
  1. 匿名使用者2024-02-07

    首先,你的問題不是很合適,因為鉤子函式是乙個**函式,系統指定引數,傳遞引數,你寫內容,然後系統在一定的觸發條件下呼叫它。

    比如你搭建乙個 wh mouse hook,那麼 mouseproc 的三個引數都是由作業系統(實際上是 win32 平台)傳遞的,意思是 ncode 如何處理訊息,wparam 訊息識別,lparam 是乙個 mousehookstruct 結構指標,我們需要做的就是利用這三個引數來完成我們想要實現的功能, 這就是**功能的意義!

    一般來說,製作鉤子的函式有三個,主要的解決方案是鉤子函式的定義

    1.建立鉤子:setwindowshookex,四個引數分別是鉤子型別、鉤子函式位址、鉤子函式所在的dll的例項控制代碼、安裝鉤子後要監控的執行緒的id號,返回引數是鉤子控制代碼。

    2.UnhookWindowsHookEx 只有乙個引數,是要解除安裝的鉤子控制代碼。

    3.鉤子功能(任意名稱),三個引數,具體含義與鉤子型別有關。

    下面是乙個簡單的示例:

    例如,如果要編寫乙個程式,當滑鼠移動到**時,該程式在主程式中顯示視窗的名稱。

    1)如果滑鼠只侷限於視窗,那麼以上三個功能1、2、3都寫在正在執行的主程式中,例如,按下按鈕時可以寫在訊息響應功能中,鬆開按鈕時可以寫在訊息響應功能中, 函式 3 只要不寫在其他函式中就可以編寫,因為它本質上是乙個需要定義的獨立函式。

    2)如果滑鼠可以在螢幕上的任意位置移動,那麼上面的函式1和2與(1)是一樣的,但函式3應該寫在單獨的dll中,因為此時安裝了全域性鉤子,為了達到獲取視窗名稱的目的,dll中可能還有一些其他的工作, 比如設定共享區段,關於這些就不在這裡贅述了。

    如果要詢問如何填充 setwindowshookex 的引數或者鉤子函式的三個引數的具體含義,那麼可以參考 msdn,因為這些引數都與鉤子型別有關,要鉤子的訊息。

  2. 匿名使用者2024-02-06

    介紹 Substrate 的幾個重要 API。

    函式原型:void hookclassload(string name, hook);

    此方法在載入指定的類時實現通知。 由於可以隨時載入類,因此 substrate 提供了一種檢測何時載入使用者感興趣的類的方法。

  3. 匿名使用者2024-02-05

    放乙個滑鼠鉤。

  4. 匿名使用者2024-02-04

    方法在 中定義。

    使用外掛程式掛鉤。

    param string $hook鉤子名稱。

    引數混合$params傳入引數。

    return void

    function hook($hook,$params=array())

  5. 匿名使用者2024-02-03

    首先不知道房東是怎麼知道鉤子的,如果你對鉤子知識了解不多,看看一樓的基本知識,如果你明白了,就幫你用簡單的語言解釋一下如何實現鉤子和鉤子功能。

    第一步 1 註冊鉤子:鉤子控制代碼 setwindowshookex (13, & hook function, getmodulehandlea (0), 0)。

    這裡你可以看到第二個引數是我們的鉤子函式,當它遇到乙個函式指標引數時,你需要在函式名前加上&

    符號表示指向函式的指標已傳遞,第二步是鉤子函式:版本 2

    子例程鉤子函式、整數、引數、icode、整數。

    引數 wparam,整數型別。

    引數 lparam, integer 這是這個函式的定義,這個函式必須以這種方式定義,引數的數量和型別。

    並且返回值必須按照這個定義,在這個函式中你可以攔截訊息,但要記住,一旦你處理了訊息,你就返回 1 告訴系統訊息被你截獲了,否則返回 callnexthookex(鉤子控制代碼、icode、wparam、lparam),這樣系統就可以執行其他鉤子了。

    第三步是解開鉤子 unhookwindowshookex

相關回答
8個回答2024-03-28

第。 1.使用圖形軟體(如CorelDraw)製作動態表示式所需的素材,並匯出為jpg格式(也可以使用已有的**自行組合)。 在 Photoshop 中,刪除 ** 並按動態表示式更改的順序將其放入資料夾中。 >>>More

12個回答2024-03-28

第一種方法:替換三星 i9000 系統聲音檔案。 >>>More

14個回答2024-03-28

private sub command1_click()dim i as integer

dim sum as long >>>More

8個回答2024-03-28

在excel排序對話方塊中選擇主關鍵字後,點選該選項,可以選擇自定義序列作為排序順序,這樣可以使排序方便,快速,更容易控制,那麼如何在excel中自定義單元格文字或數字的排序方法,一起來看看吧! >>>More

6個回答2024-03-28

1.選擇**,單擊滑鼠右鍵,選擇“新增庫存”,然後按 Ctrl 或 Shift。 >>>More