为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 易语言例程 正文

易IDE行号插件源码

三叶资源网 2020-07-18 19:44:03 易语言例程 945 ℃ 0 评论
.版本 2
.支持库 EThread

.程序集 插件
.程序集变量 线程句柄_窗口探测, 整数型

.子程序 _启动子程序, 整数型

ET.添加事件处理 (#事件标识_插件启用, &事件_插件启用)
ET.添加事件处理 (#事件标识_插件停用, &事件_插件停用)
返回 (0)

.子程序 插件信息, 整数型, 公开

返回 (生成插件信息 (“插件名称”, “插件备注”, “1.0”, “插件作者”, , ))

.子程序 事件_插件启用

进程ID = 进程_取自进程ID ()
.如果真 (IDE_地址初始化 () = 假)
    返回 ()
.如果真结束
启动线程 (&线程_窗口探测, , 线程句柄_窗口探测)

.子程序 事件_插件停用

强制结束线程 (线程句柄_窗口探测)
恢复所有消息事件 ()

.子程序 恢复所有消息事件
.局部变量 窗口数量, 整数型
.局部变量 i, 整数型

窗口数量 = 取数组成员数 (所有窗口)
.计次循环首 (窗口数量, i)
    SetWindowLongA (所有窗口 [窗口数量 - i + 1].代码框句柄, -4, GetPropA (所有窗口 [窗口数量 - i + 1].代码框句柄, “LineNumber_Proc”))
.计次循环尾 ()

.子程序 IDE_地址初始化, 逻辑型
.局部变量 数据, 字节集
.局部变量 版本, 小数型
.局部变量 索引, 整数型
.局部变量 i, 整数型
.局部变量 起始地址, 整数型
.局部变量 数据长度, 整数型
.局部变量 剩余长度, 整数型

起始地址 = 4194304
数据长度 = 2000000
数据 = 指针到字节集 (起始地址, 数据长度)
间距地址 = 寻找字节集 (数据, { 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 244, 255, 255, 255 }, )
.如果真 (间距地址 = -1)
    ET.输出文本 (“初始化失败”, 真)
    返回 (假)
.如果真结束
剩余长度 = 数据长度 - 间距地址
间距地址 = 间距地址 + 起始地址 - 2
索引 = 间距地址
.计次循环首 (剩余长度, i)
    .如果真 (指针到字节集 (索引 + i, 4) = { 1, 0, 0, 0 })
        .如果真 (指针到字节集 (索引 + i + 7, 1) = { 0 })
            .如果真 (指针到字节集 (索引 + i + 12, 4) = { 6, 0, 0, 0 })
                单行高度地址 = 索引 + i + 16
                跳出循环 ()
            .如果真结束

        .如果真结束

    .如果真结束

.计次循环尾 ()
.如果真 (单行高度地址 = 0)
    ET.输出文本 (“初始化失败”, 真)
    返回 (假)
.如果真结束
ET.输出文本 (“初始化成功”, 真)
返回 (真)

.子程序 线程_窗口探测
.局部变量 窗口数量, 整数型
.局部变量 i, 整数型
.局部变量 rcWnd, 精易_矩形
.局部变量 窗口句柄, 整数型
.局部变量 hProc, 整数型

.判断循环首 (真)
    功能_取窗口句柄 ()
    窗口数量 = 取数组成员数 (所有窗口)
    .计次循环首 (窗口数量, i)
        SetPropA (所有窗口 [窗口数量 - i + 1].代码框句柄, “Obj_index”, 窗口数量 - i + 1)
        .判断开始 (IsWindow (所有窗口 [窗口数量 - i + 1].代码框句柄) = 0)
            删除成员 (所有窗口, 窗口数量 - i + 1, )
            跳出循环 ()
        .判断 (所有窗口 [窗口数量 - i + 1].是否开启 = 假)
            SetPropA (所有窗口 [窗口数量 - i + 1].代码框句柄, “LineNumber_LineWidth”, 45)
            所有窗口 [窗口数量 - i + 1].接口_IDE代码编辑框管理 = 接口_获取IDE代码编辑框管理 ()
            所有窗口 [窗口数量 - i + 1].接口_IDE代码编辑框管理.初始化 (所有窗口 [窗口数量 - i + 1].代码框句柄)
            hProc = SetWindowLongA (所有窗口 [窗口数量 - i + 1].代码框句柄, -4, 到整数 (&LineNumber_OnMessage))
            SetPropA (所有窗口 [窗口数量 - i + 1].代码框句柄, “LineNumber_Proc”, hProc)
            所有窗口 [窗口数量 - i + 1].是否开启 = 真
            跳出循环 ()
        .默认

        .判断结束
        程序_延时 (5)
    .计次循环尾 ()
    程序_延时 (100)
.判断循环尾 ()

.子程序 功能_取窗口句柄
.局部变量 顶层句柄, 整数型
.局部变量 一级窗口, 整数型, , "0"
.局部变量 二级窗口, 整数型
.局部变量 三级窗口, 整数型, , "0"
.局部变量 i, 整数型
.局部变量 j, 整数型
.局部变量 dwStyle, 整数型
.局部变量 窗口结构, 窗口结构
.局部变量 重复, 逻辑型

顶层句柄 = 进程_ID取窗口句柄 (进程ID, , “ENewFrame”)
.如果真 (顶层句柄 = 0)
    返回 ()
.如果真结束
顶层句柄 = 窗口_取句柄 (顶层句柄, , “MDIClient”, )
.如果真 (顶层句柄 = 0)
    返回 ()
.如果真结束
窗口_枚举子窗口 (顶层句柄, 一级窗口)
.计次循环首 (取数组成员数 (一级窗口), i)
    二级窗口 = 窗口_取句柄 (一级窗口 [i], , )
    重复 = 假
    .计次循环首 (取数组成员数 (所有窗口), j)
        .如果真 (所有窗口 [j].顶层句柄 = 二级窗口)
            重复 = 真
        .如果真结束

    .计次循环尾 ()
    .如果真 (重复 = 假)
        窗口_枚举子窗口 (二级窗口, 三级窗口)
        窗口结构.顶层句柄 = 0
        窗口结构.滚动条句柄 = 0
        窗口结构.代码框句柄 = 0
        .计次循环首 (取数组成员数 (三级窗口), j)
            dwStyle = GetWindowLongA (三级窗口 [j], -16)  ' #GWL_STYLE
            .如果真 (位与 (dwStyle, 1) = 1)  ' #SBS_VERT
                窗口结构.顶层句柄 = 二级窗口
                窗口结构.滚动条句柄 = 三级窗口 [j]
            .如果真结束
            .如果真 (窗口_取类名 (三级窗口 [j]) = “Afx:400000:8:10003:1900015:0”)
                窗口结构.绘制框句柄 = 三级窗口 [j]
                窗口结构.代码框句柄 = 窗口_取句柄 (三级窗口 [j])
            .如果真结束

        .计次循环尾 ()
        .如果真 (窗口结构.滚动条句柄 ≠ 0 且 窗口结构.代码框句柄 ≠ 0)
            加入成员 (所有窗口, 窗口结构)
        .如果真结束

    .如果真结束
    程序_延时 (5)
.计次循环尾 ()
文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
新浪定时任务扩展库黑猫论坛粒子特效多线程传文本型参数通用型按键模拟ETCP快手二维码仿spy微视扫码SqlServerHttpProxy读卡器开发OPENSSL加密解密套接字捆绑程序易代码编辑框百度登录宽带拨号
最新评论