From 3693b0964043efaddb3fc69445daaa4d7da379db Mon Sep 17 00:00:00 2001 From: nora Date: Sat, 26 May 2007 11:24:59 +0000 Subject: autohotkey: Capslock auf Mod3+Mod3, Numpaddot auf Mod5+Mod5, schmales und geschütztes Leerzeichen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.neo-layout.org@129 b9310e46-f624-0410-8ea1-cfbb3a30dc96 --- windows/XP/autohotkey/README.txt | 11 +- windows/XP/autohotkey/neo20-remap.ahk | 127 ++++++++----- windows/XP/autohotkey/neo20.ahk | 340 ++++++++++++++++++++-------------- 3 files changed, 290 insertions(+), 188 deletions(-) diff --git a/windows/XP/autohotkey/README.txt b/windows/XP/autohotkey/README.txt index 1a3a4e6..d9bce8e 100644 --- a/windows/XP/autohotkey/README.txt +++ b/windows/XP/autohotkey/README.txt @@ -1,4 +1,4 @@ -Version 19.05.2007 +Version 25.05.2007 == Installation == @@ -47,7 +47,7 @@ L Ohne die Remap-Datei knnen die 3. Ebene mit Ctrl+Win -die 4. mit Ctrl+Win+Shift +die 4. entsprechend mit Ctrl-Win-Shift die 5. mit AltGr die 6. mit AltGr+Shift erreicht werden. @@ -77,10 +77,3 @@ AltGr + Ende = Computer ausschalten Lsst sich die neo20-remap.ahk in die Hauptdatei integrieren? Ist mir bislang noch nicht gelungen. - -Geschtztes Leerzeichen und schmales Leerzeichen auf 4./6. Ebene ber -Leertaste, finde ich keine ANSI-Darstellung fr. - -./, auf Mod5 5. Ebene - -CapsLock auf Mod3 3. Ebene diff --git a/windows/XP/autohotkey/neo20-remap.ahk b/windows/XP/autohotkey/neo20-remap.ahk index eca8d69..3e48831 100644 --- a/windows/XP/autohotkey/neo20-remap.ahk +++ b/windows/XP/autohotkey/neo20-remap.ahk @@ -1,7 +1,7 @@ /* - Mod3: Umbelegung von Win+Ctrl auf CapsLock und #, - Mod5: Zweites AltGr auf < - Version vom 21.05.2007 + Mod3: Umbelegung von Win+Ctrl auf CapsLock und #, + Mod5: Zweites AltGr auf < + Version vom 25.05.2007 */ ;#InstallKeybdHook @@ -14,6 +14,7 @@ name = NEO-Remap enable = Aktiviere %name% disable = Deaktiviere %name% + ; Men des Systray-Icons ; ---------------------- @@ -31,79 +32,117 @@ menu, tray, add, %name% beenden, exitprogram menu, tray, tip, %name% + ; Mod3 (3. und 4. Ebene) ; CapsLock und # werden zu Win + Ctrl +; # + CapsLock = CapsLock ; -------------------------------------------- *CapsLock:: -Send {RWin Down} -Send {Control Down} -Loop -{ - Sleep, 10 - GetKeyState, keystate, CapsLock, P - if keystate = U - break - ; The key has been released, so break out of the loop. -} -Send {RWin Up} -Send {Control Up} + Send {RWin Down} + Send {Control Down} + GetKeyState, capsstate, #, P + If capsstate = D + { + keywait, Capslock + GetKeyState, state, CapsLock, T + ; D if CapsLock is ON or U otherwise. + if state = D + setcapslockstate, off + else + setcapslockstate, on + } + Else + { + Loop + { + Sleep, 10 + GetKeyState, keystate, CapsLock, P + if keystate = U + { + Send {RWin Up} + Send {Control Up} + break + } + } + } return *#:: -Send {RWin Down} -Send {Control Down} -Loop -{ - Sleep, 10 - GetKeyState, keystate, #, P - if keystate = U - break - ; The key has been released, so break out of the loop. -} -Send {RWin Up} -Send {Control Up} + Send {RWin Down} + Send {Control Down} + Loop + { + Sleep, 10 + GetKeyState, keystate, #, P + if keystate = U + break + } + Send {RWin Up} + Send {Control Up} return ; Mod5 (5. und 6. Ebene) -; < wird zu zweiter AltGr (SC138) +; < wird zu zweitem AltGr (SC138) +; < + AltGr = NumpadDot ; -------------------------------- - - +; + +*SC138:: + Send {Blind}{LCtrl Up}{SC138 DownTemp} + GetKeyState, dotstate, <, P + If dotstate = D + { + keywait, SC138 + Send {numpaddot} + Send {Blind}{LCtrl Up}{SC138 DownTemp} + } + Else + { + Loop + { + Sleep, 10 + GetKeyState, keystate, SC138, P + If keystate = U + { + Send {Blind}{SC138 Up} + break + } + } + } +return *<:: -Send {SC138 Down} -Loop -{ - Sleep, 10 - GetKeyState, keystate, <, P - if keystate = U - break - ; The key has been released, so break out of the loop. -} -Send {SC138 Up} + Send {SC138 DownTemp} + Loop + { + Sleep, 10 + GetKeyState, keystate, <, P + if keystate = U + break + } + Send {SC138 Up} return - ; Funktionen des Systray-Mens ; ---------------------------- toggleneo: - if suspendstate <> + If suspendstate <> { suspendstate = menu, tray, rename, %enable%, %disable% } - else + Else { suspendstate = : Deaktiviert menu, tray, rename, %disable%, %enable% } - menu, tray, tip, %name%%state% + menu, tray, tip, %name%%suspendstate% suspend return diff --git a/windows/XP/autohotkey/neo20.ahk b/windows/XP/autohotkey/neo20.ahk index 95f7b63..a7940f1 100644 --- a/windows/XP/autohotkey/neo20.ahk +++ b/windows/XP/autohotkey/neo20.ahk @@ -1,5 +1,5 @@ /* - NEO-Layout - Version vom 23.05.2007 + NEO-Layout - Version vom 25.05.2007 Mod3 (3./4. Ebene) funktioniert ber Win+Ctrl, Mod5 (5./6. Ebene) ber AltGr. Zur Umbelegung von Mod3 auf CapsLock und # @@ -7,35 +7,30 @@ verwende neo20-remap.ahk */ -;#InstallKeybdHook #usehook on #singleinstance force #LTrim ; Quelltext kann eingerckt werden, ; msgbox ist trotzdem linksbndig -SendMode InputThenPlay +SendMode Play +SetTitleMatchMode 2 name = NEO-Layout 2.0 enable = Aktiviere %name% disable = Deaktiviere %name% -; ToDo -; -------- -; - nobreakspace und schmales Leerzeichen -; - ./, auf Altgr -; - CapsLock ber beide Mod3 - - ; ANSI-Darstellung von beliebigen Unicode-Zeichen ; ----------------------------------------------- -; (bentigt fr MyUTF_String): ; - die untenstehende Definition auskommentieren ; - gewnschtes Zeichen in die Zwischenablage befrdern ; - ^!u (Control+Alt+U) drcken ; - die ANSI-Darstellung aus der Zwischenablage an die ; gewnschte Stelle ins Skript einfgen +; Wird bentigt fr Unicode("") und BSUnicode(""). +; Alternativ kann SendUnicodeChar(0x002A) verwendet werden, +; braucht aber viel mehr CPU. /* ^!u:: MsgBox, @@ -76,7 +71,7 @@ if inputlocale <> 00000407 `t%inputlocale% `nDas deutsche QWERTZ muss als Standardlayout eingestellt sein, damit %name% wie erwartet funktioniert. - `nndere die Tastatureinstellung unter + `nndern Sie die Tastatureinstellung unter `tSystemsteuerung `t-> Regions- und Sprachoptionen `t-> Sprachen @@ -112,25 +107,16 @@ menu, tray, tip, %name% ; Sondertasten ; ------------ -Space:: - If A_PriorHotkey = ^ ; circumflex - BSUnicode("ˆ") - Else If A_PriorHotkey = + ; tilde - BSUnicode("˜") - Else - Send {Space} -Return +*Esc::Send {Esc} + +*Enter::Send {Enter} +Space::Send {Space} +Space::Send {Space} #^space::Send {Space} -#^+space::Send {Space} ; soll geschtztes Leerzeichen +#^+space::SendUnicodeChar(0x00A0) ; geschtztes Leerzeichen <^>!Space::Send 0 -<^>!+Space::Send {Space} ; soll schmales Leerzeichen - - -*Enter::Send {Enter} - -*Esc::Send {Esc} +<^>!+Space::SendUnicodeChar(0x2009) ; schmales Leerzeichen Tab::Send {Tab} +Tab::Send +{Tab} @@ -147,34 +133,31 @@ Backspace::Send {BS} <^>!Backspace::Send {BS} <^>!+Backspace::Send {BS} -;<^>!SC138::Send {NumpadDot} - ; geht nicht, weil sonst AltGr nur noch , macht - ; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ; 1. Ebene ; --------- -^::send {^} ; circumflex, tot +^::Unicode("ˆ") ; circumflex, tot 1:: If A_PriorHotkey = ^ ; circumflex - send {bs} + BSUnicode("¹") Else send 1 return 2:: If A_PriorHotkey = ^ ; circumflex - send {bs} + BSUnicode("²") Else send 2 return 3:: If A_PriorHotkey = ^ ; circumflex - send {bs} + BSUnicode("³") Else send 3 return @@ -187,15 +170,15 @@ return 9::send 9 0::send 0 ::send - ; Bind -::send {} ; akut, tot +::send {}{space} ; akut, tot -q::send x +q::sendinput {blind}x w:: If A_PriorHotkey = <^>!+^ ; punkt darunter BSUnicode("ṿ") Else - send v + sendinput {blind}v Return e:: @@ -212,7 +195,7 @@ e:: Else If A_PriorHotkey = <^>!+^ ; punkt darunter BSUnicode("ḷ") Else - send l + sendinput {blind}l Return r:: @@ -227,14 +210,14 @@ r:: Else If A_PriorHotkey = <^>! ; punkt darber BSUnicode("ċ") Else - Send c + sendinput {blind}c Return t:: If A_PriorHotkey = ^ ; circumflex BSUnicode("ŵ") Else - send w + sendinput {blind}w Return z:: @@ -243,7 +226,7 @@ z:: Else If A_PriorHotkey = <^>!+^ ; punkt darunter BSUnicode("ḳ") Else - send k + sendinput {blind}k Return u:: @@ -255,7 +238,7 @@ u:: BSUnicode("ḣ") Else If A_PriorHotkey = <^>!+^ ; punkt darunter BSUnicode("ḥ") - Else send h + Else sendinput {blind}h Return i:: @@ -267,7 +250,7 @@ i:: BSUnicode("ģ") Else If A_PriorHotkey = <^>! ; punkt darber BSUnicode("ġ") - Else send g + Else sendinput {blind}g Return o:: @@ -275,14 +258,22 @@ o:: BSUnicode("ƒ") Else If A_PriorHotkey = <^>! ; punkt darber BSUnicode("ḟ") - Else send f + Else sendinput {blind}f Return -p::send q -::send -+::send ~ ; tilde, tot +p::sendinput {blind}q +::sendinput {blind} + ++::Unicode("˜") ; tilde, tot + a:: - If A_PriorHotkey = #^+ ; Diaerese + If A_PriorHotkey = ^ ; circumflex + BSUnicode("û") + Else If A_PriorHotkey = ; akut + BSUnicode("ú") + Else If A_PriorHotkey = + ; grave + BSUnicode("ù") + Else If A_PriorHotkey = #^+ ; Diaerese Send, {bs} Else If A_PriorHotkey = #^++ ; doppelakut BSUnicode("ű") @@ -297,11 +288,17 @@ a:: Else If A_PriorHotkey = + ; tilde BSUnicode("ũ") Else - send u + sendinput {blind}u Return s:: - If A_PriorHotkey = #^+ ; Diaerese + If A_PriorHotkey = ^ ; circumflex + BSUnicode("î") + Else If A_PriorHotkey = ; akut + BSUnicode("í") + Else If A_PriorHotkey = + ; grave + BSUnicode("ì") + Else If A_PriorHotkey = #^+ ; Diaerese Send, {bs} Else If A_PriorHotkey = ++ ; macron BSUnicode("ī") @@ -314,12 +311,18 @@ s:: Else If A_PriorHotkey = <^>! ; (ohne) punkt darber BSUnicode("ı") Else - Send i + sendinput {blind}i Return d:: - If A_PriorHotkey = #^+ ; Diaerese - Send {bs} + If A_PriorHotkey = ^ ; circumflex + BSUnicode("â") + Else If A_PriorHotkey = ; akut + BSUnicode("á") + Else If A_PriorHotkey = + ; grave + BSUnicode("à") + Else If A_PriorHotkey = #^+ ; Diaerese + send {bs} Else If A_PriorHotkey = <^>!+ ; Ring Send {bs} Else If A_PriorHotkey = + ; tilde @@ -331,11 +334,17 @@ d:: Else If A_PriorHotkey = #^^ ; brevis BSUnicode("ă") Else - Send a + sendinput {blind}a Return f:: - If A_PriorHotkey = #^+ ; Diaerese + If A_PriorHotkey = ^ ; circumflex + BSUnicode("ê") + Else If A_PriorHotkey = ; akut + BSUnicode("é") + Else If A_PriorHotkey = + ; grave + BSUnicode("è") + Else If A_PriorHotkey = #^+ ; Diaerese Send, {bs} Else If A_PriorHotkey = #^+ ; ogonek BSUnicode("ę") @@ -348,11 +357,17 @@ f:: Else If A_PriorHotkey = <^>! ; punkt darber BSUnicode("ė") Else - Send e + sendinput {blind}e Return g:: - If A_PriorHotkey = #^+ ; Diaerese + If A_PriorHotkey = ^ ; circumflex + BSUnicode("ô") + Else If A_PriorHotkey = ; akut + BSUnicode("ó") + Else If A_PriorHotkey = + ; grave + BSUnicode("ò") + Else If A_PriorHotkey = #^+ ; Diaerese Send, {bs} Else If A_PriorHotkey = + ; tilde BSUnicode("õ") @@ -365,7 +380,7 @@ g:: Else If A_PriorHotkey = #^^ ; brevis BSUnicode("ŏ") Else - send o + sendinput {blind}o Return h:: @@ -382,7 +397,7 @@ h:: Else If A_PriorHotkey = <^>!+^ ; punkt darunter BSUnicode("ṣ") Else - send s + sendinput {blind}s Return j:: @@ -397,7 +412,7 @@ j:: Else If A_PriorHotkey = <^>! ; punkt darber BSUnicode("ṅ") Else - send n + sendinput {blind}n Return k:: @@ -412,7 +427,7 @@ k:: Else If A_PriorHotkey = <^>!+^ ; punkt darunter BSUnicode("ṛ") Else - send r + sendinput {blind}r Return l:: @@ -427,7 +442,7 @@ l:: Else If A_PriorHotkey = <^>!+^ ; punkt darunter BSUnicode("ṭ") Else - send t + sendinput {blind}t Return :: @@ -442,29 +457,31 @@ Return Else If A_PriorHotkey = <^>!+^ ; punkt darunter BSUnicode("ḍ") Else - send d + sendinput {blind}d Return :: If A_PriorHotkey = #^+ ; Diaerese Send {bs} + Else If A_PriorHotkey = ; akut + BSUnicode("ý") Else If A_PriorHotkey = ^ ; circumflex BSUnicode("ŷ") Else - send y + sendinput {blind}y Return ;SC02B (#) wird zu Mod3 ;SC056 (<) wird zu Mod5 -y::send -x::send -c::send +y::sendinput {blind} +x::sendinput {blind} +c::sendinput {blind} v:: If A_PriorHotkey = <^>! ; punkt darber BSUnicode("ṗ") Else - send p + sendinput {blind}p Return b:: @@ -477,14 +494,14 @@ b:: Else If A_PriorHotkey = <^>! ; punkt darber BSUnicode("ż") Else - Send z + sendinput {blind}z Return n:: If A_PriorHotkey = <^>! ; punkt darber BSUnicode("ḃ") Else - send b + sendinput {blind}b Return m:: @@ -493,7 +510,7 @@ m:: Else If A_PriorHotkey = <^>!+^ ; punkt darunter BSUnicode("ṃ") Else - send m + sendinput {blind}m Return ,::send `, @@ -503,12 +520,13 @@ Return If A_PriorHotkey = ^ ; circumflex BSUnicode("ĵ") Else - send j + sendinput {blind}j Return ;2. Ebene (Shift) ;--------- +; +^::Unicode("ˇ") ; caron, tot +1::send @@ -522,14 +540,14 @@ Return +9::send +0::send +::Unicode("–") ; Ged -+::send `` ++::send ``{space} -+q::send X ++q::sendinput {blind}X +w:: If A_PriorHotkey = <^>!+^ ; punkt darunter BSUnicode("Ṿ") Else - send V + sendinput {blind}V Return +e:: @@ -546,7 +564,7 @@ Return Else If A_PriorHotkey = <^>!+^ ; punkt darunter BSUnicode("Ḷ") Else - send L + sendinput {blind}L return +r:: @@ -561,14 +579,14 @@ return Else If A_PriorHotkey = <^>! ; punkt darber BSUnicode("Ċ") Else - Send C + sendinput {blind}C Return +t:: If A_PriorHotkey = ^ ; circumflex BSUnicode("Ŵ") Else - send W + sendinput {blind}W Return +z:: @@ -577,7 +595,7 @@ Return Else If A_PriorHotkey = <^>!+^ ; punkt darunter BSUnicode("Ḳ") Else - send K + sendinput {blind}K Return +u:: @@ -589,7 +607,7 @@ Return BSUnicode("Ḣ") Else If A_PriorHotkey = <^>!+^ ; punkt darunter BSUnicode("Ḥ") - Else send H + Else sendinput {blind}H Return +i:: @@ -601,7 +619,7 @@ Return BSUnicode("Ģ") Else If A_PriorHotkey = <^>! ; punkt darber BSUnicode("Ġ") - Else send G + Else sendinput {blind}G Return +o:: @@ -609,16 +627,22 @@ Return BSUnicode("₣") Else If A_PriorHotkey = <^>! ; punkt darber BSUnicode("Ḟ") - Else send F + Else sendinput {blind}F Return -+p::send Q ++p::sendinput {blind}Q +::send SS ; wird versal- ++::Unicode("ˉ") ; macron, tot +a:: - If A_PriorHotkey = #^+ ; Diaerese + If A_PriorHotkey = ^ ; circumflex + BSUnicode("Û") + Else If A_PriorHotkey = ; akut + BSUnicode("Ú") + Else If A_PriorHotkey = + ; grave + BSUnicode("Ù") + Else If A_PriorHotkey = #^+ ; Diaerese Send, {bs} Else If A_PriorHotkey = <^>!+ ; Ring BSUnicode("Ů") @@ -637,11 +661,17 @@ Return Else If A_PriorHotkey = + ; tilde BSUnicode("Ũ") Else - send U + sendinput {blind}U Return +s:: - If A_PriorHotkey = #^+ ; Diaerese + If A_PriorHotkey = ^ ; circumflex + BSUnicode("Î") + Else If A_PriorHotkey = ; akut + BSUnicode("Í") + Else If A_PriorHotkey = + ; grave + BSUnicode("Ì") + Else If A_PriorHotkey = #^+ ; Diaerese Send, {bs} Else If A_PriorHotkey = ++ ; macron BSUnicode("Ī") @@ -654,12 +684,18 @@ Return Else If A_PriorHotkey = <^>! ; punkt darber BSUnicode("İ") Else - Send I + sendinput {blind}I Return +d:: - If A_PriorHotkey = #^+ ; Diaerese - Send {bs} + If A_PriorHotkey = ^ ; circumflex + BSUnicode("Â") + Else If A_PriorHotkey = ; akut + BSUnicode("Á") + Else If A_PriorHotkey = + ; grave + BSUnicode("À") + Else If A_PriorHotkey = #^+ ; Diaerese + send {bs} Else If A_PriorHotkey = + ; tilde BSUnicode("Ã") Else If A_PriorHotkey = <^>!+ ; Ring @@ -671,41 +707,53 @@ Return Else If A_PriorHotkey = #^+ ; ogonek BSUnicode("Ą") Else - Send A + sendinput {blind}A Return +f:: - If A_PriorHotkey = #^+ ; Diaerese + If A_PriorHotkey = ^ ; circumflex + BSUnicode("Ê") + Else If A_PriorHotkey = ; akut + BSUnicode("É") + Else If A_PriorHotkey = + ; grave + BSUnicode("È") + Else If A_PriorHotkey = #^+ ; Diaerese Send, {bs} - Else If A_PriorHotkey = +^ ; caron + Else If A_PriorHotkey = +^ ; caron BSUnicode("Ě") - Else If A_PriorHotkey = ++ ; macron + Else If A_PriorHotkey = ++ ; macron BSUnicode("Ē") - Else If A_PriorHotkey = #^^ ; brevis + Else If A_PriorHotkey = #^^ ; brevis BSUnicode("Ĕ") - Else If A_PriorHotkey = #^+ ; ogonek + Else If A_PriorHotkey = #^+ ; ogonek BSUnicode("Ę") - Else If A_PriorHotkey = <^>! ; punkt darber + Else If A_PriorHotkey = <^>! ; punkt darber BSUnicode("Ė") Else - Send E + sendinput {blind}E Return +g:: - If A_PriorHotkey = <^>!+ ; Schrgstrich + If A_PriorHotkey = ^ ; circumflex + BSUnicode("Ô") + Else If A_PriorHotkey = ; akut + BSUnicode("Ó") + Else If A_PriorHotkey = + ; grave + BSUnicode("Ò") + Else If A_PriorHotkey = <^>!+ ; Schrgstrich BSUnicode("Ø") - Else If A_PriorHotkey = + ; tilde + Else If A_PriorHotkey = + ; tilde BSUnicode("Õ") - Else If A_PriorHotkey = #^++ ; doppelakut + Else If A_PriorHotkey = #^++ ; doppelakut BSUnicode("Ő") - Else If A_PriorHotkey = #^+ ; Diaerese - Send {bs} - Else If A_PriorHotkey = ++ ; macron + Else If A_PriorHotkey = #^+ ; Diaerese + send {bs} + Else If A_PriorHotkey = ++ ; macron BSUnicode("Ō") - Else If A_PriorHotkey = #^^ ; brevis + Else If A_PriorHotkey = #^^ ; brevis BSUnicode("Ŏ") Else - send O + sendinput {blind}O Return +h:: @@ -722,7 +770,7 @@ Return Else If A_PriorHotkey = <^>!+^ ; punkt darunter BSUnicode("Ṣ") Else - send S + sendinput {blind}S Return +j:: @@ -737,7 +785,7 @@ Return Else If A_PriorHotkey = <^>! ; punkt darber BSUnicode("Ṅ") Else - send N + sendinput {blind}N Return +k:: @@ -752,7 +800,7 @@ Return Else If A_PriorHotkey = <^>!+^ ; punkt darunter BSUnicode("Ṛ") Else - send R + sendinput {blind}R Return +l:: @@ -767,7 +815,7 @@ Return Else If A_PriorHotkey = <^>!+^ ; punkt darunter BSUnicode("Ṭ") Else - send T + sendinput {blind}T Return @@ -782,27 +830,29 @@ Return BSUnicode("Ḋ") Else If A_PriorHotkey = <^>!+^ ; punkt darunter BSUnicode("Ḍ") - Else send D + Else sendinput {blind}D Return +:: - If A_PriorHotkey = #^+ ; Diaerese + If A_PriorHotkey = ; akut + BSUnicode("Ý") + Else If A_PriorHotkey = #^+ ; Diaerese Send {bs} - Else If A_PriorHotkey = ^ ; circumflex + Else If A_PriorHotkey = ^ ; circumflex BSUnicode("Ŷ") Else - send Y + sendinput {blind}Y Return -+y::send -+x::send -+c::send ++y::sendinput {blind} ++x::sendinput {blind} ++c::sendinput {blind} +v:: If A_PriorHotkey = <^>! ; punkt darber BSUnicode("Ṗ") Else - send P + sendinput {blind}P Return +b:: @@ -813,14 +863,14 @@ Return Else If A_PriorHotkey = <^>! ; punkt darber BSUnicode("Ż") Else - send Z + sendinput {blind}Z Return +n:: If A_PriorHotkey = <^>! ; punkt darber BSUnicode("Ḃ") Else - send B + sendinput {blind}B Return +m:: @@ -829,7 +879,7 @@ Return Else If A_PriorHotkey = <^>!+^ ; punkt darunter BSUnicode("Ṃ") Else - send M + sendinput {blind}M Return +,::return @@ -839,7 +889,7 @@ Return If A_PriorHotkey = ^ ; circumflex BSUnicode("Ĵ") Else - send J + sendinput {blind}J Return @@ -985,7 +1035,7 @@ Return #^+v::Unicode("π") ;pi #^+b::Unicode("ζ") ;zeta #^+n::Unicode("β") ;beta -#^+m::Unicode("μ") ;mu +#^+m::Unicode("µ") ;micro, mu wre μ #^+,::Unicode("ϑ") ;vartheta? #^+.::Unicode("θ") ;theta #^+-::return @@ -1129,7 +1179,7 @@ Return ^o::send ^f ^p::send ^q ^::send ^ -^+::send ^+ ;z.B. Firefox Schrift grer +^+::send ^{+} ;z.B. Firefox Schrift grer ^a::send ^u ^s::send ^i @@ -1414,20 +1464,40 @@ Return ; ------------------------------------ Unicode(code) - { - saved_clipboard := ClipboardAll - Transform, Clipboard, Unicode, %code% - send ^v - Clipboard := saved_clipboard - } + { + saved_clipboard := ClipboardAll + Transform, Clipboard, Unicode, %code% + send ^v + Clipboard := saved_clipboard + } BSUnicode(code) - { - saved_clipboard := ClipboardAll - Transform, Clipboard, Unicode, %code% - send {bs}^v - Clipboard := saved_clipboard - } + { + saved_clipboard := ClipboardAll + Transform, Clipboard, Unicode, %code% + send {bs}^v + Clipboard := saved_clipboard + } + +SendUnicodeChar(charCode) + { + VarSetCapacity(ki, 28 * 2, 0) + + EncodeInteger(&ki + 0, 1) + EncodeInteger(&ki + 6, charCode) + EncodeInteger(&ki + 8, 4) + EncodeInteger(&ki +28, 1) + EncodeInteger(&ki +34, charCode) + EncodeInteger(&ki +36, 4|2) + + DllCall("SendInput", "UInt", 2, "UInt", &ki, "Int", 28) + } + +EncodeInteger(ref, val) + { + DllCall("ntdll\RtlFillMemoryUlong", "Uint", ref, "Uint", 4, "Uint", val) + } + ; ------------------------------------ -- cgit v1.2.3