Ich habe dieses großartige AutoHotkey-Skript aus diesem Forum http://www.autohotkey.com/forum/topic570.html von ‘jak’ verwendet. Stellen Sie dieses Skript einfach so ein, dass es beim Starten ausgeführt wird:
Damit kann man Sachen machen wie
- Windows + ` und dann e, um è zu bekommen
- Windows + : und dann e, um ë zu bekommen
…usw.
;====================================
;accents "top part" - this top part needs to be located at the top part (the 'run' part) of the ahk file
;====================================
;
;============ ----- Send Unicode Character - universal MS word-style accents in any application
;
SendInput:=DllCall("GetProcAddress",UInt,DllCall("GetModuleHandle",Str,"user32"),Str,"SendInput")
VarSetCapacity(SendUbuf, 56, 0) ; INIT SendU data strucure
NumPut(1, SendUbuf, 0, "Char")
NumPut(1, SendUbuf,28, "Char")
NumPut(0x40000, SendUbuf, 6)
NumPut(0x60000, SendUbuf,34)
;-----------------
;
;====================================
;accents "hotkey part" - (this part can be located anywhere)
;====================================
;
SendU(UC) { ; Send Unicode Char, Pressed modifier keys stay active!
Global ; SendUbuf, SendInput
NumPut(UC, SendUbuf, 6, "Short")
NumPut(UC, SendUbuf,34, "Short")
Return DllCall(SendInput, UInt,2, UInt,&SendUbuf, Int,28)
}
a::
if accent=grave
; sendinput,à
{
SendU(0x00e0)
}
else if accent=acute
{
; Send,á
SendU(0x00e1)
}
else if accent=circumflex
; sendinput,â
{
SendU(0x00e2)
}
else if accent=tilda
; sendinput,ã
{
SendU(0x00e3)
}
else if accent=umlaut
; sendinput,ä
{
SendU(0x00e4)
}
Gosub,TurnAccentsOff
Return
c::
if accent=cedilla
; sendinput,ç
{
SendU(0x00e7)
}
Gosub,TurnAccentsOff
Return
e::
if accent=grave
; sendinput,è
{
SendU(0x00e8)
}
else if accent=acute
; sendinput,é
{
SendU(0x00e9)
}
else if accent=circumflex
; sendinput,ê
{
SendU(0x00ea)
}
else if accent=umlaut
; sendinput,ë
{
SendU(0x00eb)
}
Gosub,TurnAccentsOff
Return
i::
if accent=grave
; sendinput,ì
{
SendU(0x00ec)
}
else if accent=acute
; sendinput,í
{
SendU(0x00ed)
}
else if accent=circumflex
; sendinput,î
{
SendU(0x00ee)
}
else if accent=umlaut
; sendinput,ï
{
SendU(0x00ef)
}
Gosub,TurnAccentsOff
Return
n::
if accent=tilda
; sendinput,ñ
{
SendU(0x00f1)
}
Gosub,TurnAccentsOff
Return
o::
if accent=grave
; sendinput,ò
{
SendU(0x00f2)
}
else if accent=acute
; sendinput,ó
{
SendU(0x00f3)
}
else if accent=circumflex
; sendinput,ô
{
SendU(0x00f4)
}
else if accent=tilda
; sendinput,õ
{
SendU(0x00f5)
}
else if accent=umlaut
; sendinput,ö
{
SendU(0x00f6)
}
Gosub,TurnAccentsOff
Return
u::
if accent=grave
; sendinput,ù
{
SendU(0x00f9)
}
else if accent=acute
; sendinput,ú
{
SendU(0x00fa)
}
else if accent=circumflex
; sendinput,û
{
SendU(0x00fb)
}
else if accent=umlaut
; sendinput,ü
{
SendU(0x00fc)
}
Gosub,TurnAccentsOff
Return
+a::
if accent=grave
; sendinput,À
{
SendU(0x00c0)
}
else if accent=acute
; sendinput,Á
{
SendU(0x00c1)
}
else if accent=circumflex
; sendinput,Â
{
SendU(0x00c2)
}
else if accent=tilda
; sendinput,Ã
{
SendU(0x00c3)
}
else if accent=umlaut
; sendinput,Ä
{
SendU(0x00c4)
}
Gosub,TurnAccentsOff
Return
+c::
if accent=cedilla
; sendinput,Ç
{
SendU(0x00c7)
}
Gosub,TurnAccentsOff
Return
+e::
if accent=grave
; sendinput,È
{
SendU(0x00c8)
}
else if accent=acute
; sendinput,É
{
SendU(0x00c9)
}
else if accent=circumflex
; sendinput,Ê
{
SendU(0x00ca)
}
else if accent=umlaut
; sendinput,Ë
{
SendU(0x00cb)
}
Gosub,TurnAccentsOff
Return
+i::
if accent=acute
; sendinput,Í
{
SendU(0x00cc)
}
else if accent=grave
; sendinput,Ì
{
SendU(0x00cd)
}
else if accent=circumflex
; sendinput,Î
{
SendU(0x00ce)
}
else if accent=umlaut
; sendinput,Ï
{
SendU(0x00cf)
}
Gosub,TurnAccentsOff
Return
+n::
if accent=tilda
; sendinput,Ñ
{
SendU(0x00d1)
}
Gosub,TurnAccentsOff
Return
+o::
if accent=grave
; sendinput,Ò
{
SendU(0x00d2)
}
else if accent=acute
; sendinput,Ó
{
SendU(0x00d3)
}
else if accent=circumflex
; sendinput,Ô
{
SendU(0x00d4)
}
else if accent=tilda
; sendinput,Õ
{
SendU(0x00d5)
}
else if accent=umlaut
; sendinput,Ö
{
SendU(0x00d6)
}
Gosub,TurnAccentsOff
Return
+u::
if accent=grave
; sendinput,ù
{
SendU(0x00d9)
}
else if accent=acute
; sendinput,ú
{
SendU(0x00da)
}
else if accent=circumflex
; sendinput,û
{
SendU(0x00db)
}
else if accent=umlaut
; sendinput,ü
{
SendU(0x00dc)
}
Gosub,TurnAccentsOff
Return
TurnAccentsOff:
Hotkey,a,off
Hotkey,e,off
Hotkey,i,off
Hotkey,o,off
Hotkey,u,off
Hotkey,c,off
Hotkey,n,off
Hotkey,+a,off
Hotkey,+e,off
Hotkey,+i,off
Hotkey,+o,off
Hotkey,+u,off
Hotkey,+c,off
Hotkey,+n,off
Return
TurnAccentsOn:
Hotkey,a,on
Hotkey,e,on
Hotkey,i,on
Hotkey,o,on
Hotkey,u,on
Hotkey,c,on
Hotkey,n,on
Hotkey,+a,on
Hotkey,+e,on
Hotkey,+i,on
Hotkey,+o,on
Hotkey,+u,on
Hotkey,+c,on
Hotkey,+n,on
Return
<#'::
keywait, lwin
accent=acute
Gosub,TurnAccentsOn
Return
<#`::
keywait, lwin
accent=grave
Gosub,TurnAccentsOn
Return
<#6::
<#+6::
keywait, lwin
accent=circumflex
Gosub,TurnAccentsOn
Return
<#;::
<#+;::
keywait, lwin
accent=umlaut
Gosub,TurnAccentsOn
Return
<#,::
keywait, lwin
accent=cedilla
Gosub,TurnAccentsOn
Return
<#+`::
keywait, lwin
accent=tilda
Gosub,TurnAccentsOn
Return
Gosub,TurnAccentsOff
Es gibt auch einen eher Mac-ähnlichen Ansatz, den ich hier nicht ausprobiert habe: http://www.autohotkey.com/forum/topic30440.html .