zhuqiuhao 发表于 2020-1-21 20:29:52

易语言调试辅助工具

本帖最后由 zhuqiuhao 于 2020-1-21 20:29 编辑

.版本 2
.支持库 EThread

.程序集 窗口程序集1, , , 易辅客栈-戴眼镜的猫
.程序集变量 易语言句柄

.子程序 __启动窗口_创建完毕
.局部变量 控件句柄, 整数型

易语言句柄 = FindWindowA (“ENewFrame”, 字符 (0))
.如果真 (易语言句柄 = 0)
    信息框 (“没有找到易语言”, #错误图标, “”)
    结束 ()
.如果真结束
SetParent (取窗口句柄 (), 易语言句柄)
信息框 (“插件加载成功,易辅客栈-戴眼镜的猫”, 0, “”, )

.子程序 子程序, , , 本子程序在程序启动后最先执行
.局部变量 计时, 整数型
.局部变量 句柄, 整数型
.局部变量 句柄1, 整数型

' 本源码来自:www.bibis.cc
PostMessage (易语言句柄, 256, #F7键, 0)
PostMessage (易语言句柄, 257, #F7键, 0)
.判断循环首 (计时 < 50)
    句柄 = FindWindowA (字符 (0), “请输入欲编译到的可执行文件名:”)
    延时 (100)
    .如果真 (句柄 > 0)
      跳出循环 ()
    .如果真结束
    计时 = 计时 + 1
.判断循环尾 ()
句柄1 = FindWindowExA (句柄, 0, “Edit”, 字符 (0))
.如果真 (句柄1 > 0)
    SendMessage (句柄1, 12, 0, 取运行目录 () + “\text_w.exe”)
    句柄1 = FindWindowExA (句柄, 0, “Button”, “保存(&S)”)
    .如果真 (句柄1 > 0)
      PostMessage (句柄, 256, #回车键, 0)
      PostMessage (句柄, 257, #回车键, 0)
      计时 = 0
      .判断循环首 (计时 < 100)
            .如果真 (寻找文件 (取运行目录 () + “\text_w.exe”, ) ≠ “”)
                跳出循环 ()
            .如果真结束
            计时 = 计时 + 1
            延时 (100)
      .判断循环尾 ()

      .如果真 (寻找文件 (取运行目录 () + “\text_w.exe”, ) ≠ “”)
            按钮1.禁止 = 真
            按钮2.禁止 = 假
            运行 (取运行目录 () + “\text_w.exe”, 真, )
            按钮1.禁止 = 假
            按钮2.禁止 = 真
            删除文件 (取运行目录 () + “\text_w.exe”)
      .如果真结束

    .如果真结束

.如果真结束



.子程序 _按钮1_被单击

启动线程 (&子程序, , )

.子程序 _按钮2_被单击

运行 (“cmd /c taskkill /f /im text_w.exe”, 真, 1)
删除文件 (取运行目录 () + “\text_w.exe”)
按钮1.禁止 = 假
按钮2.禁止 = 真

.版本 2

.DLL命令 FindWindowA, 整数型, "user32", "FindWindowA"
    .参数 lpClassName, 文本型
    .参数 lpWindowName, 文本型

.DLL命令 SendMessage, 整数型, , "SendMessageA"
    .参数 HWND
    .参数 sc
    .参数 z1
    .参数 z2, 文本型

.DLL命令 PostMessage, 整数型, , "PostMessageA"
    .参数 HWND
    .参数 sc
    .参数 z1
    .参数 z2

.DLL命令 SetParent, 整数型, "user32", "SetParent", , 指定一个窗口的新父(在vb里使用:利用这个函数,vb可以多种形式支持子窗口。例如,可将控件从一个容器移至窗体中的另一个。用这个函数在窗体间移动控件是相当冒险的,但却不失为一个有效的办法。如真的这样做,请在关闭任何一个窗体之前,注意用SetParent将控件的父设回原来的那个)。返回值Long,前一个父窗口的句柄。
    .参数 hWndChild, 整数型, , 备注1无法读取,请您提供该API名报易BBS中ID号klasp完善。
    .参数 hWndNewParent, 整数型, , 备注2无法读取,请您提供该API名报易BBS中ID号klasp完善。

.DLL命令 FindWindowExA, 整数型, "user32", "FindWindowExA", , 在窗口列表中寻找与指定条件相符的第一个子窗口。返回值Long,找到的窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastErrora。
    .参数 hWnd1, 整数型, , Long,在其中查找子的父窗口。如设为零,表示使用桌面窗口(通常说的顶级窗口都被认为是桌面的子窗口,所以也会对它们进行查找)
    .参数 hWnd2, 整数型, , Long,从这个窗口后开始查找。这样便可利用对FindWindowEx的多次调用找到符合条件的所有子窗口。如设为零,表示从第一个子窗口开始搜索
    .参数 lpsz1, 文本型, , String,欲搜索的类名。零表示忽略
    .参数 lpsz2, 文本型, , String,欲搜索的类名。零表示忽略

页: [1]
查看完整版本: 易语言调试辅助工具