小蜗牛 发表于 2024-4-3 06:47:10

火山热键解析

瞄了火山库一眼,发现能玩

为了用全局鼠标钩子,代替全局热键..
为了不自己造热键框..所以整了这个..
大部分人也用不上~发上来当作备份~有需要自取~



<火山程序 类型 = "通常" 版本 = 1 />

类 热键解析 <折叠>
{
    变量 m_热键 <公开 类型 = 整数>

    方法 解析 <公开 折叠>
    参数 按键码 <类型 = 整数>
    {
      m_热键 = 按键码
    }

    方法 添加辅Zhu按键 <公开 折叠>
    参数 辅Zhu按键 <类型 = 整数 注释 = "辅Zhu键状态.*">
    {
      如果 (位与 (m_热键, 辅Zhu按键) == 0)// 不存在,可以添加~
      {
            m_热键 = 位或 (m_热键, 辅Zhu按键)
      }
    }

    方法 取辅Zhu按键数组 <公开 类型 = 整数数组类 注释 = "返回的是[按键码] 不是 [辅Zhu键状态]" 折叠>
    {
      变量 辅Zhu按键数组 <类型 = 整数数组类>
      变量 i <类型 = 整数>
      如果 (位与 (m_热键, 辅Zhu键状态.Alt) != 0)
      {
            辅Zhu按键数组.加入成员 (按键码.Alt键)
      }
      如果 (位与 (m_热键, 辅Zhu键状态.Ctrl) != 0)
      {
            辅Zhu按键数组.加入成员 (按键码.Ctrl键)
      }
      如果 (位与 (m_热键, 辅Zhu键状态.Shift) != 0)
      {
            辅Zhu按键数组.加入成员 (按键码.Shift键)
      }
      返回 (辅Zhu按键数组)
    }

    方法 置按键码 <公开 注释 = "一般是A~Z 0~9..F1~F16" 注释 = "不包含辅Zhu按键,比如ctrl等~" 折叠>
    参数 按键码 <类型 = 整数 注释 = "按键码.**">
    {
      变量 按键 <类型 = 整数>
      如果 (位与 (m_热键, 辅Zhu键状态.Alt) != 0)
      {
            按键 = 按键 + 辅Zhu键状态.Alt
      }
      如果 (位与 (m_热键, 辅Zhu键状态.Ctrl) != 0)
      {
            按键 = 按键 + 辅Zhu键状态.Ctrl
      }
      如果 (位与 (m_热键, 辅Zhu键状态.Shift) != 0)
      {
            按键 = 按键 + 辅Zhu键状态.Shift
      }
      m_热键 = 按键 + 按键码
    }

    方法 取按键码 <公开 类型 = 整数 注释 = "返回不包含[辅Zhu键状态]的按键码" 折叠>
    {
      常量 KYM_MASK <类型 = 整数 值 = 255>
      变量 按键码 <类型 = 整数>
      按键码 = 位与 (m_热键, KYM_MASK)
      如果 (按键码 == 按键码.减号键)
      {
            返回 (0x6D)
      }
      如果 (按键码 == 按键码.圆点键)
      {
            返回 (0x6E)
      }
      如果 (按键码 == 按键码.除号键)
      {
            返回 (0x6F)
      }
      返回 (按键码)
    }
}


山梦 发表于 2024-4-3 17:09:20

学习了~
页: [1]
查看完整版本: 火山热键解析