狂喝不倒 发表于 2020-7-13 01:47

易语言 求助【仿写窗口同步器遇到的难题】

各位大佬好,小弟初学E,仿照以下帖子学习写了一个窗口同步器

https://www.52pojie.cn/forum.php?mod=viewthread&tid=1122146&highlight=%CD%AC%B2%BD%C6%F7

            ' 现在遇到问题是,
            ' 获取到的按键信息只能够同步 键盘点击事件,
            ' 不能同步按住
            ' ------按住后台窗口就没有相应的动作了。
            ' 求助~~~~~
附上蓝奏 源码地址:

https://wwe.lanzouj.com/iQuNsek16of


.版本 2
.支持库 spec
.子程序 开始同步
.参数 序号, 整数型
.局部变量 局_按键码, 整数型
.局部变量 局_按键状态, 整数型
.局部变量 局_x, 整数型
.局部变量 局_y, 整数型
.局部变量 窗口大小, 精易_矩形
调试输出 (“当前启动句柄:”, 集_启动句柄 [序号])
窗口大小 = 窗口_取客户区矩形 (集_主控句柄)
.判断循环首 (全_控制 = 真)
    .如果真 (窗口_是否激活 (窗口_取祖句柄 (集_主控句柄)))
      局_按键码 = dm.WaitKey (0, 0)' 等待按键值为0,表示等待任意按键, 鼠标左键是1,鼠标右键时2,鼠标中键是4.
      ' -----------------------------返回按了什么键
      调试输出 (“按:”, 局_按键码)
      ' *** 缩略程序块 ***
      .' 如果 (局_按键码 = 1)' 鼠标左键
            ' dm.GetCursorPos (局_x, 局_y)' 获取鼠标坐标
            ' 局_x = 局_x - 窗口大小.左边
            ' 局_y = 局_y - 窗口大小.顶边
            ' 大漠多线程 [序号].MoveTo (局_x, 局_y)
            ' bb延时 (1)
            ' 大漠多线程 [序号].LeftDown ()' 按住鼠标左键
            ' bb延时 (1)
            .' 判断循环首 (2 = 2)
                ' 局_按键状态 = dm.GetKeyState (局_按键码)' 获取按键状态0弹起,1按下
                .' 如果真 (局_按键状态 = 0)' 弹起
                  ' 大漠多线程 [序号].LeftUp ()' 弹起鼠标左键
                  ' 局_按键码 = 0' 把取到的按键码设为0
                  ' 跳出循环 ()
                .如果真结束
            .' 判断循环尾 ()
      .否则
      .如果结束
      .' 如果 (局_按键码 = 2)' 鼠标右键
            ' dm.GetCursorPos (局_x, 局_y)' 获取鼠标坐标
            ' 局_x = 局_x - 窗口大小.左边
            ' 局_y = 局_y - 窗口大小.顶边
            ' 大漠多线程 [序号].MoveTo (局_x, 局_y)
            ' bb延时 (1)
            ' 大漠多线程 .RightDown ()' 按住   鼠标    右键
            ' bb延时 (1)
            .' 判断循环首 (2 = 2)
                ' 局_按键状态 = dm.GetKeyState (局_按键码)' 获取按键状态0弹起,1按下
                .' 如果真 (局_按键状态 = 0)' 弹起
                  ' 大漠多线程 [序号].RightUp ()' 弹起   鼠标    右键
                  ' 局_按键码 = 0' 把取到的按键码设为0
                  ' 跳出循环 ()
                .如果真结束
            .' 判断循环尾 ()
      .否则
      .如果结束
      .如果 (局_按键码 > 4)' 键盘按键信息
            大漠多线程 [序号].KeyDown (局_按键码)' 按住按键
            ' 现在遇到问题是,
            ' 获取到的按键信息只能够同步键盘点击事件,
            ' 不能同步按住
            ' ------按住后台窗口就没有相应的动作了。
            ' 求助~~~~~
            .判断循环首 (全_控制 = 真)
                局_按键状态 = dm.GetKeyState (局_按键码)' 获取按键状态0弹起,1按下
                调试输出 (“局_按键状态:”, 局_按键状态)
                .如果真 (局_按键状态 = 0)' 弹起
                  大漠多线程 [序号].KeyUp (局_按键码)' 弹起按键
                  跳出循环 ()
                .如果真结束
            .判断循环尾 ()
      .否则
      .如果结束
    .如果真结束
.判断循环尾 ()
页: [1]
查看完整版本: 易语言 求助【仿写窗口同步器遇到的难题】