對于python來說,模擬鍵盤的方式據(jù)我了解有三種方式,其" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > 請問用Python能否做網(wǎng)頁游戲的后臺模擬鼠標(biāo)類的腳本么?

請問用Python能否做網(wǎng)頁游戲的后臺模擬鼠標(biāo)類的腳本么?

時間:2024-01-29 04:30:01 | 來源:網(wǎng)站運營

時間:2024-01-29 04:30:01 來源:網(wǎng)站運營

請問用Python能否做網(wǎng)頁游戲的后臺模擬鼠標(biāo)類的腳本么?:后臺模擬鍵盤的話需要修改內(nèi)存,但是我做的是有關(guān)地下城的腳本,加上要圖像識別的,所以只能在桌面模擬輸入輸出。

對于python來說,模擬鍵盤的方式據(jù)我了解有三種方式,其中有pyuserinput,win32api,以及winio。

其中第一種可以應(yīng)用普通的程序或者桌面的鍵盤輸入,第二和第三則是比較接近底層的模擬鍵盤,如果想做游戲的腳本便可以用第二和第三種,順便一提第三種只使用圓孔的ps/2的鍵盤,第二種win32api親測可以用于制作模擬dnf鍵盤移動的腳本。




Pyuserinput

要使用Pysuerinput之前需要一些準(zhǔn)備,安裝好相關(guān)的庫,先安裝pywin32,以及pyHook,然后再安裝pyuserinput

import pymouse,pykeyboard,os,sysfrom pymouse import *from pykeyboard import PyKeyboardm = PyMouse()k = PyKeyboard()#鼠標(biāo)操作:m.click(x,y,button,n) #鼠標(biāo)點擊#x,y –是坐標(biāo)位置#buttong – 1表示左鍵,2表示點擊右鍵#n – 點擊次數(shù),默認是1次,2表示雙擊m.move(x,y) #–鼠標(biāo)移動到坐標(biāo)(x,y)x_dim, y_dim = m.screen_size() #–獲得屏幕尺寸#鍵盤操作:k.type_string(‘Hello, Python!’)# –模擬鍵盤輸入字符串k.press_key(‘A’) #–模擬鍵盤按A鍵k.release_key(‘A’)# –模擬鍵盤松開A鍵k.tap_key(“B”) #–模擬點擊B鍵k.tap_key(‘H’,n=2,interval=5)#–模擬點擊H鍵,2次,每次間隔5秒k.tap_key(k.function_keys[5]) #–點擊功能鍵F5k.tap_key(k.numpad_keys[5],3) #–點擊小鍵盤5,3次#聯(lián)合按鍵模擬#例如同時按alt+tab鍵盤k.press_key(k.alt_key)# –按住alt鍵k.tap_key(k.tab_key) #–點擊tab鍵k.release_key(k.alt_key)# –松開alt鍵


以上便是有關(guān)Pysuerinput的相關(guān)操作,并不是很難理解,一些方法也相當(dāng)方便我們使用。




win32api:

準(zhǔn)備:安裝好pywin32,pip insatall pywin32

然后使用時

import win32api

import win32con #導(dǎo)入這兩個模塊

import time #導(dǎo)入時間模塊要有中斷時間

import ctypes

以下是我自己的模擬按鍵按下抬起的方法:

def keydownup(num): MapVirtualKey = ctypes.windll.user32.MapVirtualKeyA time.sleep(0.4) win32api.keybd_event(num, MapVirtualKey(num, 0), 0, 0) time.sleep(0.2) win32api.keybd_event(num, MapVirtualKey(num, 0), win32con.KEYEVENTF_KEYUP, 0)


其中MapVirtualkey是掃描碼,一般不使用這個,如果要制作控制游戲人物的腳本時一定要填入掃描碼才能在游戲中實現(xiàn)硬件級鍵盤模擬。

方法很簡單

win32api.keybd_event(虛擬碼,掃描碼,0,0)

第一個參數(shù)是虛擬碼有一些是不太一樣的,需要自己根據(jù)自己的電腦測出相關(guān)的虛擬碼,其中一些虛擬碼,


left_arrow = 0x61up_arrow = 0x65right_arrow = 0x63down_arrow = 0x62a = 0x41d = 0x44x = 0x58


第二個參數(shù)是掃描碼,如果一個一個去尋找掃描碼會很麻煩,可以像我那樣,在方法開始處或者程序起始處添加這么一句

MapVirtualKey = ctypes.windll.user32.MapVirtualKeyA然后就可以傳入虛擬碼來尋找相應(yīng)的掃描碼




第三個是參數(shù)是作為判斷按下與抬起的標(biāo)識,按下時為0即可,因為鍵盤的全過程是按下與抬起,所有兩個keybd_event才是一個完整的過程,其中一定要給其中添加一個時間暫停的,不然還是無法使用,即使在操作臺或者pycharm上可以輸入,在游戲中便沒有效果了,時間自己可以傳參數(shù)進去,也可以規(guī)定一個固定的值,這個時間便是你按住的時間




第四個參數(shù)直接為0即可

原文請關(guān)注微信公眾號:孤獨的s 來獲取,歡迎關(guān)注

關(guān)鍵詞:模擬,后臺,腳本,游戲,請問

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關(guān)閉