一区二区三区电影_国产伦精品一区二区三区视频免费_亚洲欧美国产精品va在线观看_国产精品一二三四

聯系我們 - 廣告服務 - 聯系電話:
您的當前位置: > 關注 > > 正文

用Python3實現dota改建精靈——python庫

來源:CSDN 時間:2023-02-14 08:58:20


(資料圖片僅供參考)

如題,用Python3實現 dota改建精靈。本質原理是通過改變鍵盤按鍵映射關系。比如按下數字鍵1,映射到字母A。映射關系可以自定義。 這樣就構成了改建邏輯。 實現工具清單如下:

python 3.7.3python庫:PyHook3 ,關于該庫的安裝請自行百度,有點麻煩。python庫:win32api

完整代碼如下,可直接使用:

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Date    : 2020-09-05 19:13:10# @Author  : Nero # @Link    :# @Version : Dota技能一把梭"""使用說明:1). 根據需求修改keyMap中對應的值,字母不區分大小寫2). 程序運行后,通過“\” 開啟、關閉 鍵盤映射功能"""#導入庫文件import pythoncomimport PyHook3import win32apiimport win32con#構建映射關系keyMap={"裝備欄1":"",     "裝備欄2":"",        "裝備欄3":"",     "裝備欄4":"",        "裝備欄5":"",     "裝備欄6":"",        }#提示信息print("Author: Nero\n")print("裝備欄順序如下:\n裝備欄1     裝備欄2\n裝備欄3     裝備欄4\n裝備欄5     裝備欄6\n")#輸入各裝備欄的快捷鍵for i in keyMap:    keyMap[i]=input("請輸入"{0}"的快捷鍵: ".format(i))#改建開關提示print("\n請輸入 “\” 開啟改鍵功能\n")#開關flagturnONOFF="Oem_5"           # “\” 開啟/關閉 按鍵映射功能按鍵startFlag=False#開關函數def switchFlag():    global startFlag    if startFlag:        print ("功能停止")        startFlag=False    else :        print ("功能開啟")        startFlag=Truedef checkFlag():    return startFlag#主程序將一直監聽鍵盤輸入,并判斷是否是自定義的快捷鍵,根據判斷結果將指定的按鍵發送給系統。def onKeyboardEvent(event):    #打印當前鍵盤輸入    print ("Key:{0:} ".format(event.Key))        #程序開啟/關閉    if str(event.Key) == "Oem_5":        switchFlag()#如果程序開啟,如果檢測到按鍵為快捷鍵,則將該快捷鍵映射的值送給系統    if checkFlag():        if str(event.Key).lower() == keyMap["裝備欄1"].lower():            win32api.keybd_event(103, 0, 0, 0)      #對應小鍵盤7            win32api.keybd_event(103, 0, win32con.KEYEVENTF_KEYUP, 0)        elif str(event.Key).lower() == keyMap["裝備欄3"].lower():            win32api.keybd_event(100, 0, 0, 0)      #對應小鍵盤4            win32api.keybd_event(100, 0, win32con.KEYEVENTF_KEYUP, 0)        elif str(event.Key).lower() == keyMap["裝備欄5"].lower():            win32api.keybd_event(97, 0, 0, 0)       #對應小鍵盤1            win32api.keybd_event(97, 0, win32con.KEYEVENTF_KEYUP, 0)        elif str(event.Key).lower() == keyMap["裝備欄2"].lower():            win32api.keybd_event(104, 0, 0, 0)      #對應小鍵盤8            win32api.keybd_event(104, 0, win32con.KEYEVENTF_KEYUP, 0)        elif str(event.Key).lower() == keyMap["裝備欄4"].lower():            win32api.keybd_event(101, 0, 0, 0)      #對應小鍵盤5            win32api.keybd_event(101, 0, win32con.KEYEVENTF_KEYUP, 0)        elif str(event.Key).lower() == keyMap["裝備欄6"].lower():            win32api.keybd_event(98, 0, 0, 0)       #對應小鍵盤2            win32api.keybd_event(98, 0, win32con.KEYEVENTF_KEYUP, 0)    else:        pass    # 返回 True 以便將事件傳給其它處理程序    # 注意,這兒如果返回 False ,則鼠標事件將被全部攔截    # 也就是說你的輸入失效,似乎失去響應了    return Truedef main():    # 創建一個“鉤子”管理對象    hm = PyHook3.HookManager()    # 監聽所有鍵盤事件    hm.KeyDown = onKeyboardEvent    # 設置鍵盤“鉤子”    hm.HookKeyboard()    # 進入循環,如不手動關閉,程序將一直處于監聽狀態    pythoncom.PumpMessages()if __name__ == "__main__":    main()

責任編輯:

標簽:

相關推薦:

精彩放送:

新聞聚焦
Top 主站蜘蛛池模板: 石门县| 淳安县| 四会市| 根河市| 济南市| 台南市| 洞口县| 长白| 安徽省| 谢通门县| 砀山县| 鹤岗市| 富锦市| 车险| 武陟县| 鹤壁市| 达拉特旗| 平遥县| 独山县| 博罗县| 油尖旺区| 襄汾县| 航空| 阿拉善右旗| 永仁县| 上高县| 青铜峡市| 汝阳县| 赤城县| 且末县| 府谷县| 独山县| 多伦县| 荆州市| 新河县| 绥中县| 湖南省| 乃东县| 光泽县| 上饶县| 德州市|