Python模拟鼠标键盘的包有很多,它们的文档也很全,功能也很人性化,最后实在没有办法了再使用大漠。
推荐结合使用:比如:大漠没有监听键盘的功能,你完全可以再开一个线程,使用Keyboard
进行监听。
Pyautogui
侧重于鼠标,键盘,截图,消息框的功能Pywinauto
侧重对CS的操作,对进程,窗体进行操作Keyboard
侧重于键盘,监听键盘,设置热键,键盘记录等功能
pydmdll
仅支持32位Python,实现了大漠插件免费功能部分,内部封装的是V3.1233
版本的dm.dll
.初衷是为了解决鼠标在游戏内部无法拖拽的问题。
- 键盘鼠标:输入,输出,按键,点击等
- 窗口功能:最小化,激活,移动,获取窗口句柄等
- 基本功能:剪贴板,蜂鸣器等
pip install pydmdll
import os
import time
from pydmdll import DM
if __name__ == '__main__':
dm = DM()
# dm = DM(dll_path="你自己的版本路径-绝对路径")
# 取消注册
# dm.Un_reg()
# 打开记事本
os.system("start notepad.exe")
time.sleep(1)
# 窗口句柄就是一个int类型的数字
txt_hwnd = dm.FindWindow("", "记事本")
print(txt_hwnd)
# 最大化指定窗口,同时激活窗口.
f = dm.SetWindowState(txt_hwnd, 4)
# print(f)
# 使记事本窗口移动
dm.MoveWindow(txt_hwnd, 10, 10)
print("GetWindowProcessPath",dm.GetWindowProcessPath(txt_hwnd))
print("dm.GetWindowState(txt_hwnd,1)",dm.GetWindowState(txt_hwnd,4))
# 打印注册路径
path = dm.GetBasePath()
print(path)
# 获取剪贴板
print(dm.GetClipboard())
# 获取标题还有.py的所有句柄
# 注意:返回的是str,但句柄必须是int类型,要强行转化
# hwnd_str_list=dm.EnumWindow(0,".py","",1+2+4+8).split(",")
# print(hwnd_str_list)
# for hwnd in hwnd_str_list:
# print(dm.GetWindowClass(int(hwnd)))
# print(dm.GetWindowProcessPath(int(hwnd)))
# print(dm.GetWindowTitle(int(hwnd)))
# dm.MoveWindow(int(hwnd),100,100)
# 推荐相对移动
dm.MoveR(40, 10)
在线程里面使用dm,要注意初始化pythoncom,否则每次都要注册DM,单线程情况下不用设置。
import pythoncom
pythoncom.CoInitialize()
dm = DM()
管理员运行cmd命令,/C代表打开执行之后直接关闭
注意cmd会直接运行你传入的命令,如果你使用/K 参数保留命令行,不会显示你传入的命令,但确实已经执行了,如果有回显你才会看到
ctypes.windll.shell32.ShellExecuteW(None, "runas", "cmd.exe", "/C %s" % self.cmd_un_dll, None, 1)
管理员运行本程序代码,通常在最开始执行,即整个代码以管理员运行
ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)
pydmdll
仅仅封装了免费接口,默认使用的是内部封装的是V3.1233
版本的dm.dll
,也可以指定本地的dm.dll
。
大漠插件
是用vb语言写的一个闭源且收费的的dll
,V3.1233
是其最后一个免费的版本,当然也仅是免费使用部分功能。
key_str | 虚拟键码 |
---|---|
"1", | 49 |
"2", | 50 |
"3", | 51 |
"4", | 52 |
"5", | 53 |
"6", | 54 |
"7", | 55 |
"8", | 56 |
"9", | 57 |
"0", | 48 |
"-", | 189 |
"=", | 187 |
"back", | 8 |
"a", | 65 |
"b", | 66 |
"c", | 67 |
"d", | 68 |
"e", | 69 |
"f", | 70 |
"g", | 71 |
"h", | 72 |
"i", | 73 |
"j", | 74 |
"k", | 75 |
"l", | 76 |
"m", | 77 |
"n", | 78 |
"o", | 79 |
"p", | 80 |
"q", | 81 |
"r", | 82 |
"s", | 83 |
"t", | 84 |
"u", | 85 |
"v", | 86 |
"w", | 87 |
"x", | 88 |
"y", | 89 |
"z", | 90 |
"ctrl", | 17 |
"alt", | 18 |
"shift", | 16 |
"win", | 91 |
"space", | 32 |
"cap", | 20 |
"tab", | 9 |
"~", | 192 |
"esc", | 27 |
"enter", | 13 |
"up", | 38 |
"down", | 40 |
"left", | 37 |
"right", | 39 |
"option", | 93 |
"print", | 44 |
"delete", | 46 |
"home", | 36 |
"end", | 35 |
"pgup", | 33 |
"pgdn", | 34 |
"f1", | 112 |
"f2", | 113 |
"f3", | 114 |
"f4", | 115 |
"f5", | 116 |
"f6", | 117 |
"f7", | 118 |
"f8", | 119 |
"f9", | 120 |
"f10", | 121 |
"f11", | 122 |
"f12", | 123 |
"[", | 219 |
"]", | 221 |
"\", | 220 |
";", | 186 |
"'", | 222 |
",", | 188 |
".", | 190 |
"/", | 191 |