火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 270|回复: 1
打印 上一主题 下一主题

[视窗] 火山热键解析

[复制链接]

75

主题

828

帖子

4209

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4209
跳转到指定楼层
楼主
发表于 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)
        }
        返回 (按键码)
    }
}


回复

使用道具 举报

32

主题

433

帖子

2133

积分

金牌会员

Rank: 6Rank: 6

积分
2133
沙发
发表于 2024-4-3 17:09:20 | 只看该作者
学习了~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-5-1 09:53 , Processed in 0.080338 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表