winio模擬鍵盤滑鼠的輸入

2021-05-10 19:23:23 字數 1318 閱讀 7459

winio模擬鍵盤滑鼠的輸入

做乙個遊戲外掛程式,發現其遮蔽了sendinput訊息。

但是按鍵精靈能夠實現。得知其原理是使用winio.dll,偽裝硬體訊息。

網上winio關於滑鼠鍵盤模擬極少。

void ciotestdlg::kbcwait4ibe()

while(dwregval & 0x00000001);

}void ciotestdlg::keypress(byte byscancode)

這是找到的鍵盤模擬片斷。

做了乙個測試程式,發現沒有成功響應虛擬的按鍵訊息。

進行keypress(vk_lbutton)的時候,測試的dialog直接自動退出,未知原因。

其他keypress(vk_tab)則沒有響應。

以下是採用winio直接向ps2鍵盤(或滑鼠)緩衝區寫資料的方法。

winxpsp2下測試通過!

procedure setkey(scancode: byte);

begin

asm//無論向0x60,還是0x64寫東西前都要等狀態暫存器obf變0

@loop1:

in al, $64

and al, 01b

jnz @loop1

//向$64埠寫命令

mov al, $d2//寫鍵盤輸出快取命令

out $64, al

//無論向0x60,還是0x64寫東西前都要等狀態暫存器obf變0

@loop2:

in al, $64

and al, 01b

jnz @loop2

//向$60埠寫引數

mov al, scancode

out $60, al

end;

end;

模擬非擴充套件鍵:

setkey($1f);//make codes

sleep(25);

setkey($9f);//break code

模擬擴充套件鍵:

setkey($e0);//因為這是乙個擴充套件鍵

setkey($4b);//make codes

sleep(25);

setkey($e0);//因為這是乙個擴充套件鍵

setkey($cb);//break code

模擬滑鼠的類似。

不管什麼遊戲,sendinput不太可能被遮蔽!

不建議採用winio自身的setportval函式,這樣效率太慢,而是直接用彙編寫埠,當載入winio驅動後就可以直接操作埠了。

載入驅動:initializewinio

卸下驅動:shutdownwinio

winIO模擬鍵盤滑鼠

winio模擬鍵盤滑鼠 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,markdown將 片顯示選擇的高亮...

模擬滑鼠的單雙擊

實現方法 先用setcursorpos將滑鼠移動到某一特定位置。如果要模擬滑鼠單擊,則呼叫mouse event函式兩 次分別傳送滑鼠被按下的訊息和滑鼠被彈起的訊息 如果要模擬滑鼠雙擊,則重 送一次滑鼠被按下 和彈起的訊息。程式 2 給對話方塊增加 雙擊標題欄 按鈕,其響應函式為 void csim...

python selenium模擬滑鼠的常用操作

引入模組 from selenium.webdriver.common.action chains import actionchains 使用前需將actionchains類例項化並傳入引數driver,然後呼叫滑鼠操作,最後呼叫perform函式執行滑鼠操作,不呼叫perform不執行 1 右擊...