<form id="dlljd"></form>
        <address id="dlljd"><address id="dlljd"><listing id="dlljd"></listing></address></address>

        <em id="dlljd"><form id="dlljd"></form></em>

          <address id="dlljd"></address>
            <noframes id="dlljd">

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

              用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 中文字幕在线观看亚洲日韩