幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!
if (IME_GET()=1)
中文
else
英文
用这个函数试试
IME_GET(WinTitle="")
{
IfEqual WinTitle,, SetEnv,WinTitle,A
WinGet,hWnd,ID,%WinTitle%
DefaultIMEWnd := DllCall("imm32ImmGetDefaultIMEWnd", Uint,hWnd, Uint)
DetectSave := A_DetectHiddenWindows
DetectHiddenWindows,ON
SendMessage 0x283, 0x005,0,,ahk_id %DefaultIMEWnd%
DetectHiddenWindows,%DetectSave%
return ErrorLevel
}
return
我有好多类似的热字符串,所以想做个函数,看起来清爽点
请问这个Function可以带变量吗?
:X:tt1::Function(%A_YYYY%%A_MM%%A_DD%)
Function(strzz)
{
if(RegExMatch(strzz,"htt"))
run,%strzz%
else
SendInput,{Text}%strZz%
return
}
并不行啊。用的v1
热字符串的方式,怎么样可以运行一个函数?
太棒了。不用剪切板
在楼主的启发下,改为ctrl双击打开软件。只需要修改「指定打开软件」的内容即可。
~Ctrl::
指定打开软件 =
(
dwg=C:QCCADReader.exe.lnk
pdf=C:QC工程易览PDF.exe.lnk
jpg,jpeg,png=C:QCPhotoshop.lnk
)
if (A_ThisHotkey = A_PriorHotkey && A_TimeSincePriorHotkey < 300)
{
原始剪切板 := ClipboardAll ; 这是通过复制的方式获取文件路径,处理一下clipboard
Clipboard = ; 清空一次剪切板
Send, ^c ; 复制【对文件复制,剪切板内含当前文件的完整路径】
ClipWait, 0.5 ; 等待剪切板变化
RegExMatch(Clipboard, "(?<=.)[^.]+$", KuoZhanMing) ; 取当前文件扩展名,存入KuoZhanMing【参RegExMatch函数】
Loop, Parse, 指定打开软件, `n, `r ; 逐行解析用来预设应用的字符串ZhiDingRuanJian
{
WenJian := RegExReplace(A_LoopField,"=.+") ; 取当前行=左侧内容 【预设的扩展名】
WenJian := StrReplace(WenJian,A_Tab) ; 取左侧内容清理tab 【预设的扩展名】
RuanJian := RegExReplace(A_LoopField,"^.+=") ; 取当前行=右侧内容 【预设的软件】
IF KuoZhanMing in %WenJian% ; 如果当前选中文件的扩展名【KuoZhanMing】包含于【预设的扩展名】
{
Run, %RuanJian% "%Clipboard%" ; 用【第2个软件】打开当前选中的软件
}
}
Clipboard := "" ; 打开动作完成,清空一次剪切板
Clipboard := 原始剪切板 ; 把之前存到变量的所有剪切板内容恢复到剪切板
原始剪切板 := "" ; 清空变量
return
}
findtext