From 1ae6fb0f9562cca1849d1ca20688655c360988ae Mon Sep 17 00:00:00 2001 From: stmayer Date: Sat, 14 Jun 2008 12:48:46 +0000 Subject: =?UTF-8?q?ahk-Treiber:=20iota=20geht,=20AltGr=20macht=20keine=20P?= =?UTF-8?q?robleme=20mehr,=20Shift+Mod4=20markiert=20ahk-mod-test=20gel?= =?UTF-8?q?=C3=B6scht,=20da=20richtiger=20Treiber=20nun=20angepasst=20Read?= =?UTF-8?q?me=20aktualisiert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.neo-layout.org@527 b9310e46-f624-0410-8ea1-cfbb3a30dc96 --- windows/autohotkey/README.txt | 11 +- windows/autohotkey/neo20-all-in-one.ahk | 17 +- windows/autohotkey/neo20-all-in-one.exe | Bin 222700 -> 223422 bytes windows/autohotkey/neo20_mod-test.ahk | 2210 ------------------------------- 4 files changed, 14 insertions(+), 2224 deletions(-) delete mode 100644 windows/autohotkey/neo20_mod-test.ahk diff --git a/windows/autohotkey/README.txt b/windows/autohotkey/README.txt index 4b4c207..6742353 100644 --- a/windows/autohotkey/README.txt +++ b/windows/autohotkey/README.txt @@ -1,4 +1,4 @@ -Version 24.02.2008 +Version 14.06.2008 == Installation == === Direkte Installation === @@ -7,17 +7,12 @@ speichern (am besten auf dem Desktop z.B.). Danach einen Doppelklick auf diese .exe-Datei und NEO steht in voller Funktionalität zur Verfügung! Das alles geht ohne Admin-Rechte und ist auf jedem Rechner sofort ausführbar. Achtung: Da sich NEO in der Entwicklung befindet, kann es vorkommen, dass die -exe-Datei gegenüber der Datei neo20-all-in-one.ahk leicht veraltet sein kann. +exe-Datei gegenüber der Datei neo20-all-in-one.ahk leicht veraltet ist. Entwickler sollten daher Autohotkey selbst runterladen, wie unten beschrieben. Um kurzzeitig zu QWERTZ zu wechseln, kann mit Shift+Pause das Skript pausiert werden. -Momentan befindet sich in der Testphase, ob die 6. Ebene über Shift+Mod4 oder -über Mod3+Mod4 angesprochen werden soll (Shift+Mod4 zum Markieren bleibt -erhalten). Die Datei neo20_mod-test.ahk spricht die 6. Ebene über Mod3+Mod4 an, -ist jedoch nicht aktuell. - === Autohotkey herunter laden === Man braucht als erstes das Programm namens »autohotkey« (http://www.autohotkey.com/download/AutohotkeyInstall.exe). @@ -52,7 +47,7 @@ AltTab reagiert hingegen wie gewohnt. Bisher reagieren nur die Buchstaben der 1. und 2. Ebene richtig auf CapsLock (also immer groß schreiben – CapsLock erreicht man unter Neo, wenn -man erst die rechte und dann die linke Mod3-Tasten gleichzeitig drückt). +man beide Shift-Tasten gleichzeitig drückt). == Ziffernblock == Der Ziffernblock reagiert nicht auf Tastenkombinationen mit Strg, Alt usw. diff --git a/windows/autohotkey/neo20-all-in-one.ahk b/windows/autohotkey/neo20-all-in-one.ahk index 3756d9c..610a8c5 100644 --- a/windows/autohotkey/neo20-all-in-one.ahk +++ b/windows/autohotkey/neo20-all-in-one.ahk @@ -11,13 +11,14 @@ - Alt+Tab+Shift sollte Alt+Tab umkehrt - Testen ob die Capslocklösung (siehe *1:: ebene 1) auch für Numpad gebraucht wird - Sind Ebenen vom Touchpad noch richtig? - - AltGr wird von Programmen wie Wort und Eclipse oft abgefangen :-( - - iota geht nicht Ideen: - Symbol ändern (Neo-Logo abwarten) - bei Ebene 4 rechte Hand (Numpad) z.B. Numpad5 statt 5 senden CHANGEHISTORY: - Aktuelle Revision (von Matthias Berg): + Aktuelle Reversion (von Matthias Berg): + - AltGr Problem hoffentlich behoben + - Umschalt+Mod4 Bug behoben + Revision 526 (von Matthias Berg): - Ebenen 1 bis 4 ausschalten per Umschalter siehe erste Codezeile nurEbenenFuenfUndSechs = 0 - Mod4-Lock durch Mod4+Mod4 @@ -50,7 +51,8 @@ /****************** Globale Schalter * -******************/ +***************** +*/ ; Sollen Ebenen 1-4 ignoriert werden? (kann z.B. vom dll Treiber übernommen werden) Ja = 1, Nein = 0 nurEbenenFuenfUndSechs = 0 @@ -179,6 +181,9 @@ IsMod4Locked := 0 IsMod4Locked = 1 } return +*SC138::return ; Damit AltGr nicht extra etwas schickt und als stiller Modifier geht. + + /* ; das folgende wird seltsamerweise nicht gebraucht :) SC138 & *<:: if (IsMod4Locked) @@ -192,6 +197,7 @@ SC138 & *<:: IsMod4Locked = 1 } return + */ /* @@ -1588,7 +1594,6 @@ return } else if Ebene = 5 { - MsgBox iota SendUnicodeChar(0x03B9) ; iota CompKey := "" } @@ -3507,7 +3512,7 @@ EbeneAktualisieren() if ( IsMod4Pressed() ) { ; Umschald UND Mod4 NICHT Mod3 ; Ebene 7 impliziert Ebene 4 - Ebene = 6 + Ebene = 4 } else { ; Umschald NICHT Mod3 NICHT Mod4 diff --git a/windows/autohotkey/neo20-all-in-one.exe b/windows/autohotkey/neo20-all-in-one.exe index b261056..6adab61 100644 Binary files a/windows/autohotkey/neo20-all-in-one.exe and b/windows/autohotkey/neo20-all-in-one.exe differ diff --git a/windows/autohotkey/neo20_mod-test.ahk b/windows/autohotkey/neo20_mod-test.ahk deleted file mode 100644 index bb7b736..0000000 --- a/windows/autohotkey/neo20_mod-test.ahk +++ /dev/null @@ -1,2210 +0,0 @@ -/* - Titel: NEO 2.0 beta Autohotkey-Treiber - $Revision: 483 $ - $Date: 2008-04-15 12:53:09 +0200 (Di, 15 Apr 2008) $ - Autor: Stefan Mayer - Basiert auf: neo20-all-in-one.ahk vom 29.06.2007 - - TODO: - ausgiebig testen... - - Menü des Tasksymbols - - Bessere Lösung für das leeren von PriorDeadKey finden, damit die Sondertasten - nicht mehr abgefangen werden müssen. - - Ebene 4 und 5 tauschen (im Programmcode, in der Doku ists schon) - - CapsLock auf 1. und 2. Ebene einbauen: - Die Buchstaben reagieren richtig auf CapsLock, da hier "sendinput {blind}" - verwendet wird. Bei anderen Tasten muss CapsLock in der ersten und zweiten Ebene - explizit abgefragt werden. - (Lässt sich das elegant in eine Funktion auslagern?) - |------------------| - | - Compose-Taste | - |------------------| - Ideen: - Symbol ändern (Neo-Logo abwarten) - - bei Ebene 4 rechte Hand (Numpad) z.B. Numpad5 statt 5 senden - CHANGES: - Kein Parsen über die Zwischenablage mehr - - Vista-kompatibel - - Ebene 6 über Mod3+Mod4 -*/ - -; aus Noras script kopiert: -#usehook on -#singleinstance force -#LTrim - ; Quelltext kann eingerückt werden, - ; msgbox ist trotzdem linksbündig - -SendMode Input -SetTitleMatchMode 2 - -;name = NEO 2.0 -;enable = Aktiviere %name% -;disable = Deaktiviere %name% - -; Überprüfung auf deutsches Tastaturlayout -; ---------------------------------------- - -regread, inputlocale, HKEY_CURRENT_USER, Keyboard Layout\Preload, 1 -regread, inputlocalealias, HKEY_CURRENT_USER - , Keyboard Layout\Substitutes, %inputlocale% -if inputlocalealias <> - inputlocale = %inputlocalealias% -if inputlocale <> 00000407 -{ - suspend - regread, inputlocale, HKEY_LOCAL_MACHINE - , SYSTEM\CurrentControlSet\Control\Keyboard Layouts\%inputlocale% - , Layout Text - msgbox, 48, Warnung!, - ( - Nicht kompatibles Tastaturlayout: - `t%inputlocale% - `nDas deutsche QWERTZ muss als Standardlayout eingestellt - sein, damit %name% wie erwartet funktioniert. - `nÄndern Sie die Tastatureinstellung unter - `tSystemsteuerung - `t-> Regions- und Sprachoptionen - `t-> Sprachen - `t-> Details... `n - ) - exitapp -} - -/* - Variablen initialisieren -*/ - -Ebene = 1 -PriorDeadKey := "" - - -/* - ------------------------------------------------------ - Modifier - ------------------------------------------------------ -*/ - -; CapsLock durch Mod3+Mod3 -*#:: -*CapsLock:: - if GetKeyState("#","P") and GetKeyState("CapsLock","P") - { - if GetKeyState("CapsLock","T") - { - setcapslockstate, off - } - else - { - setcapslockstate, on - } - } -return - -; KP_Decimal durch Mod4+Mod4 -*<:: -*SC138:: - if GetKeyState("<","P") and GetKeyState("SC138","P") - { - send {numpaddot} - } - return - - -/* - Ablauf bei toten Tasten: - 1. Ebene Aktualisieren - 2. Abhängig von der Variablen "Ebene" Zeichen ausgeben und die Variable "PriorDeadKey" setzen - - Ablauf bei "lebenden" (sagt man das?) Tasten: - 1. Ebene Aktualisieren - 2. Abhängig von den Variablen "Ebene" und "PriorDeadKey" Zeichen ausgeben - 3. "PriorDeadKey" mit leerem String überschreiben - - ------------------------------------------------------ - Reihe 1 - ------------------------------------------------------ -*/ - -*^:: - EbeneAktualisieren() - if Ebene = 1 - { - SendUnicodeChar(0x02C6) ; circumflex, tot - PriorDeadKey := "c1" - } - else if Ebene = 2 - { - SendUnicodeChar(0x02C7) ; caron, tot - PriorDeadKey := "c2" - } - else if Ebene = 3 - { - SendUnicodeChar(0x02D8) ; brevis - PriorDeadKey := "c3" - } - else if Ebene = 4 - { - send - ; querstrich, tot - PriorDeadKey := "c4" - } - else if Ebene = 5 - { - SendUnicodeChar(0x00B7) ; Mittenpunkt, tot - PriorDeadKey := "c5" - } - else if Ebene = 7 - { - Send . ; punkt darunter (colon) - PriorDeadKey := "c6" - } -return - -*1:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex 1 - BSSendUnicodeChar(0x00B9) - Else - send {blind}1 - } - else if Ebene = 2 - send ° - else if Ebene = 4 - SendUnicodeChar(0x2640) ; Piktogramm weiblich - else if Ebene = 5 - SendUnicodeChar(0x2022) ; bullet - else if Ebene = 7 - Send ¬ - PriorDeadKey := "" -return - -*2:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x00B2) - Else - send {blind}2 - } - else if Ebene = 2 - SendUnicodeChar(0x2116) ; numero - else if Ebene = 4 - SendUnicodeChar(0x26A5) ; Piktogramm Zwitter - else if Ebene = 5 - SendUnicodeChar(0x2023) ; aufzaehlungspfeil - else if Ebene = 7 - SendUnicodeChar(0x2228) ; logisch oder - PriorDeadKey := "" -return - -*3:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x00B3) - Else - send {blind}3 - } - else if Ebene = 2 - send § - else if Ebene = 4 - SendUnicodeChar(0x2642) ; Piktogramm männlich - else if Ebene = 7 - SendUnicodeChar(0x2227) ; logisch und - PriorDeadKey := "" -return - -*4:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x2074) - Else - send {blind}4 - } - else if Ebene = 2 - send » - else if Ebene = 3 - send › - else if Ebene = 5 - Send {PgUp} ; Prev - else if Ebene = 6 - Send +{Prev} - else if Ebene = 7 - SendUnicodeChar(0x22A5) ; Up Tack - PriorDeadKey := "" -return - -*5:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x2075) - Else - send {blind}5 - } - else if Ebene = 2 - send « - else if Ebene = 3 - send ‹ - else if Ebene = 7 - SendUnicodeChar(0x2221) ; gemessener Winkel - PriorDeadKey := "" -return - -*6:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x2076) - Else - send {blind}6 - } - else if Ebene = 2 - send $ - else if Ebene = 3 - send £ - else if Ebene = 5 - send ¤ - else if Ebene = 7 - SendUnicodeChar(0x2225) ; parallel zu - PriorDeadKey := "" -return - -*7:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x2077) - Else - send {blind}7 - } - else if Ebene = 2 - send € - else if Ebene = 3 - send ¢ - else if Ebene = 4 - SendUnicodeChar(0x03F0) ; varkappa - else if Ebene = 5 - send ¥ - else if Ebene = 7 - SendUnicodeChar(0x2209) ; nicht Element von - PriorDeadKey := "" -return - -*8:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x2078) - Else - send {blind}8 - } - else if Ebene = 2 - send „ - else if Ebene = 3 - send ‚ - else if Ebene = 5 - Send / - else if Ebene = 7 - SendUnicodeChar(0x2204) ; Nicht-Existenzquantor - PriorDeadKey := "" -return - -*9:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x2079) - Else - send {blind}9 - } - else if Ebene = 2 - send “ - else if Ebene = 3 - send ‘ - else if Ebene = 5 - Send * - else if Ebene = 7 - SendUnicodeChar(0x2226) ; Nicht parallel zu - PriorDeadKey := "" -return - -*0:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x2070) - Else - send {blind}0 - } - else if Ebene = 2 - send ” - else if Ebene = 3 - send ’ - else if Ebene = 5 - Send - - else if Ebene = 7 - SendUnicodeChar(0x2205) ; Leere Menge - PriorDeadKey := "" -return - -*ß:: - EbeneAktualisieren() - if Ebene = 1 - send {blind}- ; Bind - else if Ebene = 2 - SendUnicodeChar(0x2013) ; Ged - else if Ebene = 3 - SendUnicodeChar(0x2014) - else if Ebene = 4 - SendUnicodeChar(0x2011) - else if Ebene = 7 - SendUnicodeChar(0x254C) - PriorDeadKey := "" -return - -*´:: - EbeneAktualisieren() - if Ebene = 1 - { - send {´}{space} ; akut, tot - PriorDeadKey := "a1" - } - else if Ebene = 2 - { - send ``{space} - PriorDeadKey := "a2" - } - else if Ebene = 3 - { - send ¸ ; cedilla - PriorDeadKey := "a3" - } - else if Ebene = 4 - { - SendUnicodeChar(0x02DB) ; ogonek - PriorDeadKey := "a4" - } - else if Ebene = 5 - { - SendUnicodeChar(0x02D9) ; punkt oben drüber - PriorDeadKey := "a5" - } - else if Ebene = 7 - { - SendUnicodeChar(0x02DA) ; ring obendrauf - PriorDeadKey := "a6" - } -return - - -/* - ------------------------------------------------------ - Reihe 2 - ------------------------------------------------------ -*/ - -*q:: - EbeneAktualisieren() - if Ebene = 1 - sendinput {blind}x - else if Ebene = 2 - sendinput {blind}X - else if Ebene = 3 - send @ - else if Ebene = 4 - SendUnicodeChar(0x03BE) ;xi - else if Ebene = 5 - send @ ; Redundanz - else if Ebene = 7 - SendUnicodeChar(0x039E) ; Xi - PriorDeadKey := "" -return - - -*w:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c6") ; punkt darunter - BSSendUnicodeChar(0x1E7F) - Else - sendinput {blind}v - } - else if Ebene = 2 - { - If (PriorDeadKey = "c6") ; punkt darunter - BSSendUnicodeChar(0x1E7E) - Else - sendinput {blind}V - } - else if Ebene = 3 - send _ - else if Ebene = 4 - SendUnicodeChar(0x03F5) ; varepsilon - else if Ebene = 5 - Send {Backspace} - else if Ebene = 7 - SendUnicodeChar(0x2259) ; estimates - PriorDeadKey := "" -return - - - -*e:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "t5") ; Schrägstrich - BSSendUnicodeChar(0x0142) - Else If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x013A) - Else If (PriorDeadKey = "c2") ; caron - BSSendUnicodeChar(0x013E) - Else If (PriorDeadKey = "a3") ; cedilla - BSSendUnicodeChar(0x013C) - Else If (PriorDeadKey = "c5") ; Mittenpunkt - BSSendUnicodeChar(0x0140) - Else If (PriorDeadKey = "c6") ; punkt darunter - BSSendUnicodeChar(0x1E37) - Else - sendinput {blind}l - } - else if Ebene = 2 - { - If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x0139) - Else If (PriorDeadKey = "c2") ; caron - BSSendUnicodeChar(0x013D) - Else If (PriorDeadKey = "a3") ; cedilla - BSSendUnicodeChar(0x013B) - Else If (PriorDeadKey = "t5") ; Schrägstrich - BSSendUnicodeChar(0x0141) - Else If (PriorDeadKey = "c5") ; Mittenpunkt - BSSendUnicodeChar(0x013F) - Else If (PriorDeadKey = "c6") ; punkt darunter - BSSendUnicodeChar(0x1E36) - Else - sendinput {blind}L - } - else if Ebene = 3 - send [ - else if Ebene = 4 - SendUnicodeChar(0x03BB) ;lambda - else if Ebene = 5 - Sendinput {Blind}{Up} - else if Ebene = 6 - Sendinput {Blind}+{Up} - else if Ebene = 7 - SendUnicodeChar(0x039B) ; Lambda - PriorDeadKey := "" -return - - -*r:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x0109) - Else If (PriorDeadKey = "c2") ; caron - BSSendUnicodeChar(0x010D) - Else If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x0107) - Else If (PriorDeadKey = "a3") ; cedilla - BSSendUnicodeChar(0x00E7) - Else If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x010B) - Else - sendinput {blind}c - } - else if Ebene = 2 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x0108) - Else If (PriorDeadKey = "c2") ; caron - BSSendUnicodeChar(0x010C) - Else If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x0106) - Else If (PriorDeadKey = "a3") ; cedilla - BSSendUnicodeChar(0x00E6) - Else If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x010A) - Else - sendinput {blind}C - } - else if Ebene = 3 - send ] - else if Ebene = 4 - SendUnicodeChar(0x03C7) ;chi - else if Ebene = 5 - Send {Tab} - else if Ebene = 6 - Send +{Tab} - else if Ebene = 7 - SendUnicodeChar(0x2102) ; Komplexe Zahlen - PriorDeadKey := "" -return - -*t:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x0175) - Else - sendinput {blind}w - } - else if Ebene = 2 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x0174) - Else - sendinput {blind}W - } - else if Ebene = 3 - send {^}{space} ; untot - else if Ebene = 4 - SendUnicodeChar(0x03C9) ; omega - else if Ebene = 5 - Send {Insert} - else if Ebene = 6 - Send +{Insert} - else if Ebene = 7 - SendUnicodeChar(0x03A9) ; Omega - PriorDeadKey := "" -return - -*z:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "a3") ; cedilla - BSSendUnicodeChar(0x0137) - Else If (PriorDeadKey = "c6") ; punkt darunter - BSSendUnicodeChar(0x1E33) - Else - sendinput {blind}k - } - else if Ebene = 2 - { - If (PriorDeadKey = "a3") ; cedilla - BSSendUnicodeChar(0x0136) - Else If (PriorDeadKey = "c6") ; punkt darunter - BSSendUnicodeChar(0x1E32) - Else - sendinput {blind}K - } - else if Ebene = 3 - sendraw ! - else if Ebene = 4 - SendUnicodeChar(0x03BA) ;kappa - else if Ebene = 5 - Send ¡ - else if Ebene = 7 - SendUnicodeChar(0x221A) ; Wurzelzeichen - PriorDeadKey := "" -return - -*u:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x0125) - Else If (PriorDeadKey = "c4") ; Querstrich - BSSendUnicodeChar(0x0127) - Else If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x1E23) - Else If (PriorDeadKey = "c6") ; punkt darunter - BSSendUnicodeChar(0x1E25) - Else sendinput {blind}h - } - else if Ebene = 2 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x0124) - Else If (PriorDeadKey = "c4") ; Querstrich - BSSendUnicodeChar(0x0126) - Else If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x1E22) - Else If (PriorDeadKey = "c6") ; punkt darunter - BSSendUnicodeChar(0x1E24) - Else sendinput {blind}H - } - else if Ebene = 3 - { - If (PriorDeadKey = "c4") ; Querstrich - BSSendUnicodeChar(0x2264) ; kleiner gleich - Else - send {blind}< - } - else if Ebene = 4 - SendUnicodeChar(0x03C8) ;psi - else if Ebene = 5 - Send 7 - else if Ebene = 7 - SendUnicodeChar(0x03A8) ; Psi - PriorDeadKey := "" -return - -*i:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x011D) - Else If (PriorDeadKey = "c3") ; brevis - BSSendUnicodeChar(0x011F) - Else If (PriorDeadKey = "a3") ; cedilla - BSSendUnicodeChar(0x0123) - Else If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x0121) - Else sendinput {blind}g - } - else if Ebene = 2 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x011C) - Else If (PriorDeadKey = "c3") ; brevis - BSSendUnicodeChar(0x011E) - Else If (PriorDeadKey = "a3") ; cedilla - BSSendUnicodeChar(0x0122) - Else If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x0120) - Else sendinput {blind}G - } - else if Ebene = 3 - { - If (PriorDeadKey = "c4") ; Querstrich - SendUnicodeChar(0x2265) ; größer gleich - Else - send > - } - else if Ebene = 4 - SendUnicodeChar(0x03B3) ;gamma - else if Ebene = 5 - Send 8 - else if Ebene = 7 - SendUnicodeChar(0x0393) ; Gamma - PriorDeadKey := "" -return - -*o:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "t5") ; durchgestrichen - BSSendUnicodeChar(0x0192) - Else If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x1E1F) - Else sendinput {blind}f - } - else if Ebene = 2 - { - If (PriorDeadKey = "t5") ; durchgestrichen - BSSendUnicodeChar(0x0191) - Else If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x1E1E) - Else sendinput {blind}F - } - else if Ebene = 3 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x2259) ; entspricht - Else If (PriorDeadKey = "t1") ; tilde - BSSendUnicodeChar(0x2245) ; ungefähr gleich - Else If (PriorDeadKey = "t5") ; Schrägstrich - BSSendUnicodeChar(0x2260) ; ungleich - Else If (PriorDeadKey = "c4") ; Querstrich - BSSendUnicodeChar(0x2261) ; identisch - Else If (PriorDeadKey = "c2") ; caron - BSSendUnicodeChar(0x225A) ; EQUIANGULAR TO - Else If (PriorDeadKey = "a6") ; ring drüber - BSSendUnicodeChar(0x2257) ; ring equal to - Else - send `= - } - else if Ebene = 4 - SendUnicodeChar(0x0278) ; latin small letter phi - else if Ebene = 5 - Send 9 - else if Ebene = 7 - SendUnicodeChar(0x03A6) ; Phi - PriorDeadKey := "" -return - -*p:: - EbeneAktualisieren() - if Ebene = 1 - sendinput {blind}q - else if Ebene = 2 - sendinput {blind}Q - else if Ebene = 3 - send {&} - else if Ebene = 4 - SendUnicodeChar(0x03C6) ; phi - else if Ebene = 5 - Send {+} - else if Ebene = 7 - SendUnicodeChar(0x211A) ; Rationale Zahlen - PriorDeadKey := "" -return - -*ü:: - EbeneAktualisieren() - if Ebene = 1 - if GetKeyState("CapsLock","T") - { - SendUnicodeChar(0x1E9E) ; versal-ß - } - else - { - send ß - } - else if Ebene = 2 - if GetKeyState("CapsLock","T") - { - send ß - } - else - { - SendUnicodeChar(0x1E9E) ; versal-ß - } - else if Ebene = 3 - SendUnicodeChar(0x017F) ; langes s - else if Ebene = 4 - SendUnicodeChar(0x03C2) ; varsigma - else if Ebene = 7 - SendUnicodeChar(0x2218) ; Ring Operator - PriorDeadKey := "" -return - - -*+:: - EbeneAktualisieren() - if Ebene = 1 - { - SendUnicodeChar(0x02DC) ; tilde, tot - PriorDeadKey := "t1" - } - else if Ebene = 2 - { - SendUnicodeChar(0x00AF) ; macron, tot - PriorDeadKey := "t2" - } - else if Ebene = 3 - { - SendUnicodeChar(0x00A8) ; Diaerese - PriorDeadKey := "t3" - } - else if Ebene = 4 - { - send " ;doppelakut - PriorDeadKey := "t4" - } - else if Ebene = 5 - { - SendUnicodeChar(0x002F) ; Schrägstrich, tot - PriorDeadKey := "t5" - } - else if Ebene = 7 - { - SendUnicodeChar(0x02CF) ; komma drunter, tot - PriorDeadKey := "t6" - } -return - - -/* - ------------------------------------------------------ - Reihe 3 - ------------------------------------------------------ -*/ - -*a:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x00FB) - Else If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x00FA) - Else If (PriorDeadKey = "a2") ; grave - BSSendUnicodeChar(0x00F9) - Else If (PriorDeadKey = "t3") ; Diaerese - Send, {bs}ü - Else If (PriorDeadKey = "t4") ; doppelakut - BSSendUnicodeChar(0x0171) - Else If (PriorDeadKey = "c3") ; brevis - BSSendUnicodeChar(0x016D) - Else If (PriorDeadKey = "t2") ; macron - BSSendUnicodeChar(0x016B) - Else If (PriorDeadKey = "a4") ; ogonek - BSSendUnicodeChar(0x0173) - Else If (PriorDeadKey = "a6") ; Ring - BSSendUnicodeChar(0x016F) - Else If (PriorDeadKey = "t1") ; tilde - BSSendUnicodeChar(0x0169) - Else If (PriorDeadKey = "c2") ; caron - BSSendUnicodeChar(0x01D4) - Else - sendinput {blind}u - } - else if Ebene = 2 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x00DB) - Else If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x00DA) - Else If (PriorDeadKey = "a2") ; grave - BSSendUnicodeChar(0x00D9) - Else If (PriorDeadKey = "t3") ; Diaerese - Send, {bs}Ü - Else If (PriorDeadKey = "a6") ; Ring - BSSendUnicodeChar(0x016E) - Else If (PriorDeadKey = "c3") ; brevis - BSSendUnicodeChar(0x016C) - Else If (PriorDeadKey = "t4") ; doppelakut - BSSendUnicodeChar(0x0170) - Else If (PriorDeadKey = "c2") ; caron - BSSendUnicodeChar(0x01D3) - Else If (PriorDeadKey = "t2") ; macron - BSSendUnicodeChar(0x016A) - Else If (PriorDeadKey = "a4") ; ogonek - BSSendUnicodeChar(0x0172) - Else If (PriorDeadKey = "t1") ; tilde - BSSendUnicodeChar(0x0168) - Else - sendinput {blind}U - } - else if Ebene = 3 - send \ - else if Ebene = 5 - Send {blind}{Home} - else if Ebene = 6 - Send {blind}+{Home} - else if Ebene = 7 - SendUnicodeChar(0x222E) ; Contour Integral - PriorDeadKey := "" -return - -*s:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x00EE) - Else If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x00ED) - Else If (PriorDeadKey = "a2") ; grave - BSSendUnicodeChar(0x00EC) - Else If (PriorDeadKey = "t3") ; Diaerese - Send, {bs}ï - Else If (PriorDeadKey = "t2") ; macron - BSSendUnicodeChar(0x012B) - Else If (PriorDeadKey = "c3") ; brevis - BSSendUnicodeChar(0x012D) - Else If (PriorDeadKey = "a4") ; ogonek - BSSendUnicodeChar(0x012F) - Else If (PriorDeadKey = "t1") ; tilde - BSSendUnicodeChar(0x0129) - Else If (PriorDeadKey = "a5") ; (ohne) punkt darüber - BSSendUnicodeChar(0x0131) - Else - sendinput {blind}i - } - else if Ebene = 2 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x00CE) - Else If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x00CD) - Else If (PriorDeadKey = "a2") ; grave - BSSendUnicodeChar(0x00CC) - Else If (PriorDeadKey = "t3") ; Diaerese - Send, {bs}Ï - Else If (PriorDeadKey = "t2") ; macron - BSSendUnicodeChar(0x012A) - Else If (PriorDeadKey = "c3") ; brevis - BSSendUnicodeChar(0x012C) - Else If (PriorDeadKey = "a4") ; ogonek - BSSendUnicodeChar(0x012E) - Else If (PriorDeadKey = "t1") ; tilde - BSSendUnicodeChar(0x0128) - Else If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x0130) - Else - sendinput {blind}I - } - else if Ebene = 3 - send `/ - else if Ebene = 4 - SendUnicodeChar(0x03B9) ;iota - else if Ebene = 5 - Sendinput {Blind}{Left} - else if Ebene = 6 - Sendinput {Blind}+{Left} - else if Ebene = 7 - sendUnicodeChar(0x222B) ; Integral - PriorDeadKey := "" -return - -*d:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x00E2) - Else If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x00E1) - Else If (PriorDeadKey = "a2") ; grave - BSSendUnicodeChar(0x00E0) - Else If (PriorDeadKey = "t3") ; Diaerese - send {bs}ä - Else If (PriorDeadKey = "a6") ; Ring - Send {bs}å - Else If (PriorDeadKey = "t1") ; tilde - BSSendUnicodeChar(0x00E3) - Else If (PriorDeadKey = "a4") ; ogonek - BSSendUnicodeChar(0x0105) - Else If (PriorDeadKey = "t2") ; macron - BSSendUnicodeChar(0x0101) - Else If (PriorDeadKey = "c3") ; brevis - BSSendUnicodeChar(0x0103) - Else - sendinput {blind}a - } - else if Ebene = 2 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x00C2) - Else If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x00C1) - Else If (PriorDeadKey = "a2") ; grave - BSSendUnicodeChar(0x00C0) - Else If (PriorDeadKey = "t3") ; Diaerese - send {bs}Ä - Else If (PriorDeadKey = "t1") ; tilde - BSSendUnicodeChar(0x00C3) - Else If (PriorDeadKey = "a6") ; Ring - Send {bs}Å - Else If (PriorDeadKey = "t2") ; macron - BSSendUnicodeChar(0x0100) - Else If (PriorDeadKey = "c3") ; brevis - BSSendUnicodeChar(0x0102) - Else If (PriorDeadKey = "a4") ; ogonek - BSSendUnicodeChar(0x0104) - Else - sendinput {blind}A - } - else if Ebene = 3 - sendraw { - else if Ebene = 4 - SendUnicodeChar(0x03B1) ;alpha - else if Ebene = 5 - Sendinput {Blind}{Down} - else if Ebene = 6 - Sendinput {Blind}+{Down} - else if Ebene = 7 - SendUnicodeChar(0x2200) ; For All - PriorDeadKey := "" -return - -*f:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x00EA) - Else If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x00E9) - Else If (PriorDeadKey = "a2") ; grave - BSSendUnicodeChar(0x00E8) - Else If (PriorDeadKey = "t3") ; Diaerese - Send, {bs}ë - Else If (PriorDeadKey = "a4") ; ogonek - BSSendUnicodeChar(0x0119) - Else If (PriorDeadKey = "t2") ; macron - BSSendUnicodeChar(0x0113) - Else If (PriorDeadKey = "c3") ; brevis - BSSendUnicodeChar(0x0115) - Else If (PriorDeadKey = "c2") ; caron - BSSendUnicodeChar(0x011B) - Else If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x0117) - Else - sendinput {blind}e - } - else if Ebene = 2 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x00CA) - Else If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x00C9) - Else If (PriorDeadKey = "a2") ; grave - BSSendUnicodeChar(0x00C8) - Else If (PriorDeadKey = "t3") ; Diaerese - Send, {bs}Ë - Else If (PriorDeadKey = "c2") ; caron - BSSendUnicodeChar(0x011A) - Else If (PriorDeadKey = "t2") ; macron - BSSendUnicodeChar(0x0112) - Else If (PriorDeadKey = "c3") ; brevis - BSSendUnicodeChar(0x0114) - Else If (PriorDeadKey = "a4") ; ogonek - BSSendUnicodeChar(0x0118) - Else If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x0116) - Else - sendinput {blind}E - } - else if Ebene = 3 - sendraw } - else if Ebene = 4 - SendUnicodeChar(0x03B5) ;epsilon - else if Ebene = 5 - Sendinput {Blind}{Right} - else if Ebene = 6 - Sendinput {Blind}+{Right} - else if Ebene = 7 - SendUnicodeChar(0x2203) ; Existensquantor - PriorDeadKey := "" -return - -*g:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x00F4) - Else If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x00F3) - Else If (PriorDeadKey = "a2") ; grave - BSSendUnicodeChar(0x00F2) - Else If (PriorDeadKey = "t3") ; Diaerese - Send, {bs}ö - Else If (PriorDeadKey = "t1") ; tilde - BSSendUnicodeChar(0x00F5) - Else If (PriorDeadKey = "t4") ; doppelakut - BSSendUnicodeChar(0x0151) - Else If (PriorDeadKey = "t5") ; Schrägstrich - BSSendUnicodeChar(0x00F8) - Else If (PriorDeadKey = "t2") ; macron - BSSendUnicodeChar(0x014D) - Else If (PriorDeadKey = "c3") ; brevis - BSSendUnicodeChar(0x014F) - Else - sendinput {blind}o - } - else if Ebene = 2 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x00D4) - Else If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x00D3) - Else If (PriorDeadKey = "a2") ; grave - BSSendUnicodeChar(0x00D2) - Else If (PriorDeadKey = "t5") ; Schrägstrich - BSSendUnicodeChar(0x00D8) - Else If (PriorDeadKey = "t1") ; tilde - BSSendUnicodeChar(0x00D5) - Else If (PriorDeadKey = "t4") ; doppelakut - BSSendUnicodeChar(0x0150) - Else If (PriorDeadKey = "t3") ; Diaerese - send {bs}Ö - Else If (PriorDeadKey = "t2") ; macron - BSSendUnicodeChar(0x014C) - Else If (PriorDeadKey = "c3") ; brevis - BSSendUnicodeChar(0x014E) - Else - sendinput {blind}O - } - else if Ebene = 3 - send * - else if Ebene = 4 - SendUnicodeChar(0x03C9) ;omega - else if Ebene = 5 - Send {blind}{End} - else if Ebene = 6 - Send {blind}+{End} - else if Ebene = 7 - SendUnicodeChar(0x2208) ; Element von - PriorDeadKey := "" -return - -*h:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x015D) - Else If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x015B) - Else If (PriorDeadKey = "c2") ; caron - BSSendUnicodeChar(0x0161) - Else If (PriorDeadKey = "a3") ; cedilla - BSSendUnicodeChar(0x015F) - Else If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x1E61) - Else If (PriorDeadKey = "c6") ; punkt darunter - BSSendUnicodeChar(0x1E63) - Else - sendinput {blind}s - } - else if Ebene = 2 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x015C) - Else If (PriorDeadKey = "c2") ; caron - BSSendUnicodeChar(0x0160) - Else If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x015A) - Else If (PriorDeadKey = "a3") ; cedilla - BSSendUnicodeChar(0x015E) - Else If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x1E60) - Else If (PriorDeadKey = "c6") ; punkt darunter - BSSendUnicodeChar(0x1E62) - Else - sendinput {blind}S - } - else if Ebene = 3 - send ? - else if Ebene = 4 - SendUnicodeChar(0x03C3) ;sigma - else if Ebene = 5 - Send ¿ - else if Ebene = 7 - SendUnicodeChar(0x03A3) ; Sigma - PriorDeadKey := "" -return - -*j:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x0144) - Else If (PriorDeadKey = "t1") ; tilde - BSSendUnicodeChar(0x00F1) - Else If (PriorDeadKey = "c2") ; caron - BSSendUnicodeChar(0x0148) - Else If (PriorDeadKey = "a3") ; cedilla - BSSendUnicodeChar(0x0146) - Else If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x1E45) - Else - sendinput {blind}n - } - else if Ebene = 2 - { - If (PriorDeadKey = "c2") ; caron - BSSendUnicodeChar(0x0147) - Else If (PriorDeadKey = "t1") ; tilde - BSSendUnicodeChar(0x00D1) - Else If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x0143) - Else If (PriorDeadKey = "a3") ; cedilla - BSSendUnicodeChar(0x0145) - Else If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x1E44) - Else - sendinput {blind}N - } - else if Ebene = 3 - send ( - else if Ebene = 4 - SendUnicodeChar(0x03BD) ;nu - else if Ebene = 5 - Send 4 - else if Ebene = 7 - SendUnicodeChar(0x2115) ; Natürliche Zahlen - PriorDeadKey := "" -return - -*k:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x0155) - Else If (PriorDeadKey = "c2") ; caron - BSSendUnicodeChar(0x0159) - Else If (PriorDeadKey = "a3") ; cedilla - BSSendUnicodeChar(0x0157) - Else If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x0E59) - Else If (PriorDeadKey = "c6") ; punkt darunter - BSSendUnicodeChar(0x1E5B) - Else - sendinput {blind}r - } - else if Ebene = 2 - { - If (PriorDeadKey = "c2") ; caron - BSSendUnicodeChar(0x0158) - Else If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x0154) - Else If (PriorDeadKey = "a3") ; cedilla - BSSendUnicodeChar(0x0156) - Else If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x1E58) - Else If (PriorDeadKey = "c6") ; punkt darunter - BSSendUnicodeChar(0x1E5A) - Else - sendinput {blind}R - } - else if Ebene = 3 - send ) - else if Ebene = 4 - SendUnicodeChar(0x03C1) ;rho - else if Ebene = 5 - Send 5 - else if Ebene = 7 - SendUnicodeChar(0x211D) ; Rationale Zahlen - PriorDeadKey := "" -return - -*l:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c2") ; caron - BSSendUnicodeChar(0x0165) - Else If (PriorDeadKey = "a3") ; cedilla - BSSendUnicodeChar(0x0163) - Else If (PriorDeadKey = "c4") ; Querstrich - BSSendUnicodeChar(0x0167) - Else If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x1E6B) - Else If (PriorDeadKey = "c6") ; punkt darunter - BSSendUnicodeChar(0x1E6D) - Else - sendinput {blind}t - } - else if Ebene = 2 - { - If (PriorDeadKey = "c2") ; caron - BSSendUnicodeChar(0x0164) - Else If (PriorDeadKey = "a3") ; cedilla - BSSendUnicodeChar(0x0162) - Else If (PriorDeadKey = "c4") ; Querstrich - BSSendUnicodeChar(0x0166) - Else If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x1E6A) - Else If (PriorDeadKey = "c6") ; punkt darunter - BSSendUnicodeChar(0x1E6C) - Else - sendinput {blind}T - } - else if Ebene = 3 - send {blind}- ; Bind - else if Ebene = 4 - SendUnicodeChar(0x03C4) ;tau - else if Ebene = 5 - Send 6 - else if Ebene = 7 - SendUnicodeChar(0x2202) ; partielle Ableitung - PriorDeadKey := "" -return - -*ö:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c4") ; Querstrich - BSSendUnicodeChar(0x0111) - Else If (PriorDeadKey = "t5") ; Schrägstrich - BSSendUnicodeChar(0x00F0) - Else If (PriorDeadKey = "c2") ; caron - BSSendUnicodeChar(0x010F) - Else If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x1E0B) - Else If (PriorDeadKey = "c6") ; punkt darunter - BSSendUnicodeChar(0x1E0D) - Else - sendinput {blind}d - } - else if Ebene = 2 - { - If (PriorDeadKey = "c4") ; Querstrich - BSSendUnicodeChar(0x0110) - Else If (PriorDeadKey = "t5") ; Schrägstrich - BSSendUnicodeChar(0x00D0) - Else If (PriorDeadKey = "c2") ; caron - BSSendUnicodeChar(0x010E) - Else If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x1E0A) - Else If (PriorDeadKey = "c6") ; punkt darunter - BSSendUnicodeChar(0x1E0D) - Else sendinput {blind}D - } - else if Ebene = 3 - send : - else if Ebene = 4 - SendUnicodeChar(0x03B4) ;delta - else if Ebene = 5 - Send `, - else if Ebene = 7 - SendUnicodeChar(0x0394) ; Delta - PriorDeadKey := "" -return - -*ä:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "t3") ; Diaerese - Send {bs}ÿ - Else If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x00FD) - Else If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x0177) - Else - sendinput {blind}y - } - else if Ebene = 2 - { - If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x00DD) - Else If (PriorDeadKey = "t3") ; Diaerese - Send {bs}Ÿ - Else If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x0176) - Else - sendinput {blind}Y - } - else if Ebene = 4 - SendUnicodeChar(0x03C5) ;upsilon - else if Ebene = 5 - SendUnicodeChar(0x2207) ; nabla - PriorDeadKey := "" -return - -;SC02B (#) wird zu Mod3 - - -/* - ------------------------------------------------------ - Reihe 4 - ------------------------------------------------------ -*/ - -;SC056 (<) wird zu Mod4 - -*y:: - EbeneAktualisieren() - if Ebene = 1 - sendinput {blind}ü - else if Ebene = 2 - sendinput {blind}Ü - else if Ebene = 3 - send {#} - else if Ebene = 5 - Send {Esc} - else if Ebene = 7 - SendUnicodeChar(0x221D) ; proportional zu - PriorDeadKey := "" -return - -*x:: - EbeneAktualisieren() - if Ebene = 1 - sendinput {blind}ö - else if Ebene = 2 - sendinput {blind}Ö - else if Ebene = 3 - send $ - else if Ebene = 5 - Send {Del} - else if Ebene = 6 - Send +{Del} - else if Ebene = 7 - SendUnicodeChar(0x2111) ; Black-Letter Capital I - PriorDeadKey := "" -return - -*c:: - EbeneAktualisieren() - if Ebene = 1 - sendinput {blind}ä - else if Ebene = 2 - sendinput {blind}Ä - else if Ebene = 3 - send | - else if Ebene = 4 - SendUnicodeChar(0x03B7) ;eta - else if Ebene = 5 - Send {PgDn} ; Next - else if Ebene = 6 - Send +{PgDn} - else if Ebene = 7 - SendUnicodeChar(0x211C) ; Black-Letter Capital I - PriorDeadKey := "" -return - -*v:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x1E57) - Else - sendinput {blind}p - } - else if Ebene = 2 - { - If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x1E56) - Else - sendinput {blind}P - } - else if Ebene = 3 - { - If (PriorDeadKey = "t1") ; tilde - BSSendUnicodeChar(0x2248) - Else - sendraw ~ - } - else if Ebene = 4 - SendUnicodeChar(0x03C0) ;pi - else if Ebene = 5 - Send {Enter} - else if Ebene = 7 - SendUnicodeChar(0x03A0) ; Pi - PriorDeadKey := "" -return - -*b:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c2") ; caron - BSSendUnicodeChar(0x017E) - Else If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x017A) - Else If (PriorDeadKey = "a5") ; punkt drüber - BSSendUnicodeChar(0x017C) - Else If (PriorDeadKey = "c6") ; punkt drunter - BSSendUnicodeChar(0x1E93) - Else - sendinput {blind}z - } - else if Ebene = 2 - { - If (PriorDeadKey = "c2") ; caron - BSSendUnicodeChar(0x017D) - Else If (PriorDeadKey = "a1") ; akut - BSSendUnicodeChar(0x0179) - Else If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x017B) - Else If (PriorDeadKey = "c6") ; punkt drunter - BSSendUnicodeChar(0x1E92) - Else - sendinput {blind}Z - } - else if Ebene = 3 - send ``{space} ; untot - else if Ebene = 4 - SendUnicodeChar(0x03B6) ;zeta - else if Ebene = 7 - SendUnicodeChar(0x2124) ; Ganze Zahlen - PriorDeadKey := "" -return - -*n:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x1E03) - Else - sendinput {blind}b - } - else if Ebene = 2 - { - If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x1E02) - Else - sendinput {blind}B - } - else if Ebene = 3 - send {blind}{+} - else if Ebene = 4 - SendUnicodeChar(0x03B2) ;beta - else if Ebene = 7 - SendUnicodeChar(0x21D2) ; daraus folgt (Implikation) - PriorDeadKey := "" -return - -*m:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x1E41) - Else If (PriorDeadKey = "c6") ; punkt darunter - BSSendUnicodeChar(0x1E43) - Else - sendinput {blind}m - } - else if Ebene = 2 - { - If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x1E40) - Else If (PriorDeadKey = "c6") ; punkt darunter - BSSendUnicodeChar(0x1E42) - Else - sendinput {blind}M - } - else if Ebene = 3 - send `% - else if Ebene = 4 - SendUnicodeChar(0x03BC) ;micro, mu wäre 0x00B5 - else if Ebene = 5 - Send 1 - else if Ebene = 7 - SendUnicodeChar(0x21D4) ; Äquivalenz - PriorDeadKey := "" -return - -*,:: - EbeneAktualisieren() - if Ebene = 1 - send {blind}, - else if Ebene = 3 - send ' - else if Ebene = 4 - SendUnicodeChar(0x03F1) ; varrho - else if Ebene = 5 - Send 2 - else if Ebene = 7 - SendUnicodeChar(0x21D0) ; Doppelpfeil nach links - PriorDeadKey := "" -return - -*.:: - EbeneAktualisieren() - if Ebene = 1 - send {blind}. - else if Ebene = 2 - SendUnicodeChar(0x2026) ; ellipse - else if Ebene = 3 - send " - else if Ebene = 4 - SendUnicodeChar(0x03B8) ;theta - else if Ebene = 5 - Send 3 - else if Ebene = 7 - SendUnicodeChar(0x0398) ; Theta - PriorDeadKey := "" -return - - -*-:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x0135) - Else If (PriorDeadKey = "c2") ; caron - BSSendUnicodeChar(0x01F0) - Else - sendinput {blind}j - } - else if Ebene = 2 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x0134) - Else - sendinput {blind}J - } - else if Ebene = 3 - send `; - else if Ebene = 4 - SendUnicodeChar(0x03D1) ; vartheta - else if Ebene = 5 - Send . - else if Ebene = 7 - SendUnicodeChar(0x2261) ; identisch zu (auch über tote Tasten) - PriorDeadKey := "" -return - -/* - ------------------------------------------------------ - Numpad - ------------------------------------------------------ - - folgende Tasten verhalten sich bei ein- und ausgeschaltetem - NumLock gleich: -*/ - -*NumpadDiv:: - EbeneAktualisieren() - if ( (Ebene = 1) or (Ebene = 2) ) - send {NumpadDiv} - else if Ebene = 3 - send ÷ - else if ( (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x2215) ; slash - PriorDeadKey := "" -return - -*NumpadMult:: - EbeneAktualisieren() - if ( (Ebene = 1) or (Ebene = 2) ) - send {NumpadMult} - else if Ebene = 3 - send × - else if ( (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x22C5) ; cdot - PriorDeadKey := "" -return - -*NumpadSub:: - EbeneAktualisieren() - if ( (Ebene = 1) or (Ebene = 2) ) - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x207B) - Else - send {blind}{NumpadSub} - } - else if ( (Ebene = 3) or (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x2212) ; echtes minus - PriorDeadKey := "" -return - -*NumpadAdd:: - EbeneAktualisieren() - if ( (Ebene = 1) or (Ebene = 2) ) - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x207A) - Else - send {blind}{NumpadAdd} - } - else if Ebene = 3 - send ± - else if ( (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x2213) ; -+ - PriorDeadKey := "" -return - -*NumpadEnter:: - EbeneAktualisieren() - if ( (Ebene = 1) or (Ebene = 2) ) - send {NumpadEnter} - else if Ebene = 3 - SendUnicodeChar(0x2260) ; neq - else if ( (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x2248) ; approx - PriorDeadKey := "" -return - -/* - folgende Tasten verhalten sich bei ein- und ausgeschaltetem NumLock - unterschiedlich: - - bei NumLock ein -*/ - -*Numpad7:: - EbeneAktualisieren() - if Ebene = 1 - send {blind}{Numpad7} - else if Ebene = 2 - send {NumpadHome} - else if Ebene = 3 - SendUnicodeChar(0x20D7) ; Combining Vektorpfeil - else if ( (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x226A) ; ll - PriorDeadKey := "" -return - -*Numpad8:: - EbeneAktualisieren() - if Ebene = 1 - send {blind}{Numpad8} - else if Ebene = 2 - send {NumpadUp} - else if Ebene = 3 - SendUnicodeChar(0x2191) ; uparrow - else if ( (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x2229) ; intersection - PriorDeadKey := "" -return - -*Numpad9:: - EbeneAktualisieren() - if Ebene = 1 - send {blind}{Numpad9} - else if Ebene = 2 - send {NumpadPgUp} - else if Ebene = 3 - SendUnicodeChar(0x2297) ; Circled Times - else if ( (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x226B) ; gg - PriorDeadKey := "" -return - -*Numpad4:: - EbeneAktualisieren() - if Ebene = 1 - send {blind}{Numpad4} - else if Ebene = 2 - send {NumpadLeft} - else if Ebene = 3 - SendUnicodeChar(0x2190) ; leftarrow - else if ( (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x2282) ; subset of - PriorDeadKey := "" -return - -*Numpad5:: - EbeneAktualisieren() - if Ebene = 1 - send {blind}{Numpad5} - else if Ebene = 2 - send {€} - else if Ebene = 3 - SendUnicodeChar(0x221E) ; Infty - else if ( (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x220B) ; Element - PriorDeadKey := "" -return - -*Numpad6:: - EbeneAktualisieren() - if Ebene = 1 - send {blind}{Numpad6} - else if Ebene = 2 - send {NumpadRight} - else if Ebene = 3 - SendUnicodeChar(0x2192) ; rightarrow - else if ( (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x2283) ; superset of - PriorDeadKey := "" -return - -*Numpad1:: - EbeneAktualisieren() - if Ebene = 1 - send {blind}{Numpad1} - else if Ebene = 2 - send {NumpadEnd} - else if Ebene = 3 - SendUnicodeChar(0x21CB) ; LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON - else if ( (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x2264) ; leq - PriorDeadKey := "" -return - -*Numpad2:: - EbeneAktualisieren() - if Ebene = 1 - send {blind}{Numpad2} - else if Ebene = 2 - send {NumpadDown} - else if Ebene = 3 - SendUnicodeChar(0x2193) ; downarrow - else if ( (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x222A) ; vereinigt - PriorDeadKey := "" -return - -*Numpad3:: - EbeneAktualisieren() - if Ebene = 1 - send {blind}{Numpad3} - else if Ebene = 2 - send {NumpadPgDn} - else if Ebene = 3 - SendUnicodeChar(0x21CC) ; RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON - else if ( (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x2265) ; geq - PriorDeadKey := "" -return - -*Numpad0:: - EbeneAktualisieren() - if Ebene = 1 - send {blind}{Numpad0} - else if Ebene = 2 - send {NumpadIns} - else if Ebene = 3 - send `% - else if ( (Ebene = 4) or (Ebene = 5) ) - send ‰ - PriorDeadKey := "" -return - -*NumpadDot:: - EbeneAktualisieren() - if Ebene = 1 - send {NumpadDot} - else if Ebene = 2 - send {NumpadDel} - else if Ebene = 3 - send . - else if ( (Ebene = 4) or (Ebene = 5) ) - send `, - PriorDeadKey := "" -return - -/* - bei NumLock aus -*/ - -*NumpadHome:: - EbeneAktualisieren() - if Ebene = 1 - send {blind}{Numpad7} - else if Ebene = 2 - send {NumpadHome} - else if Ebene = 3 - SendUnicodeChar(0x20D7) ; Combining Vektorpfeil - else if ( (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x226A) ; ll - PriorDeadKey := "" -return - -*NumpadUp:: - EbeneAktualisieren() - if Ebene = 1 - send {NumpadUp} - else if Ebene = 2 - send {Numpad8} - else if Ebene = 3 - SendUnicodeChar(0x2191) ; uparrow - else if ( (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x2229) ; intersection - PriorDeadKey := "" -return - -*NumpadPgUp:: - EbeneAktualisieren() - if Ebene = 1 - send {blind}{Numpad9} - else if Ebene = 2 - send {NumpadPgUp} - else if Ebene = 3 - SendUnicodeChar(0x2297) ; Circled Times - else if ( (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x226B) ; gg - PriorDeadKey := "" -return - -*NumpadLeft:: - EbeneAktualisieren() - if Ebene = 1 - send {NumpadLeft} - else if Ebene = 2 - send {Numpad4} - else if Ebene = 3 - SendUnicodeChar(0x2190) ; leftarrow - else if ( (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x2282) ; subset of - PriorDeadKey := "" -return - -*NumpadClear:: - EbeneAktualisieren() - if Ebene = 1 - send {blind}{Numpad5} - else if Ebene = 2 - send {€} - else if Ebene = 3 - SendUnicodeChar(0x221E) ; Infty - else if ( (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x220B) ; Element - PriorDeadKey := "" -return - -*NumpadRight:: - EbeneAktualisieren() - if Ebene = 1 - send {NumpadRight} - else if Ebene = 2 - send {Numpad6} - else if Ebene = 3 - SendUnicodeChar(0x2192) ; rightarrow - else if ( (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x2283) ; superset of - PriorDeadKey := "" -return - -*NumpadEnd:: - EbeneAktualisieren() - if Ebene = 1 - send {NumpadEnd} - else if Ebene = 2 - send {Numpad1} - else if Ebene = 3 - SendUnicodeChar(0x21CB) ; LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON - else if ( (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x2264) ; leq - PriorDeadKey := "" -return - -*NumpadDown:: - EbeneAktualisieren() - if Ebene = 1 - send {NumpadDown} - else if Ebene = 2 - send {Numpad2} - else if Ebene = 3 - SendUnicodeChar(0x2193) ; downarrow - else if ( (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x222A) ; vereinigt - PriorDeadKey := "" -return - -*NumpadPgDn:: - EbeneAktualisieren() - if Ebene = 1 - send {NumpadPgDn} - else if Ebene = 2 - send {Numpad3} - else if Ebene = 3 - SendUnicodeChar(0x21CC) ; RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON - else if ( (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x2265) ; geq - PriorDeadKey := "" -return - -*NumpadIns:: - EbeneAktualisieren() - if Ebene = 1 - send {NumpadIns} - else if Ebene = 2 - send {Numpad0} - else if Ebene = 3 - send `% - else if ( (Ebene = 4) or (Ebene = 5) ) - send ‰ - PriorDeadKey := "" -return - -*NumpadDel:: - EbeneAktualisieren() - if Ebene = 1 - send {NumpadDel} - else if Ebene = 2 - send {NumpadDot} - else if Ebene = 3 - send . - else if ( (Ebene = 4) or (Ebene = 5) ) - send `, - PriorDeadKey := "" -return - - - -/* - ------------------------------------------------------ - Sondertasten - ------------------------------------------------------ -*/ - -*Space:: - EbeneAktualisieren() - if Ebene = 4 - SendUnicodeChar(0x00A0) ; geschütztes Leerzeichen - else if Ebene = 5 - Send 0 - else if Ebene = 7 - SendUnicodeChar(0x202F) ; schmales Leerzeichen - else - Send {blind}{Space} - PriorDeadKey := "" -return - -/* - Folgende Tasten sind nur aufgeführt, um PriorDeadKey zu leeren. - Irgendwie sieht das noch nicht schön aus. Vielleicht lässt sich dieses - Problem irgendwie eleganter lösen... - - Nachtrag: - Weil es mit Alt+Tab Probleme gab, wird hier jetzt erstmal rumgeflickschustert, - bis eine allgemeinere Lösung gefunden wurde. -*/ - -*Enter:: - sendinput {Blind}{Enter} - PriorDeadKey := "" -return - -*Backspace:: - sendinput {Blind}{Backspace} - PriorDeadKey := "" -return - - - -/* -Tab wurde rausgenommen, weil es Probleme mit AltTab und ShiftAltTab gab. -Allerdings kommt es jetzt zu komischen Ergebnissen, wenn man Tab nach -einem DeadKey drückt... - -*Tab:: - send {Blind}{Tab} - PriorDeadKey := "" -return - -*/ - -*Home:: - sendinput {Blind}{Home} - PriorDeadKey := "" -return - -*End:: - sendinput {Blind}{End} - PriorDeadKey := "" -return - -*PgUp:: - sendinput {Blind}{PgUp} - PriorDeadKey := "" -return - -*PgDn:: - sendinput {Blind}{PgDn} - PriorDeadKey := "" -return - -*Up:: - sendinput {Blind}{Up} - PriorDeadKey := "" -return - -*Down:: - sendinput {Blind}{Down} - PriorDeadKey := "" -return - -*Left:: - sendinput {Blind}{Left} - PriorDeadKey := "" -return - -*Right:: - sendinput {Blind}{Right} - PriorDeadKey := "" -return - - -/* - ------------------------------------------------------ - Funktionen - ------------------------------------------------------ -*/ - -EbeneAktualisieren() -{ - global - Ebene = 1 - - ; ist Shift down? - if ( GetKeyState("Shift","P") ) - { - Ebene += 1 - } - ; ist Mod3 down? - if ( GetKeyState("CapsLock","P") or GetKeyState("#","P") ) { - ; ist Mod4 down? - if ( GetKeyState("<","P") or GetKeyState("SC138","P") ) { - Ebene +=6 - } - else Ebene += 2 - } - ; ist Mod4 down? Mod3 hat Vorrang! - else if ( GetKeyState("<","P") or GetKeyState("SC138","P") ) { - ; ist Mod3 down? - if ( GetKeyState("CapsLock","P") or GetKeyState("#","P") ) { - Ebene +=6 - } - else Ebene += 4 - } - - return -} - - -/************************* - Alte Methoden -*************************/ - -/* -Unicode(code) -{ - saved_clipboard := ClipboardAll - Transform, Clipboard, Unicode, %code% - sendplay ^v - Clipboard := saved_clipboard -} - -BSUnicode(code) -{ - saved_clipboard := ClipboardAll - Transform, Clipboard, Unicode, %code% - sendplay {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) -} - - -BSSendUnicodeChar(charCode) -{ - send {bs} - 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) -} - - -/* - ------------------------------------------------------ - Shift+Pause "pausiert" das Script. - ------------------------------------------------------ -*/ - -+pause::suspend -- cgit v1.2.3