資源簡介
利用python+rabird.winio模塊實現驅動級模擬按鍵,可以做任何游戲腳本,驅動級基本沒辦法被檢測。其中電腦需要安裝winio驅動才能運行。
代碼片段和文件信息
import?rabird.winio
import?time
import?atexit
#?KeyBoard?Commands
#?Command?port
KBC_KEY_CMD?=?0x64
#?Data?port
KBC_KEY_DATA?=?0x60
__winio?=?None
def?__get_winio():
????global?__winio
????if?__winio?is?None:
????????????__winio?=?rabird.winio.WinIO()
????????????def?__clear_winio():
????????????????????global?__winio
????????????????????__winio?=?None
????????????atexit.register(__clear_winio)
????return?__winio
def?wait_for_buffer_empty():
????‘‘‘
????Wait?keyboard?buffer?empty
????‘‘‘
????winio?=?__get_winio()
????dwRegVal?=?0x02
????while?(dwRegVal?&?0x02):
????????????dwRegVal?=?winio.get_port_byte(KBC_KEY_CMD)
def?key_down(scancode):
????winio?=?__get_winio()
????wait_for_buffer_empty();
????winio.set_port_byte(KBC_KEY_CMD?0xd2);
????wait_for_buffer_empty();
????winio.set_port_byte(KBC_KEY_DATA?scancode)
def?SPkey_down(scancode):
????winio?=?__get_winio()
????wait_for_buffer_empty();
????winio.set_port_byte(KBC_KEY_CMD?0xd2);
????wait_for_buffer_empty();
????winio.set_port_byte(KBC_KEY_DATA?0xe0)
????wait_for_buffer_empty();
????winio.set_port_byte(KBC_KEY_CMD?0xd2);
????wait_for_buffer_empty();
????winio.set_port_byte(KBC_KEY_DATA?scancode)
def?key_up(scancode):
????winio?=?__get_winio()
????wait_for_buffer_empty();
????winio.set_port
評論
共有 條評論