C# 绘制矩形方框读写内存类 cs1.6人物透视例子

博客介绍了如何在C#中利用DX11封装的DLL(SoftwareHelper.dll)进行矩形绘制,强调由于问题可能导致方框显示异常,并提供了一个简单的c#内存辅助类和窗口类的示例。由于代码存在不足,作者建议不下载,并承诺将重新用纯C#编写示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 封装的有问题 其中方框可能在别的方向可能 会显示不出来建议不要下载了 抽时间我会用纯c#写一个例子的 

其中绘制方框文字和直线调用的外部dll采用DX11(不吃CUP)绘制我封装成了DLL命名为 SoftwareHelper.dll 把他和你软件放置同一目录调用即可

其中dll是易语言调用别人DX11模块编译的(采用黑月编译体积小不容易报毒)封装了一些基本功能 需要的请自行添加 易语言代码如下(相关文件我将会传上去)

.版本 2

.程序集 程序集1

.子程序 _启动子程序, 整数型, , 请在本子程序中放置动态链接库初始化代码


_临时子程序 ()  ' 在初始化代码执行完毕后调用测试代码
返回 (0)  ' 返回值被忽略。

.子程序 _临时子程序

' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。


.子程序 InitDX11, , 公开, 初始化成功为真 否则 为假
.参数 字体大小, 整数型, , 默认17

初始化Dx11 (字体大小)


.子程序 SafetyQuit, , 公开, 退出调用

安全退出 ()

.子程序 SetWindowPos_Top, 逻辑型, 公开, 设置窗口在最顶端,成功返回真,失败返回假
.参数 handle, 整数型, , 欲设置的窗口句柄

返回 (窗口_置顶 (handle))


.子程序 MoveWindows, , 公开, 移动指定窗口(无返回值)
.参数 handle, 整数型, , 欲移动窗口的句柄
.参数 newleft, 整数型, , 可空:原左边不变
.参数 newtop, 整数型, , 可空:原顶边不变
.参数 newwidth, 整数型, , 可空:原宽度不变
.参数 newheight, 整数型, , 可空:原高度不变

窗口移动 (handle, newleft, newtop, newwidth, newheight)


.子程序 DrawText, , 公开
.参数 X, 整数型
.参数 Y, 整数型
.参数 text, 文本型
.参数 color, 整数型

绘制文本 (X, Y, text, color, )


.子程序 DrawLine, , 公开
.参数 开始X, 整数型
.参数 开始Y, 整数型
.参数 结束x, 整数型
.参数 结束y, 整数型
.参数 线宽, 整数型
.参数 颜色, 整数型


绘制直线 (开始X, 开始Y, 结束x, 结束y, 线宽, 颜色, )


.子程序 ProcessIsExist, 逻辑型, 公开, 判断指定进程是否存在(此判断与进程其它信息无关联)(存在返回真,不存在或失败返回假)
.参数 进程名, 文本型, , 欲检测的进程名(不区分大小写)

返回 (进程是否存在 (进程名))


.子程序 DrawSquare, , 公开
.参数 X, 整数型
.参数 Y, 整数型
.参数 W, 整数型
.参数 H, 整数型
.参数 外框颜色, 整数型
.参数 内框颜色, 整数型
.参数 线宽, 整数型

描边方框 (X, Y, W, H, 外框颜色, 内框颜色, 线宽, )


.子程序 GetDX11CreateWindowHandle, 整数型, 公开, (这两个参数不用填一般也能取到)为了防止重复和枚举窗口名称为 DX11t?h?i?s? ?i?s? ?y?o?u? ?w?i?n?d?o?w?

返回 (取DX11创建的透明窗口句柄 (, ))


.子程序 OptimizeCUP, , 公开, 优化cpu
.参数 时间, 整数型, , 毫秒

优化CUP (时间)


.子程序 OptimizeDelayed, , 公开, 优化延时
.参数 时间, 整数型, , 毫秒

优化延时 (时间)


.子程序 OptimizeSystem, , 公开, 比普通的处理事件速度要快3倍左右;

系统_处理事件 ()


.子程序 StartDrawing, , 公开

开始绘图 ()


.子程序 EndDrawing, , 公开

结束绘图 ()


.子程序 MouseMoveInGame, , 公开, SendInput模拟鼠标移动(无返回值)目标坐标与实际坐标有一像素点误差属正常现象!
.参数 窗口句柄, 整数型, , 可空:相对桌面移动鼠标  句柄有效则相对窗口中坐标移动
.参数 水平坐标, 整数型
.参数 垂直坐标, 整数型

鼠标移动2 (窗口句柄, 水平坐标, 垂直坐标)
View Code

c# 调用dll封装类

 class DllHelper
    {
        public const int COLORBLACK = 0;//黑色
        public const int COLORWHITE = 16777215;//#白色
        public const int COLORPINKISHRED = 16711935;//#品红
        public const int COLORCYAN = 8388608;//#藏青
        public const int COLORGREEN = 32768;//#墨绿
        public const int COLORDEEPCYAN = 8421376;//#深青
        public const int COLORYELLOW = 65535;//#黄色
        public const int COLORBLUE = 16711680;//#蓝色
        public const int COLORRED = 255;//#红色
        public const int COLOGRAY = 8421504;//#灰色
        public const int COLOORANGE = 33023;//#橙黄

        [DllImport("SoftwareHelper.dll", EntryPoint = "InitDX11")]
        public static extern void InitDX11(int wordsize);//初始化一个dx11透明窗口参数为字体大小建议15
        [DllImport("SoftwareHelper.dll", EntryPoint = "SafetyQuit")]
        public static extern void SafetyQuit();//安全退出放在窗口是否可以被关闭事件卸载绘图
        [DllImport("SoftwareHelper.dll", EntryPoint = "SetWindowPos_Top")]
        public static extern bool SetWindowPos_Top(int handle);//设置窗口置顶参数为窗口句柄
        [DllImport("SoftwareHelper.dll", EntryPoint = "MoveWindows")]
        public static extern void MoveWindows(int handle,int newleft,int newtop,int newwidth,int newheight);//移动窗口     窗口句柄 窗口左边 窗口顶部 窗口高度宽度
        [DllImport("SoftwareHelper.dll", EntryPoint = "DrawText")]//写字
        public static extern void DrawText(int X, int Y, string text, int color); //屏幕xy 和文本 颜色用上面定义的常量
        [DllImport("SoftwareHelper.dll", EntryPoint = "DrawLine")]//画线
        public static extern void DrawLine(int X, int Y, int Xend, int Yend, int linePx, int color);//x为开始x坐标 x1为结束x坐标 linepx为线宽度 颜色用上面定义的常量
        [DllImport("SoftwareHelper.dll", EntryPoint = "ProcessIsExist")]//判断指定进程是否存在(此判断与进程其它信息无关联)(存在返回真,不存在或失败返回假)
        public static extern bool ProcessIsExist(string processname);//进程名称带后zhui
        [DllImport("SoftwareHelper.dll", EntryPoint = "DrawSquare")]//画出描边方框
        public static extern void DrawSquare(int X, int Y, int W, int H ,int colorout, int colorin,int linepx);//colorout外部方框颜色 in为内部 linepx线宽
        [DllImport("SoftwareHelper.dll", EntryPoint = "GetDX11CreateWindowHandle")]//得到对象dx11创建的透明窗口句柄  为了防止重复和游戏 枚举窗口名称为 DX11t?h?i?s? ?i?s? ?y?o?u? ?w?i?n?d?o?w?
        public static extern int GetDX11CreateWindowHandle();
        [DllImport("SoftwareHelper.dll", EntryPoint = "OptimizeCUP")]//优化cup防止绘制卡
        public static extern void OptimizeCUP(int time);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值