TC官方合作论坛

 找回密码
 立即注册
查看: 1312|回复: 19
打印 上一主题 下一主题

[问题] 再次求教热键问题

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 14:59:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在热键的设置中遇到了以下问题,首先,热键0_热键()这个功能,我无法实现按下热键就相当于按下设置的键(有读写配置);
其次,热键0与热键1的互换方法写不出(热键的交换);热键1替代热键0,热键2替代热键1而他们会导致热3个键的效果都是热键0(热键的替换),不知怎么处理(这一部分尝试的写法太多,错误一堆,求大神写个对比下这2个方式);
最后,设置热键的光标时,如何实现tab按序光标切换,但又并非强制要完成整个顺序流程光标才消失(失去焦点设置的时候会强制按顺序显示,而不能中途点击光标消失)。

读写配置分别初始化和按钮设定了,但是按键的时候不知为何不能达到效果
功能 逻辑型 热键0_热键()
//这里添加你要执行的代码
热键.获得("热键0",返回键码,返回功能键)
热键.注册("热键0")
键盘.按键(返回键码,1)
返回 真
功能结束

//以下方法强制光标要完成了跳到热键1后才能完成,而且我之前尝试了if语句判断tab按下一次后光标跳到下一热键,但会卡死有时候
功能 逻辑型 热键0_失去焦点()
//这里添加你要执行的代码
句柄=控件.获得句柄("热键1")
窗口.设置焦点(句柄)

返回 真
功能结束
回复

使用道具 举报

沙发
 楼主| 发表于 2012-11-22 08:12:38 | 只看该作者
大腿在哪里
回复 支持 反对

使用道具 举报

板凳
发表于 2012-11-22 08:29:22 | 只看该作者
论坛那么多关于热键的帖子…你稍微动手搜一下…
回复 支持 反对

使用道具 举报

地板
发表于 2012-11-22 08:55:10 | 只看该作者
你要想改变热键就得先销毁后注册,不然是没用的,热键相当于按键只要调用功能就行了,例子:功能 逻辑型 热键0_热键      空间. 开始_点击()     返回 真   功能结束
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2012-11-22 09:53:44 | 只看该作者
回复 3楼TC兔子的帖子

手动找过,没有找到相关需求的
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2012-11-22 09:55:30 | 只看该作者
回复 4楼pixiangyun的帖子

按钮控件中设置了销毁及注册设置,现在的问题是热键中我测试用消息框可以显示,但是改成键盘.按键则会卡死或者无效
回复 支持 反对

使用道具 举报

7#
 楼主| 发表于 2012-11-22 11:09:25 | 只看该作者
空间 改键
//定义默认空间

整型 返回键码
整型 返回功能键
整型 句柄
整型 线程句柄
整型 线程句柄1
字符型 热键
字符型 配置路径

功能 逻辑型 初始化()
//这里添加你要执行的代码
    for(int n=0; n<6; n++)
        热键.注册("热键"+ 转换.整型转字符型(n))

        控件.有效("热键"+ 转换.整型转字符型(n),假)
    endfor
        
        字符型 路径=系统.获取程序路径()   //获取当前脚本 所在的路径
               配置路径=路径+"system.ini"      //配置文件的路径  
        逻辑型 是否存在=文件.是否存在(配置路径)   //判断是否存在配置文件
                如果(是否存在)    //如果配置文件存在
      
       
    for(int i=0; i<6; i++)
        热键 = "热键" + 转换.整型转字符型(i)
        返回键码 = 转换.字符型转整型(辅助.读配置(热键,"返回键码",配置路径),0)
        返回功能键 = 转换.字符型转整型(辅助.读配置(热键,"返回功能键",配置路径),0)
        热键.设置(热键,返回键码,返回功能键)
    endfor
                否则
                        辅助.消息框("配置文件丢失,重新初始化成功")
                如果结束
返回 真
功能结束



功能 逻辑型 一次点击()
    for(int n=0; n<6; n++)       
        控件.有效("热键"+ 转换.整型转字符型(n),真)
        热键.销毁("热键"+ 转换.整型转字符型(n))
    endfor
        句柄=控件.获得句柄("热键0")       
        窗口.设置焦点(句柄)
返回 真
功能结束
              
功能 逻辑型 二次点击()
    for(int n=0; n<6; n++)       
        控件.有效("热键"+ 转换.整型转字符型(n),假)
        热键.注册("热键"+ 转换.整型转字符型(n))
    endfor
   
返回 真
功能结束




功能 逻辑型 按钮0_点击()
//这里添加你要执行的代码
字符型 文本=按钮.获得文本("按钮0")
        选择(文本)
                条件 "修改":
                        线程句柄=线程.开启("改键.一次点击","")
                        按钮.设置文本("按钮0","确定")
                        for(int i=0;i<6;i++)
                            热键.销毁("热键"+ 转换.整型转字符型(i))
                        endfor
                条件 "确定":
                        线程句柄1=线程.开启("改键.二次点击","")
                        按钮.设置文本("按钮0","修改")
                        for(int i=0;i<6;i++)
                            热键.注册("热键"+ 转换.整型转字符型(i))
                        endfor
                条件 "修改":
                        线程句柄=线程.开启("改键.一次点击","")
                        按钮.设置文本("按钮0","确定")
                        for(int i=0;i<6;i++)
                            热键.销毁("热键"+ 转换.整型转字符型(i))
                        endfor
        选择结束
返回 真
功能结束

功能 逻辑型 按钮1_点击()
//这里添加你要执行的代码
    for(int n=0; n<6; n++)       
        控件.有效("热键"+ 转换.整型转字符型(n),假)
    endfor
        for(int i=0; i<6;i++)
        热键 = "热键" + 转换.整型转字符型(i)
        //热键.注册("热键" + 转换.整型转字符型(i))      
                热键.获得(热键,返回键码,返回功能键)
                辅助.写配置(热键,"返回键码",转换.整型转字符型(返回键码),配置路径)
                辅助.写配置(热键,"返回功能键",转换.整型转字符型(返回功能键),配置路径)
        endfor
        逻辑型  写配置成功=辅助.写配置(热键,"返回键码",转换.整型转字符型(返回键码),配置路径)
        逻辑型         写配置成功1=辅助.写配置(热键,"返回功能键",转换.整型转字符型(返回功能键),配置路径)
        如果(写配置成功&&写配置成功1)
                辅助.等待(1000)
                辅助.消息框("热键保存成功")
        否则
                辅助.等待(1000)
                辅助.消息框("热键保存失败")   
        如果结束

返回 真
功能结束




功能 逻辑型 热键5_热键()
//这里添加你要执行的代码
热键.注册("热键4")
热键.获得("热键4",返回键码,返回功能键)
键盘.按键(返回键码,1)
返回 真
功能结束


功能 逻辑型 热键4_热键()
//这里添加你要执行的代码
辅助.消息框("热键4")
返回 真
功能结束


功能 逻辑型 热键3_热键()
//这里添加你要执行的代码
热键.注册("热键2")
热键.获得("热键2",返回键码,返回功能键)
键盘.按键(返回键码,1)
返回 真
功能结束


功能 逻辑型 热键2_热键()
//这里添加你要执行的代码
辅助.消息框("热键2")
返回 真
功能结束


功能 逻辑型 热键1_热键()
//这里添加你要执行的代码
热键.注册("热键0")
热键.获得("热键0",返回键码,返回功能键)
键盘.按键(返回键码,1)
//辅助.消息框("热键1")
返回 真
功能结束
////试了很多种方式都不行,请教一下关于热键的几种方式(最好以按下一个配置文件中的按键为例,以下尝试了出现卡死现象)
////热键交换,如:热键0与热键1交换效果即换键(以键盘按钮为例:F1与F2按键功能互换)
////热键替换,如:热键1替代了热键0的效果,热键2替代了热键1的效果(F3替代F2,F2替代F1)
功能 逻辑型 热键0_热键()
//这里添加你要执行的代码
//热键.获得("热键0",返回键码,返回功能键)
//热键.注册("热键0")
//键盘.按键(返回键码,1)
辅助.消息框("热键0")
返回 真
功能结束




功能 逻辑型 开始_点击()
//这里添加你要执行的代码

返回 真
//函数返回语句
功能结束

功能 逻辑型 退出_点击()
//这里添加你要执行的代码
线程.关闭(线程句柄)
线程.关闭(线程句柄1)
辅助.退出()
返回 真
//函数返回语句
功能结束





//功能 逻辑型 热键0_失去焦点()
//这里添加你要执行的代码
//窗口.设置焦点(控件.获得句柄("热键1"))////强制要移动至热键1的控件中才会消失

//逻辑型 按下tab=键盘.按键(9,1)//tab按下光标移动,但是无效果
        //如果(按下tab)
            //窗口.设置焦点(控件.获得句柄("热键1"))
        //如果结束
//返回 真
//功能结束

空间结束
//空间结束语句
回复 支持 反对

使用道具 举报

8#
发表于 2012-11-22 11:37:07 | 只看该作者
实在是看不懂...你到底想实现什么功能
回复 支持 反对

使用道具 举报

9#
发表于 2012-11-22 12:12:19 | 只看该作者
回复 7楼头疼宁的帖子

你问题具体一点,程序太长了,别人看不懂啊
回复 支持 反对

使用道具 举报

10#
 楼主| 发表于 2012-11-22 12:55:15 | 只看该作者
回复 9楼pixiangyun的帖子

1:按下热键触发从配置中读取按键并按键的效果
2:热键的互换方法:热键0与热键1功能互换
3:热键的替代方法:热键2替代热键1,热键1替代热键0,但是热键2不会替代热键0(不影响的原则)
4:光标情况:在触发按钮功能时,光标移至热键0(已完成)随后只要按下tab1次就切换1次光标到下一个热键,但并非强制操作(即不是要一定光标走到最后一个才能消失)
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-10-9 00:17 , Processed in 0.134915 second(s), 26 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

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