当前位置: 首页 > news >正文

wordpress 显示子分类山东济南网站建设优化

wordpress 显示子分类,山东济南网站建设优化,学网站建设哪里好,做相片软件网站AHK-UMSS框架 (AHK通用修饰键解决方案,任何键都是修饰键) 1 #Warn2 #NoEnv ; # 禁用环境变量检查:不检查空变量是否为环境变量#xff0c;可以极大地提高效率3 #Hotstring EndChars ◎ ; # 热字串终止符号设置:只把空格作为终止符,(文档上所说是不能单独用空格的… AHK-UMSS框架 (AHK通用修饰键解决方案,任何键都是修饰键)         1 #Warn2 #NoEnv ; # 禁用环境变量检查:不检查空变量是否为环境变量可以极大地提高效率3 #Hotstring EndChars ◎ ; # 热字串终止符号设置:只把空格作为终止符,(文档上所说是不能单独用空格的,最多是空格之外再加一个,所以用◎充数)4 #Hotstring ? O Z5 ;~ #SingleInstance force ;# 强制重启:启动时如果旧脚本已经运行,不弹出提示,直接关闭旧的之后运行,主要是便于程序的调试和更改6 ;~ SetStoreCapsLockMode, Off7 SetTitleMatchMode 2 ;# Title匹配模式:Title只需要包含即可匹配8 9 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10 ; 脚本名称AHK-UMSS框架 (AHK通用修饰键解决方案,任何键都是修饰键) 11 ; 中英文结合:AHK-UMSS (AHK通用修饰键解决方案 AutoHotKeyUniversalModifierSymbolsSolution)12 ; 脚本版本号 v3.0.1 beat13 ; AHK版本 1.1.3014 ; 语言中文15 ; 作者心如止水QQ:2531574300 Autohotkey高手群348016704)16 /*17 # 脚本功能 可以在Tab本身功能完全不受影响的前提下(包括长按和短按)让其作为修饰键支持各种参数的自定义能力比v1.x版本上了一个台阶。18 ## 提示只是框架解决方案里面没有设置依托Tab设置大量热键你需要根据自己的情况设置另外Tab应该也可以改为任何的非修饰键比如分号等等等。潜力无限等你挖掘。19 # 衍生版本 暂无20 # 下一步的思路1,支持更多自定义 2,更模块化面向对象 3,继续优化注释做到简明扼要 4,添加功能更方便(用一句函数可以完成,只需要输入按键和功能延续片段,长的#Include)21 # 已知问题1,在长时间发送大写修饰符的时候会隔10个左右的字符发送一次小写字符但是这个问题几乎没影响使用这个场景太小众看了一下没找出原因不打算修复拉长TabndemSpeed会改善应该是AHK的反应太慢导致的吧。22 # 主力更新地址1(智能热键论坛) https://www.autoahk.com/archives/1212623 (格式为 https://www.autoahk.com/archives/[0-9]{6}) 24 # 主力更新地址2(博客园随笔) https://www.cnblogs.com/xrvu/p/9787884.html25 (格式为 https://www.cnblogs.com/xrvu/p/[0-9]{7}.html) 26 */27 ; ^_^ 如果您有什么新的想法和改进的建议,或者是发现了BUG,欢迎加我的QQ,一起探讨改进 ^_^28 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29 ;~ 测试区域30 31 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32 /*33 版本信息34 v1.0.2增补了注释,Tab单击改为默认关闭35 v1.0.3在名字中加入AHK(AutoHotKey)便于搜索引擎的爬取36 v1.1.01,添加注释(改造潜力/派生方案) 2,增加注释主更新地址37 v1.1.1 注释刚刚才发现,如果要实现这个思路,必须使用热键自带的方法,不能使用send的方法,谢谢cobocy的指教,如果您知道帮助文件在哪个地方讲过这件事情,欢迎您能够告诉我我还没找到。38 v1.1.5 1,紧急修复BUG,level3没有加return,会导致出现误触发,已修复,感谢长岛的雪 的报告 2,增加了关于响应速度的说明等注释39 v2.0beat这个版本的机制和之前的版本是完全不同的,所以两条线更新,类似AHKL和AHK2,有关系但是区别很大。40 v2.0.1beat1,修复MsgBox %LongPressLoop%测试语句忘记注释的BUG 2,解决了开头的脚本信息错误的问题,增加了一些内容41 v2.0.2beta 改为更容易被检索和理解的名字,AHK-UMSS (AHK通用修饰符解决方案 AutoHotKeyUniversalModifierSymbolsSolution)42 v2.0.3beta 增加了最后的尾巴伟大的征途 - 这个脚本的来龙去脉的注释43 v2.0.4beta 实现了按键变量的自定义44 v2.0.5beta 1,支持旧版Tab1.x的热键方式(其实更适合大多数人的情况,默认就是用这个) 2,支持一键修改热键45 v2.1.0 1,热键白名单 注释增补 2,新增3模式,表示采用禁用单击发送修饰键的OldKey模式 3,Old等待时间单独用一个变量来表示 4,增加快速为当前修饰键添加连发热键的方法 5,加入设置保存并重启当前脚本的热字串 6,跳板热键(中转键)可更改 7.感谢沉默不语的BUG反馈46 v2.1.1 解决一个会导致程序失效的严重问题47 v2.1.2 1,修复CapsLock开启时,无法正常发送大写字母的问题,感谢 丶行者先生、 的反馈 2,改TabndemSpeed25 为 TabndemSpeed3548 v2.1.3 1,使用函数ST()设置触发器,让程序可复用性更好 2,加了一些注释49 v2.5 beat 1修复了CapsLock等3个可切换键,无法切换的问题感谢 丶行者先生、 的反馈 2默认send模式改为250 v2.61 beat 1,增加了send模式2,并且改为默认 2,为了程序的简洁和可读性,不再采用一键默认设置 3,优化了send模式选择错误提示框显示的方式51 v3.0 beat 新增了一种功能添加方法(新的被叫做方法1,之前的被叫做方法2),该方法非常灵活,支持通过语境约束定义热键(可以实现三按键)52 v3.01 beat 1,注释掉一处不该有的MsgBox(调试时剩下的) 2,注释继续优化 3,自动执行段上方微调53 */54 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;55 56 ;# 定义制表符xx指的就是发送{Tab},功能xx指的就是以Tab为组合键执行的任务,比如F20 j。57 58 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;59 /*60 # 关于响应速度的说明61 ## 长按必定导致单击速度变慢例如用户按下一个键会停留50毫秒左右如果该键没有长按功能那么只要检测到用户按下这个键, 在其手指没有离开的时候,可能几毫秒的时间之内这个键的功能就已经被激发了;但是如果这个键设置了长按功能,那么只要用户的手指没有离开,系统就无法分辨到底是长按还是短按,命令就不能发送,直到用户的手指离开或者时间已到才可以采取相应的动作,人短按的时候肯定是不如机器快的,那么只要按键开启了长按,短按的效率必定下降。62 63 # UMSS针对该问题的方法64 ## 广泛的自定义既然速度降低是不可避免的,那么就应该有一个可以完全自定义的方案,UMSS就是如此。你可以选择好几种模式。65 66 ## 四种模式供你选择 九个参数均可自定义 两种不同的功能添加方法67 68 ### 模式1 修饰键功能保全方案修饰键的完整功能被保留。在这个模式下修饰键是可以发送自己的,比如修饰键为Tab,那么 无论是短按还是长按都是可以正常发送Tab的,长按的连发效果也保留。这个模式下的诸多参数你可以自定义,以便调整到一个最适合你的(默认方案应该适合大多数人,所以说如果不是遇到问题那就先不用调)69 ### 模式2 可单击修饰键方案在方案二的基础上,如果快速的单击的话是可以发送修饰键本身的。(但是有一定时间限制,长按时间超过大约1秒就不会再发送)70 ### 模式2 可单击修饰键方案Plus在方案二的基础上可以自定义等待时间(Timeout2),从 1s到无穷 可以自定义71 ### 模式3 完全修饰键方案这个很好理解也就是修饰键无法发送自己(大多修饰键都如此)。不过如果在此模式下你要用修饰键本身,方案就是启用组合热键来替代发送功能(包括连发也可以一并解决),程序内置了OtherTabndemKey,你可以通过修此参数一键设置。72 73 ## 心如止水的方案我个人的方案就是让Tab安安静静的做他的修饰键,我把send{Tab}的功能外包给了CapsLockSpace,主要是和我的语音识别键是离得很近的,在我的思维导图软件iThoughts用起来很爽所以就习惯了。74 ## 特别提示:主要的作用是把非修饰键当做修饰键来用,所以:1,已经是修饰键的例如(Ctrl)不能用 2,一定有延迟,所以对延迟敏感的场景不能用(比如字母,会影响打字速度)75 76 77 */78 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;79 80 ;# 声明全局变量81 global LongPressWT,TandemWT,TabndemSpeed,Timeout,OP,TA,keys,LongPressLoop,OldTimeout,OtherTabndemKey,FF,Timeout282 83 ;--------------------------------------------------------------------------------------------------------------- 84 85 86 ;# 设置详细说明87 88 ;# 全局生效设置89 ;## 被修改为修饰键的键 Keys(String) 无需多解释默认是Tab。如果使用分号等,不要忘记转义。90 ;## 替代连发按键 OtherTabndemKey(String) 可以设置一个热键(与当前修饰键),来专门连发当前修饰键,以弥补Tab1.x中按键无法连发的问题(默认不开启留空,如果想开启,填入对应按键就可以,比如global OtherTabndemKey:u)91 ;## (已经弃用)是否强制使用默认参数 OP(0|1)0的意思是关闭,1是打开92 ;## 中转键 FF(String)中转热键是为更好的实现程序迫不得已的选择,好在系统内置了F13-F24,平常根本就用不到,所以刚好拿来做中转。提供更改中转键的选项是因为很多用户可能会同时使用多个修饰键,如果不重新定义那就会冲突。93 94 ;# 在模式1 功能保全方案中起效的设置95 ;## 长按等待组合键触发时间 LongPressWT(ms)在模式1中,系统会等待您一段时间,在这个时间段内如果按下组合键则触发功能,否则就不触发功能,而是发送修饰符本身。该项就是设置此时间段的。96 ;## 修饰符连发等待时间 TandemWT(ms)在模式1中,如果已经超过了等待时间,程序会进入发送本身模式,但是在连续发送之前会有一段时间的停顿(Windows正常的连发就是如此)。该项就是设置该停顿的。97 ;## 修饰符连发速度 TandemSpeed(ms)在模式1中,进入了实质性的连发阶段,虽然叫做连发其实还是有一小段的间隔的,发送的快了不好掌握(Windows正常的连发就是如此)。该项就是设置该小段间隔的。98 ;## 功能连发超时 Timeout(s)特别提示的是,TimeOut的单位和别的不一样,不是毫秒而是 秒。在模式1中,进入了功能的连发阶段,连续发送很长的一段时间之后,为了防止出现BUG,连发会停止(因为一般人也用不到连发五秒,基本上半屏幕符号了)。该项就是设置功能连发上限时间的。99 100 ;# 在模式2 可单击修饰键方案以及模式3 完全修饰键方案中起效的设置 101 ;## Old版本按下等待时间 OldTimeout(s)在Old模式下,和windows本身的不同,修饰键按下是有等待时间的(比如按下5秒内可以触发)。该项就是设置该等待时间的。 102 103 ;# 在模式2的设置 104 ;## Timeout2(S),在Timeout2内,长按keys,只要功能没有触发,松开后都会发送keys本身。默认是无穷,也就是-1,可以重新自己设置(最少1s)。 105 ;--------------------------------------------------------------------------------------------------------------- 106 107 ;# 添加新的功能 108 ;# 这只是一个框架所以里面基本上没装什么功能,就只是装了一个按下jk分别左右移动的功能。 109 ;# 装功能的话你搜一下功能添加区就行了 110 111 ;# 强制使用默认模式1表示强制使用默认参数,0表示采用自定义参数 112 ;## 为了程序的可读性,该设置取消 113 ;~ global UseDefault:0 114 115 ;--------------------------------------------------------------------------------------------------------------- 116 117 ;# 不可自定义参数 118 119 ;# TA是功能被触发计数器,1表示有Tab功能已经被触发,0表示并没有,所以每个功能都要以TA1结尾,告诉程序功能已经触发了。 120 121 122 global TA:0 123 ;# 通过用户输入的长按等待时间计算检测循环次数 124 ;~ global LongPressLoop :Ceil(500/50) 125 ;改为10,提高灵敏度 126 global LongPressLoop :Ceil(500/10) 127 128 ;--------------------------------------------------------------------------------------------------------------- 129 130 131 ;# 可自定义参数 132 133 ;## 全局设置 134 135 ;### 请选择模式 模式1-修饰键功能保全方案 模式2-可单击修饰键方案 模式2 可单击修饰键方案Plus 模式3-完全修饰键方案 136 global MySendMode:2 137 138 ;### 选择要变成修饰键的按键 139 global keys:Tab 140 141 ;### 一键设置替代组合键(默认关闭) 142 global OtherTabndemKey: 143 144 ;### 设置中转键 145 global FF:F20 146 147 ;### 设置连发时间上限 148 Timeout5 ;单位是s 149 150 ;## 为模式1设置参数 151 152 LongPressWT500 ;### 判断为长按的时间 153 TandemWT180 ;### 进入发送模式后,第一个发送与连发的间隔 154 TabndemSpeed35 ;### 进入连发模式后,连发之间的间隔 155 156 ;## 为模式23设置参数 157 158 ;### 功能组合键等待时间(过了等待时间不会响应功能组合键) 159 OldTimeout5 ;单位是s 160 161 ;## 为模式2设置参数 162 163 ;### 按键等待时间(过了等待时间,松手也不会发送按键本身,也不会响应功能,-1代表无限) 164 Timeout2-1 ;单位是s,-1代表无限(实际上0都代表无限) 165 166 ;--------------------------------------------------------------------------------------------------------------- 167 168 169 170 ;通过HotKey的方式定义热键(便于直接使用变量修改) 171 172 if(MySendMode1) 173 { 174 Hotkey,%Keys%,MyKey,I2 175 } 176 else if(MySendMode2) 177 { 178 Hotkey,%Keys%,OldMyKey,I2 179 180 ;# 这里是 mode2 中注册 单击映射 的地方 181 Hotkey,%FF%,EnableClick,I0 182 } 183 else if(MySendMode2) 184 { 185 Hotkey,%Keys%,MyKey2_Plus,I2 186 } 187 else if(MySendMode3) 188 { 189 Hotkey,%Keys%,OldMyKey,I2 190 } 191 else 192 { 193 MsgBox,16,模式选择出现错误,错误的 MySendMode 值是 %MySendMode% 194 } 195 196 197 ;--------------------------------------------------------------------------------------------------------------- 198 199 ;# 拼接Timeout2 200 if (Timeout20) 201 Timeout2:T . Timeout2 202 else 203 Timeout2:-1 204 205 ;--------------------------------------------------------------------------------------------------------------- 206 207 208 209 ;如果不为空就注册热键,用于修饰键自身的连发 210 if !(OtherTabndemKey){ 211 212 Hotkey,%keys% %OtherTabndemKey%,OtherTabndem,I0 213 } 214 215 ; # 注册主功能热键(请放在最后,因为会干扰自动执行段) 216 domain() 217 218 ; # 自动执行段结束 219 return 220 221 ; 222 223 ;# 热键白名单(如果使用此脚本之后,系统或其它应用的相关热键出现问题无法使用,可以把热键添加到这个名单中。新版本已经基本修复了这个问题,但是还留着以防后患吧。) 224 225 #inputlevel,3 226 227 ;## 在这个层级是不覆盖系统默认键的,可以设置系统默认键的白名单 228 ;~的意思是不覆盖系统本身的快捷键 229 230 ;### 为了能让系统的窗口切换可以正常运行,以Level3的速度发送这些按键,避免受到干扰 231 ;位置0 232 ;# 注意 每个系统热键下面,必须加return 233 /* 234 235 ~!Tab:: 236 return 237 ~#Tab:: 238 */ 239 return 240 241 242 #inputlevel 243 244 245 ;--------------------------------------------------------------------------------------------------------------- 246 247 248 ;功能添加方法1:示例功能区(推荐) Start 249 #If GetKeyState(keys,p) ;## 语境约束:意思是当keys被实际按下时,一下内容就生效 250 251 252 q:: 253 ST() ;## 这个函数的意思是告诉程序已经触发功能,所以不需要再等,send模式1和send模式2用得到,send模式2-3用不到 254 MsgBox,成功触发 n %keys%q 热键 255 return 256 257 ;## 方法1的优势:方法1 很灵活,可以搭配系统中其他的修饰键,做到定义3快捷键 ,而且你也可以使用语境约束来适配更多情景,比如当Word存在时(下面有例子)。 258 !q:: 259 ST() 260 MsgBox,成功触发 n Alt%keys%q 热键 261 return 262 263 ;## 两种方法的优先级:当方法1和方法2冲突时,方法2优先,在这里Keysk代表向右移动2次,在模式2中是1次,只有注释方法2中的内容,才能移动2次。 264 k:: 265 ST() 266 send,{right 2} 267 return 268 return 269 270 #If ;## 语境约束结束 271 272 273 ;--------------------------------------------------------------------------------------------------------------- 274 275 #If GetKeyState(keys,p) AND WinExist(ahk_exe WINWORD.EXE) ;## 语境约束:意思是当keys被实际按下并且Word.exe窗口存在时,生效 276 277 !w:: 278 ST() 279 MsgBox,成功触发 n Alt%keys%w 热键 280 return 281 282 #If ;## 语境约束结束 283 284 285 ;功能添加方法1:示例功能区(推荐) End 286 287 288 289 ;--------------------------------------------------------------------------------------------------------------- 290 291 292 293 ;功能添加方法2:功能添加区 Start 294 domain(){ 295 global LongPressWT,TandemWT,TabndemSpeed,Timeout,OP,TA,keys,LongPressLoop,OtherTabndemKey,FF 296 297 ;# 注册热键等等被激发 298 Hotkey,%FF% j,Kj,I0 ;这是注册热键的意思,%FF% j中的%FF%就是你填的中转键,这个不用动,默认是F20, 就是并且的意思,%FF% j就是当你的修饰键和j键同时按下时,kj是函数名,是要执行的功能,在下方的功能区可以自己填。I0,指的是接收等级inputlevel,具体的意思可以看帮助文件,大多数时候根本用不到也不用去碰。 299 Hotkey,%FF% k,Kk,I0 300 return 301 302 } 303 304 305 Kj(){ ;这个地方是函数名,命名规则是字符k按键名,比如用修饰键配合j触发的,就叫做Kj,这不是硬性规定,只不过我觉得这样的话可读性会好。 306 ST() ;这个函数的意思是告诉程序已经触发功能,所以不需要再等,模式1和模式2用得到,模式2-3用不到 307 308 send,{Left} ;然后这个地方就可以增加语句了,就是你的功能,这里是发送向左,怎么做随你。如果功能代码量大,为了可读性建议使用#Include导入。 309 return ;不要忘记加return 310 } 311 312 313 Kk(){ 314 ST() 315 send,{right} 316 return 317 } 318 319 ;功能添加方法2:示例功能区 End 320 321 322 323 ;--------------------------------------------------------------------------------------------------------------- 324 325 326 327 #inputlevel 0 328 329 ;# 下面是替代连发热键 330 OtherTabndem: 331 ;修改1 332 ;~ Send,{%keys%} 333 MySend(keys) 334 return 335 336 337 EnableClick: 338 ;## 开放单击(根据需求自己考虑开不开) 339 MySend(keys) 340 return 341 #inputlevel 342 343 344 345 346 ;--------------------------------------------------------------------------------------------------------------- 347 348 #inputlevel,2 349 ;# 这是旧版发送方式 350 OldMyKey(){ 351 352 global LongPressWT,TandemWT,TabndemSpeed,Timeout,OP,TA,keys,LongPressLoop,OtherTabndemKey,FF 353 send,{%FF% Down} 354 355 KeyWait, %keys%,T%OldTimeout% 356 { 357 send,{%FF% Up} 358 } 359 return 360 } 361 #inputlevel 362 363 ;重置触发器 Reset Trigger 364 RT(){ 365 global TA 366 TA:0 367 return 368 } 369 370 371 ;设置触发器 Set Trigger 372 ST(){ 373 global TA 374 TA:1 375 return 376 } 377 378 379 #inputlevel,2 380 381 382 ;--------------------------------------------------------------------------------------------------------------- 383 384 ;位置1 385 ;# 这是新版发送方式(模式1) 386 MyKey() 387 { 388 ;声明一下该函数内使用的全局变量 389 global LongPressWT,TandemWT,TabndemSpeed,Timeout,OP,TA,keys,LongPressLoop,OtherTabndemKey,FF 390 391 ;# 先按下%FF%(便于后面的捕获) 392 send,{%FF% Down} 393 394 ;# 循环十次 如果出了循环之后说明用户是在单独长按,企图发送连续的Tab 395 loop,%LongPressLoop% 396 { 397 ;功能激活在没有检测到keys被松开的时候功能激活了 398 if (TA1) 399 { 400 401 KeyWait, %keys%,T%Timeout% 402 { 403 ;~ MsgBox,Tab被释放,所以%FF%被释放 404 405 send,{%FF% Up} 406 RT() 407 return 408 } 409 410 ;重置触发器 411 send,{%FF% Up} 412 RT() 413 return 414 } 415 ;不管是最后Tab等到了释放,或者是过了10秒,程序就结束了 416 ;重置触发器 417 418 ;如果发现功能没有被激活,那就检查是否Tab已经被松开,如果是的话,再检查一下触发器,如果没有触发,那么说明他只是想发送一个单独的Tab,如果触发了,那就释放%FF%,结束程序 419 ;如果发现功能没有被激活,先检查一下Tab是否被松开,如果被松开了那么再确认一下功能是否被激活,如果确认激活了,那么松开即可,如果没有被激活发送一个Tab松开 420 421 ;中途突然发现keys被松开了 422 if !(GetKeyState(keys,P)) 423 { 424 425 if (TA0) 426 { 427 send,{%FF% Up} 428 MySend(keys) 429 RT() 430 return 431 } 432 433 ;离开的同时去了其他线程,既然已经离开了那么就直接释放%FF%,什么我感觉还是可以的 434 send,{%FF% Up} 435 RT() 436 return 437 } 438 439 ;我发现既没激活,都没有被松开,那么就等待50毫秒,如此重复,500毫秒过去之后,说明用户是想长按 440 441 ;~ Sleep 50 442 ;改为10 提高灵敏度 443 Sleep 10 444 445 } 446 ;# 500毫秒已经过去,并没有触发功能也没有松开Tab 447 ;## 既然不想触发功能,那么就松开%FF% 448 449 send,{%FF% Up} 450 ;## 松开之后立即发送一个Tab 451 MySend(keys) 452 ;## 等待200毫秒 之后检查是否松开 453 Sleep %TandemWT% 454 ;~ Sleep 200 455 ;等到200毫秒之后,连续发送,直到检查到用户松开 456 ;持续按下200毫秒,进入循环模式 457 ;只要检查发现按下就一直发,如果发现没按下就停下 458 459 loop 460 { 461 462 if !(GetKeyState(keys,P)) { 463 RT() 464 return 465 break ;如果中途松开那就跳出循环, 程序也就结束了 466 } 467 468 ;如果一直不松开就一直发送下去, 469 else 470 { 471 MySend(keys) 472 473 Sleep %TabndemSpeed% 474 } 475 } 476 477 RT() 478 } 479 return 480 481 482 ;--------------------------------------------------------------------------------------------------------------- 483 484 485 ;# send模式2 的函数 发送模式2Plus 486 MyKey2_Plus() 487 { 488 ;## 声明一下该函数内使用的全局变量 489 global Timeout2 490 491 ;## 按下%FF% (等待被触发) 492 send,{%FF% Down} 493 ;## 等待被松开 494 ;### 如果是-1那么就一直等,如果不是就等Timeout2秒 495 if (Timeout2-1) 496 KeyWait,%keys% 497 else 498 KeyWait,%keys%,%Timeout2% 499 ;~ KeyWait,%keys%,T1 500 ;### 如果超时了 501 if (ErrorLevel1){ 502 ;~ MsgBox,超时 503 ;#### 释放%FF% 504 send,{%FF% Up} 505 ;#### 重置计数器 506 RT() 507 return 508 } 509 else 510 { 511 ;~ MsgBox 6 512 ;## 松开了如果功能已经触发则不发出原按键,否则就发出 513 514 515 ;### 如果松开之后功能已经触发 516 if (TA1){ 517 ;#### 释放%FF% 518 send,{%FF% Up} 519 ;#### 重置计数器 520 RT() 521 522 } 523 ;### 如果松开之后功能并触发,那么就发出原按键即可 524 else 525 { 526 527 ;#### 释放%FF% 528 send,{%FF% Up} 529 ;#### 重置计数器 530 RT() 531 MySend(keys) 532 533 return 534 } 535 } 536 537 538 539 } 540 541 #inputlevel 542 543 544 ;--------------------------------------------------------------------------------------------------------------- 545 546 547 ; # 设置保存并重启当前脚本的热字串 ;rl 548 #If WinActive(A_ScriptName) 549 ;###保存并重启当前脚本 550 :?:;rl:: 551 Sleep 25 552 send ^s 553 Sleep 25   554 Reload 555 return 556 #If 557 558 559 ;--------------------------------------------------------------------------------------------------------------- 560 561 562 563 ;# 以下是用到的函数 564 565 ;# 检测目前CapsLock状态 566 CheckCapsLock(){ 567 ;开着是1,关掉是0 568 return GetKeyState(CapsLock,T) 569 } 570 571 572 ;--------------------------------------------------------------------------------------------------------------- 573 574 575 ;# 针对CapsLock等可切换热键的针对性优化send函数 576 MySend(ukey){ 577 578 ;# 如果发现是3种切换键,那么不使用Send,而是直接切换,速度会快很多很多 579 if(FastSwap(ukey)1) 580 return 581 ;# 如果CapsLock没开,那么就直接发送即可 582 if(CheckCapsLock()0){ 583 Send,{%ukey%} 584 return 585 } 586 ;~ /* 587 ;如果发现并非单字符字母键那么不在该使用场景内直接发送原版结束程序 588 else if !(StrLen(ukey)1){ 589 Send,{%ukey%} 590 return 591 } 592 ;如果大写是开启的那么转换为大写再发送一下 593 ;~ */ 594 else 595 { 596 StringUpper,ukey,ukey 597 Send,{%ukey%} 598 } 599 return 600 } 601 602 603 ;--------------------------------------------------------------------------------------------------------------- 604 605 ;# 如果发现是可切换按键,那么就切换一下,0代表不是可切换按键,1代表发送了切换的指令 606 ;## 特别提示,AHK1.3.0新特性,支持用 0/1 代表 OFF/On 但是为了照顾兼容性还是用了字符串 607 ;## 由来:不知道为什么如果直接send这些可切换键的话切换会特别慢(帮助文件上说可以这么搞),让人以为是锁定住了,那没办法只能用另外的方法。 608 609 FastSwap(ByRef ukey){ 610 thetemp:CheckOfukey(ukey,1) 611 if (thetemp0001_输入的按键不是可切换键) 612 return 0 613 else if (SubStr(thetemp,1,1)c) 614 { 615 SetCapsLockState,% GetKeyState(CapsLock,T) ? OFF : On 616 return 1 617 } 618 else if (SubStr(thetemp,1,1)n) 619 { 620 621 SetNumLockState,% GetKeyState(NumLock,T) ? OFF : On 622 return 1 623 } 624 else if (SubStr(thetemp,1,1)s) 625 { 626 SetScrollLockState,% GetKeyState(ScrollLock,T) ? OFF : On 627 return 1 628 } 629 return 0 630 631 } 632 633 634 ;--------------------------------------------------------------------------------------------------------------- 635 636 637 ;# CheckOfukey 函数 检查可切换按键的状态 638 CheckOfukey(ByRef ukey,returnname:0){ 639 TheShow : 640 ; # 提取按键字符 只有returnname不等于0 才会返回按键的第一个字母的小写形式 641 if(returnname!0){ 642 TheShow : SubStr(ukey,1,1) 643 StringLower, TheShow, TheShow 644 } 645 646 if(ukeyCapsLock) 647 return % TheShow GetKeyState(CapsLock,T) 648 if(ukeyNumLock) 649 return % TheShow GetKeyState(NumLock,T) 650 if(ukeyScrollLock) 651 return % TheShow GetKeyState(ScrollLock,T) 652 653 else 654 ;错误代码0001 655 return,% 0001_输入的按键不是可切换键 656 } 657 658 ;--------------------------------------------------------------------------------------------------------------- 659 660 ; # checkString 函数 检查某字符串中是否含有某关键词(可以是多个,用|隔开即可) 如果有则return 1,没有return 0 661 checkString(WaitCheck,TheKey){ 662 Loop,parse,TheKey,| 663 { 664 if(InStr(WaitCheck,A_LoopField,false,1,1)) 665 return 1 666 } 667 return 0 668 } 669 670 /* 671 672 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 673 ;# 尾巴这个脚本的来龙去脉 674 ;# 作为不平凡而且不满足的人,我们想尽可能提升操作电脑的效率,比如说进行文本编辑这件事,那些快捷键实在是太远太乱,如果可以用Space作为修饰键就很好了。 675 知阳(Power-Keys)和Space(SpaceZ)做了大量的尝试,显然他们的方案已经能够大幅提高效率,但是比较敏感的群友(比如我和Ever)会发现还是对中文上屏的速度有干扰(因为目前中文输入法的上屏需要按下空格而且主流的输入法没有自定义选项)。 676 我本来想搞一个无干扰的方案,但是昨天晚上突然想明白了无干扰的方案是不存在的(因为某个键有长按和单击,单击的速度几乎是一定要被拖慢的,在最前面举过例子),只是干扰的大小罢了,可以说以上二位的方案应该就是最优方案了,Space修饰键探索可以结束了。 677 基于以上认识,我就设计了一个可以把任何按键都变成修饰键不会影响任何本身功能的解决方案,里边的各个参数都可以自定义,你可以再不明白原理的基础上做出任何你想要的修改(现在可以修改9个参数,可能还会再增加一些),我用了一上午的时间终于完工了,任何脚本的第一个版本,一定是有一些问题的,您在使用过程中如果遇到了欢迎向我反馈我们来一起完善它。 678 最后,希望我的这个脚本能够给您带来更高效率的PC操作体验。 ^_^ 679 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 680 681 */   posted on 2018-10-14 20:49 心如止水_Zen 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/xrvu/p/9787884.html
http://www.zqtcl.cn/news/298888/

相关文章:

  • 奥迪网站建设策划书wordpress取消评论审核
  • 无锡百度正规公司专业seo网站优化推广排名教程
  • 湖南城乡建设厅网站青岛网站推广招商
  • 网站备案信息加到哪里国际要闻军事新闻
  • 商河县做网站公司如何仿制国外网站
  • 网站如何跟域名绑定唐山正规做网站的公司哪家好
  • 网站建设wang.cdwordpress文章链接插件
  • 本地进wordpress后台搜索优化师
  • 网站备案证书下载失败法国 wordpress
  • 海南平台网站建设企业优秀的设计案例
  • 拿别的公司名字做网站合肥网页设计培训班
  • 到哪个网站做任务太原百度seo优化推广
  • 北京外贸网站开发广东智慧团建系统入口
  • 做百度网站接到多少客户电话阿里云服务器win系统建站教程
  • 天空在线网站建设深圳外贸网站怎么建
  • 网站的交流的功能怎么做小商品网站建设
  • 求职招聘网站建设投标书怎样在手机上面建设网站
  • 重庆工厂网站建设备案域名出售平台
  • 免费网站优化校园电商平台网站建设
  • 宁波市住房和城乡建设局网站成都网站建设网站制作
  • 网站制作还花钱建设银行网站查询密码是啥
  • 周到的做pc端网站产品图册设计公司
  • 淘宝客新增网站网页设计板式类型
  • 怎么使用wordpress建站吃什么补肾气效果好
  • 建设网站中期wordpress做分类信息网站
  • 百色住房和城乡建设部网站江苏交通建设监理协会网站
  • 常州网站建设哪儿好薇有哪些做外贸网站
  • ip域名找网站一级域名和二级域名的区别
  • 手机网站 底部菜单网站切换效果
  • 珠海公司做网站wordpress最近访客