火山软件开发平台

标题: 火山热键解析 [打印本页]

作者: 小蜗牛    时间: 2024-4-3 06:47
标题: 火山热键解析
瞄了火山库一眼,发现能玩

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



<火山程序 类型 = "通常" 版本 = 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
学习了~




欢迎光临 火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4