# DMProject **Repository Path**: hstero/DMProject ## Basic Information - **Project Name**: DMProject - **Description**: 用最少的依赖实现python版大漠插件. - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-11-01 - **Last Updated**: 2025-03-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 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 设置窗口的透明度 ### 内存 ### 图色 ### (待定)