/*
用非默认程序打开文件2.0Beta
2021年3月20日
by:僵尸
左键双击会用默认应用打开文件,比如双击*.txt,会用记事本打开,
右键双击会用自己预设的软件来打开(也可以设置为热键)
需要先单击选中
bug未知
*/
global SuDu := "-300" ; 双击间隔时间,如果双击间隔太短,可以改到-400或更大来适当延长,这也会影响正常右键菜单的显示速度
;预设软件路径, "="前为文件扩展名, 多个用","隔开,"="后为打开当前扩展名文件的软件路径, 括号中间, 每行一组
ZhiDingRuanJian =
(
txt,ini=D:\EmEditor_20.4.4_Green\emed64_20.4.4_portable\EmEditor.exe
ahk=C:\Users\Administrator\AppData\Local\Programs\Microsoft VS Code\Code.exe
)
; 右键双击
; Original_Double("双击执行的标签/函数名", "单击执行的标签/函数名"),如果省略参数2,单击热键后执行此热键原始功能,热键前加 $
$RButton::Original_Double("TryOpen")
; 热键F1
F1::
TryOpen()
Return
TryOpen(){
global
SuoYouJianQieBan := ClipboardAll
Clipboard =
Send, ^c
ClipWait, 0.5
RegExMatch(Clipboard, "(?<=\.)[^.]+$", KuoZhanMing)
Loop, Parse, ZhiDingRuanJian, `n, `r
{
WenJian := RegExReplace(A_LoopField,"\=.+")
RuanJian := RegExReplace(A_LoopField,"^.+\=")
IF KuoZhanMing in %WenJian%
Run, %RuanJian% "%Clipboard%"
}
Clipboard := ""
Clipboard := SuoYouJianQieBan
return
}
Original_Double(Double_BiaoQian, Click_BiaoQian := ""){
Global
Original_Double_DanJi := RegExReplace(Trim(A_ThisHotkey, "$"), "^([\^\+!]*)([a-zA-Z0-9]+$)", "$1{$2}")
Original_Double_DanJiBQ := Click_BiaoQian
Original_Double_ShuangJiBQ := Double_BiaoQian
if Key_presses > 0
{
Key_presses += 1
return
}
Key_presses = 1
SetTimer, KeyClick, %SuDu%
return
KeyClick:
if Key_presses = 1
{
If (!Original_Double_DanJiBQ)
{
Send % Original_Double_DanJi
}
Else
SetTimer, %Original_Double_DanJiBQ%, -1
}
else if Key_presses = 2
{
SetTimer, %Original_Double_ShuangJiBQ%, -1
}
Key_presses = 0
Return
}
有说法 研究研究