作者tokugawa (R.I.P. Lidle)
看板EZsoft
标题Re: [请益] 如何用autohotkey设定西欧特殊字元?
时间Sun Jan 6 22:18:57 2008
※ 引述《tokugawa (R.I.P. Lidle)》之铭言:
: 这软体没有支援Unicode,写法如下,快速键请自行指定。
: Send {Asc 0228}
: Send {Asc 0246}
: Send {Asc 0252}
: 例如指定Alt+a为U+00E4
: !a::
: Send {Asc 0228}
: return
感谢前面推文的板友,经测试可用。
在AutoHotkey.ahk的开头加上这段代码。
DllCall("LoadLibrary", Str,"ntdll.dll")
VarSetCapacity( SendUbuf, 56, 0 )
DllCall("RtlFillMemory", UInt,&SendUbuf, UInt,1, UInt,1)
DllCall("RtlFillMemory", UInt,&SendUbuf+28, UInt,1, UInt,1)
SendU(UC){
Global
DllCall("ntdll.dll\RtlFillMemoryUlong",UInt,
&SendUbuf+6,UInt,4,UInt,0x40000|UC)
DllCall("ntdll.dll\RtlFillMemoryUlong",UInt,
&SendUbuf+34,UInt,4,UInt,0x60000|UC)
Return DllCall("SendInput", UInt,2, UInt,&SendUbuf, Int,28)
}
接下来用SendU()输出unicode字元
比如说用Ctrl+t输出「礼」这个字,字元对应表中的代码是U-79AE
^t::
SendU(0x79AE)
return
这样就不用像我以前一样经由剪贴簿输出unicode字元了。
修改原因:
1.贴上代码的时候没注意,造成断行。
2.只用Alt+任意键作为快速键好像不行,不知道为什麽。
※ 编辑: tokugawa 来自: 218.169.94.6 (01/06 23:45)
1F:推 vvana:很多GUI介面的软体,都把alt+X拿来开最上面的选单,会相冲 01/07 00:19
2F:→ vvana:比如PCMan用alt+c会打开连线的选单 01/07 00:19
3F:→ tokugawa:确定都不行也没冲突,例如Alt+.,但用Send{Asc}送就可以 01/07 00:44
4F:→ tokugawa:然後Firefox也不能只用Ctrl+任意键,例如Ctrl+.Ctrl+[ 01/07 01:30