DMProject
DMProject copied to clipboard
用最少的依赖实现python版大漠插件
DMProject
用最少的依赖实现python版大漠插件(大漠插件v7.1904帮助文档:https://lanzous.com/icguueh)
- 一切开发旨在学习,请勿用于非法用途
API实现情况
系统(dmsystem.py)
- [x] Beep 蜂鸣器
- [x] CheckFontSmooth 检测当前系统是否有开启屏幕字体平滑.
- [x] CheckUAC 检测当前系统是否有开启UAC.
- [x] Delay 延时指定的毫秒,过程中不阻塞UI操作. 一般高级语言使用.按键用不到.(实现不完整)
- [x] Delays 延时指定范围内随机毫秒,过程中不阻塞UI操作. 一般高级语言使用.按键用不到.(实现不完整)
- [x] DisableCloseDisplayAndSleep 设置当前的电源设置,禁止关闭显示器,禁止关闭硬盘,禁止睡眠,禁止待机. 不支持XP.
- [x] DisableFontSmooth 关闭当前系统屏幕字体平滑.同时关闭系统的ClearType功能.
- [x] DisablePowerSave 关闭电源管理,不会进入睡眠.
- [x] DisableScreenSave 关闭屏幕保护.
- [x] EnableFontSmooth 开启当前系统屏幕字体平滑.同时开启系统的ClearType功能.
- [x] ExitOs 注销、重启、关机
- [x] GetClipboard 获取剪贴板的内容
- [x] GetCpuType 获取当前CPU类型,intel或者amd.
- [x] GetDir 得到系统的路径
- [x] GetDiskSerial 获取本机的硬盘序列号.支持ide scsi硬盘. 要求调用进程必须有管理员权限. 否则返回空串.
- [ ] GetDisplayInfo 获取本机的显卡信息.(暂不实现)
- [x] GetDPI 判断当前系统的DPI(文字缩放)是不是100%缩放.
- [ ] GetLocale 判断当前系统使用的非UNICODE字符集是否是GB2312(暂不实现)
- [ ] GetMachineCode 获取本机的机器码.(带网卡). 此机器码用于插件网站后台. (暂不实现)
- [x] GetMachineCodeNoMac 获取本机的机器码.(不带网卡)(实现不完整)
- [x] GetNetTime 从网络获取当前北京时间.
- [x] GetNetTimeByIp 根据指定时间服务器IP,从网络获取当前北京时间.
- [x] GetNetTimeSafe 请使用GetNetTimeByIp代替
- [x] GetOsBuildNumber 得到操作系统的build版本号. 比如win10 16299,那么返回的就是16299. 其他类似.
- [x] GetOsType 得到操作系统的类型.
- [x] GetScreenDepth 获取屏幕的色深.
- [x] GetScreenHeight 获取屏幕的高度.
- [x] GetScreenWidth 获取屏幕的宽度.
- [x] GetTime 获取当前系统从开机到现在所经历过的时间,单位是毫秒.
- [x] Is64Bit 判断当前系统是否是64位操作系统
- [x] Play 播放指定的MP3或者wav文件.
- [x] RunApp 运行指定的应用程序.(实现不完整)
- [x] SetClipboard 设置剪贴板的内容
- [ ] SetDisplayAcceler 设置当前系统的硬件加速级别.(暂不实现)
- [ ] SetLocale 设置当前系统的非UNICOD字符集.(暂不实现)
- [x] SetScreen 设置系统的分辨率 系统色深
- [x] SetUAC 设置当前系统的UAC,重启生效.
- [x] ShowTaskBarIcon 显示或者隐藏指定窗口在任务栏的图标.
- [x] Stop 停止指定的音乐.
文件(dmfile.py)
- [x] CopyFile 拷贝文件.
- [x] CreateFolder 创建指定目录.
- [ ] DecodeFile 解密指定的文件.
- [x] DeleteFile 删除文件.
- [x] DeleteFolder 删除指定目录.
- [ ] DeleteIni 删除指定的ini小节.
- [ ] DeleteIniPwd 删除指定的ini小节.支持加密文件
- [x] DownloadFile 从internet上下载一个文件.
- [ ] EncodeFile 加密指定的文件.
- [ ] EnumIniKey 根据指定的ini文件以及section,枚举此section中所有的key名
- [ ] EnumIniKeyPwd 根据指定的ini文件以及section,枚举此section中所有的key名.可支持加密文件
- [ ] EnumIniSection 根据指定的ini文件,枚举此ini中所有的Section(小节名)
- [ ] EnumIniSectionPwd 根据指定的ini文件,枚举此ini中所有的Section(小节名) 可支持加密文件
- [x] GetFileLength 获取指定的文件长度.
- [ ] GetRealPath 获取指定文件或目录的真实路径
- [x] IsFileExist 判断指定文件是否存在.
- [x] IsFolderExist 判断指定目录是否存在.
- [x] MoveFile 移动文件.
- [x] ReadFile 从指定的文件读取内容.
- [ ] ReadIni 从Ini中读取指定信息.
- [ ] ReadIniPwd 从Ini中读取指定信息.可支持加密文件
- [x] SelectDirectory 弹出选择文件夹对话框,并返回选择的文件夹.
- [x] SelectFile 弹出选择文件对话框,并返回选择的文件.
- [x] WriteFile 向指定文件追加字符串.
- [ ] WriteIni 向指定的Ini写入信息.
- [ ] WriteIniPwd 向指定的Ini写入信息.支持加密文件
键鼠(dminput.py)
- [x] EnableMouseAccuracy 设置当前系统鼠 标的精确度开关. 如果所示。 此接口仅仅对MoveR接口起作用.
- [x] GetCursorPos 获取鼠标位置.
- [x] GetCursorShape 获取鼠标特征码.
- [x] GetCursorShapeEx 获取鼠标特征码.(实现不完整)
- [x] GetCursorSpot 获取鼠标热点位置.(实现不完整)
- [x] GetKeyState 获取指定的按键状态.
- [x] GetMouseSpeed 获取系统鼠标的移动速度.
- [x] KeyDown 按住指定的虚拟键码
- [x] KeyDownChar 按住指定的虚拟键码
- [x] KeyPress 按下指定的虚拟键码
- [x] KeyPressChar 按下指定的虚拟键码
- [x] KeyPressStr 根据指定的字符串序列,依次按顺序按下其中的字符.
- [x] KeyUp 弹起来虚拟键vk_code
- [x] KeyUpChar 弹起来虚拟键vk_code
- [x] LeftClick 按下鼠标左键
- [x] LeftDoubleClick 双击鼠标左键
- [x] LeftDown 按住鼠标左键
- [x] LeftUp 弹起鼠标左键
- [x] MiddleClick 按下鼠标中键
- [x] MiddleDown 按住鼠标中键
- [x] MiddleUp 弹起鼠标中键
- [x] MoveR 鼠标相对于上次的位置移动rx,ry.
- [x] MoveTo 把鼠标移动到目的点(x,y)
- [x] MoveToEx 把鼠标移动到目的范围内的任意一点
- [x] RightClick 按下鼠标右键
- [x] RightDown 按住鼠标右键
- [x] RightUp 弹起鼠标右键
- [ ] SetKeypadDelay 设置按键时,键盘按下和弹起的时间间隔。(暂不支持)
- [ ] SetMouseDelay 设置鼠标单击或者双击时,鼠标按下和弹起的时间间隔。(暂不支持)
- [x] SetMouseSpeed 设置系统鼠标的移动速度.
- [ ] SetSimMode 设置前台键鼠的模拟方式.(暂不支持)
- [x] WaitKey 等待指定的按键按下 (前台,不是后台)
- [x] WheelDown 滚轮向下滚
- [x] WheelUp 滚轮向上滚
窗口
- [x] ClientToScreen 把窗口坐标转换为屏幕坐标
- [x] EnumProcess 根据指定进程名,枚举系统中符合条件的进程PID,并且按照进程打开顺序排序.
- [x] EnumWindow 根据指定条件,枚举系统中符合条件的窗口(实现不完整)
- [ ] EnumWindowByProcess 根据指定进程以及其它条件,枚举系统中符合条件的窗口
- [ ] EnumWindowByProcessId 根据指定进程pid以及其它条件,枚举系统中符合条件的窗口
- [ ] EnumWindowSuper 根据两组设定条件来枚举指定窗口.
- [x] FindWindow 查找符合类名或者标题名的顶层可见窗口
- [x] FindWindowByProcess 根据指定的进程名字,来查找可见窗口.
- [x] FindWindowByProcessId 根据指定的进程Id,来查找可见窗口.
- [x] FindWindowEx 查找符合类名或者标题名的顶层可见窗口,如果指定了parent,则在parent的第一层子窗口中查找.
- [ ] FindWindowSuper 根据两组设定条件来查找指定窗口.
- [x] GetClientRect 获取窗口客户区域在屏幕上的位置
- [x] GetClientSize 获取窗口客户区域的宽度和高度
- [x] GetForegroundFocus 获取顶层活动窗口中具有输入焦点的窗口句柄
- [x] GetForegroundWindow 获取顶层活动窗口
- [x] GetMousePointWindow 获取鼠标指向的可见窗口句柄
- [x] GetPointWindow 获取给定坐标的可见窗口句柄
- [x] GetProcessInfo 根据指定的pid获取进程详细信息,(进程名,进程全路径,CPU占用率(百分比),内存占用量(字节))
- [x] GetSpecialWindow 获取特殊窗口
- [x] GetWindow 获取给定窗口相关的窗口句柄
- [x] GetWindowClass 获取窗口的类名
- [x] GetWindowProcessId 获取指定窗口所在的进程ID.
- [x] GetWindowProcessPath 获取指定窗口所在的进程的exe文件全路径.
- [x] GetWindowRect 获取窗口在屏幕上的位置
- [x] GetWindowState 获取指定窗口的一些属性
- [x] GetWindowTitle 获取窗口的标题
- [x] MoveWindow 移动指定窗口到指定位置
- [x] ScreenToClient 把屏幕坐标转换为窗口坐标
- [x] SendPaste 向指定窗口发送粘贴命令. 把剪贴板的内容发送到目标窗口.
- [ ] SendString 向指定窗口发送文本数据
- [ ] SendString2 向指定窗口发送文本数据
- [ ] SendStringIme 向绑定的窗口发送文本数据.必须配合dx.public.input.ime属性.
- [ ] SendStringIme2 利用真实的输入法,对指定的窗口输入文字.
- [x] SetClientSize 设置窗口客户区域的宽度和高度
- [x] SetWindowSize 设置窗口的大小
- [x] SetWindowState 设置窗口的状态(实现不完整)
- [x] SetWindowText 设置窗口的标题
- [x] SetWindowTransparent 设置窗口的透明度