From 0b053f301ca28a98d92fe28d4e39a1a8d15e6294 Mon Sep 17 00:00:00 2001 From: florian Date: Tue, 6 May 2008 11:36:16 +0000 Subject: git-svn-id: https://svn.neo-layout.org@503 b9310e46-f624-0410-8ea1-cfbb3a30dc96 --- windows/2K_XP_Vista/autohotkey/README.txt | 86 - .../2K_XP_Vista/autohotkey/neo20-all-in-one.ahk | 3198 -------------------- .../2K_XP_Vista/autohotkey/neo20-all-in-one.exe | Bin 222462 -> 0 bytes windows/2K_XP_Vista/autohotkey/neo20_mod-test.ahk | 2210 -------------- 4 files changed, 5494 deletions(-) delete mode 100644 windows/2K_XP_Vista/autohotkey/README.txt delete mode 100644 windows/2K_XP_Vista/autohotkey/neo20-all-in-one.ahk delete mode 100644 windows/2K_XP_Vista/autohotkey/neo20-all-in-one.exe delete mode 100644 windows/2K_XP_Vista/autohotkey/neo20_mod-test.ahk (limited to 'windows/2K_XP_Vista/autohotkey') diff --git a/windows/2K_XP_Vista/autohotkey/README.txt b/windows/2K_XP_Vista/autohotkey/README.txt deleted file mode 100644 index 4b4c207..0000000 --- a/windows/2K_XP_Vista/autohotkey/README.txt +++ /dev/null @@ -1,86 +0,0 @@ -Version 24.02.2008 - -== Installation == -=== Direkte Installation === -Einfach das Archiv neo20-all-in-one.exe herunterladen und die Datei irgendwo -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. -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). -Um dieses zu installieren benötigt man KEINE Administratorrechte, wenn man das -Programm beispielsweise in das Verzeichnis »Eigene Dateien/NEO« installiert. -Oder in ein anderes Verzeichnis, für das man Schreibrechte hat. - -=== ahk-Dateien === -Danach kann man das ahk-Skript »neo20-all-in-one.ahk« -mit einem Doppelklick starten. Man erhält dann ein Systray-Icon, mit dem man -das Skript vorübergehend deaktivieren (Suspend) oder komplett beenden kann. - -Wenn das Öffnen nicht direkt funktioniert: Öffnen mit -> Autohotkey.exe -auswählen -> Immer mit diesem Programm öffnen. - -=== Automatischer Start === -Bei Bedarf kann man sich eine Verknüpfung mit neo20-all-in-one.ahk in den -Autostart-Ordner legen, dann hat man die Belegung direkt bei der Anmeldung. - -== Wie es funktioniert == -Das Programm kann alle Tastendrucke abfangen und statt dessen andere Tasten -simulieren. Die Zeile - a::send b -fängt z. B. die Taste »a« ab und sendet statt dessen ein »b«. -Die ahk-Dateien lassen sich mit einem Texteditor bearbeiten, man muss -dann nur das Skript neu starten um die Änderungen zu übernehmen. - -== Bekannte Fehler == -Da die Compose-Taste auf rechter Mod3 + Tab liegt, mußte die Tabulator-Taste -umgemappt werden. Dadurch funktioniert leider die ShiftAltTab nicht mehr. -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). - -== Ziffernblock == -Der Ziffernblock reagiert nicht auf Tastenkombinationen mit Strg, Alt usw. - -Der Ziffernblock auf der 2. Ebene ist wahlweise -- bei AUSgeschaltetem Numlock -- bei EINgeschaltetem Numlock mit Shift -zu erreichen. -Der Ziffernblock auf der 3. Ebene funktioniert bei EINgeschaltetem -Numlock mit Mod3 (Caps/#). -Der Ziffernblock auf der 4. Ebene ist wahlweise -- bei AUSgeschaltetem Numlock mit Mod3 + Shift -- bei EINgeschaltetem Numlock über Mod4 -zu erreichen. -Da die 2. Ebene über Shift ebenfalls bei EINgeschaltetem Numlock -funktioniert ist das Ausschalten des Ziffernblocks nicht unbedingt -nötig. - -== Besonderheiten bei der ahk-Windowsversion von Neo == -Ebene 4 des Ziffernblocks lässt sich außer über Mod3+Shift auch über -Mod4 ansprechen. - -== Warnung == -ACHTUNG! Bei Windows ist folgendes festgelegt: -AltGr + Pos1 = Abmelden -AltGr + Ende = Computer ausschalten ---> diese Kombinationen treten auf bei AUSgeschaltetem Numlock mit Mod4 - -== FAQ == -Bei Problemen erst mal in die FAQ schauen, das meiste ist bekannt. -Hier: https://neo.eigenheimstrasse.de/svn/FAQ.txt diff --git a/windows/2K_XP_Vista/autohotkey/neo20-all-in-one.ahk b/windows/2K_XP_Vista/autohotkey/neo20-all-in-one.ahk deleted file mode 100644 index 2e84447..0000000 --- a/windows/2K_XP_Vista/autohotkey/neo20-all-in-one.ahk +++ /dev/null @@ -1,3198 +0,0 @@ -/* - Titel: NEO 2.0 beta Autohotkey-Treiber - $Revision$ - $Date$ - 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?) - Ideen: - Symbol ändern (Neo-Logo abwarten) - - bei Ebene 4 rechte Hand (Numpad) z.B. Numpad5 statt 5 senden - CHANGES: - SUBSCRIPT von 0 bis 9 sowie (auf Ziffernblock) + und - - • auch bei Ziffernblock auf der 5. Ebene - - Kein Parsen über die Zwischenablage mehr - - Vista-kompatibel - - Compose-Taste - • Brüche (auf Zahlenreihe und Hardware-Ziffernblock) - • römische Zahlen - • Ligaturen und Copyright -*/ - -; aus Noras script kopiert: -#usehook on -#singleinstance force -#LTrim - ; Quelltext kann eingerückt werden, - ; msgbox ist trotzdem linksbündig - -SetTitleMatchMode 2 -SendMode InputThenPlay - -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 -} - -; Menü des Systray-Icons -; ---------------------- - -menu, tray, nostandard -menu, tray, add, Öffnen, open - menu, helpmenu, add, About, about - menu, helpmenu, add, Autohotkey-Hilfe, help - menu, helpmenu, add - menu, helpmenu, add, http://&autohotkey.com/, autohotkey - menu, helpmenu, add, http://www.neo-layout.org/, neo - menu, tray, add, Hilfe, :helpmenu -menu, tray, add -menu, tray, add, %disable%, togglesuspend -menu, tray, default, %disable% -menu, tray, add -menu, tray, add, Edit, edit -menu, tray, add, Reload, reload -menu, tray, add -menu, tray, add, Nicht im Systray anzeigen, hide -menu, tray, add, %name% beenden, exitprogram -menu, tray, tip, %name% - - -/* - 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 = 6 - { - Send . ; punkt darunter (colon) - PriorDeadKey := "c6" - } -return - -*1:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex 1 - BSSendUnicodeChar(0x00B9) - Else If (PriorDeadKey = "c4") ; toter - - BSSendUnicodeChar(0x2081) - Else If (CompKey = "r_small_1") - Comp3UnicodeChar(0x217A) ; römisch xi - Else If (CompKey = "r_capital_1") - Comp3UnicodeChar(0x216A) ; römisch XI - Else - send {blind}1 - If (PriorDeadKey = "comp") - CompKey := "1" - Else If (CompKey = "r_small") - CompKey := "r_small_1" - Else If (CompKey = "r_capital") - CompKey := "r_capital_1" - Else - CompKey := "" - } - else if Ebene = 2 - { - send ° - CompKey := "" - } - else if Ebene = 4 - { - SendUnicodeChar(0x2640) ; Piktogramm weiblich - CompKey := "" - } - else if Ebene = 5 - { - SendUnicodeChar(0x2022) ; bullet - CompKey := "" - } - PriorDeadKey := "" -return - -*2:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x00B2) - Else If (PriorDeadKey = "c4") ; toter - - BSSendUnicodeChar(0x2082) - Else If (CompKey = "r_small") - CompUnicodeChar(0x2171) ; römisch ii - Else If (CompKey = "r_capital") - CompUnicodeChar(0x2161) ; römisch II - Else If (CompKey = "r_small_1") - Comp3UnicodeChar(0x217B) ; römisch xii - Else If (CompKey = "r_capital_1") - Comp3UnicodeChar(0x216B) ; römisch XII - Else - send {blind}2 - If (PriorDeadKey = "comp") - CompKey := "2" - Else - CompKey := "" - } - else if Ebene = 2 - { - SendUnicodeChar(0x2116) ; numero - CompKey := "" - } - else if Ebene = 4 - { - SendUnicodeChar(0x26A5) ; Piktogramm Zwitter - CompKey := "" - } - else if Ebene = 5 - { - SendUnicodeChar(0x2023) ; aufzaehlungspfeil - CompKey := "" - } - PriorDeadKey := "" -return - -*3:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x00B3) - Else If (PriorDeadKey = "c4") ; toter - - BSSendUnicodeChar(0x2083) - Else If (CompKey = "1") - CompUnicodeChar(0x2153) ; 1/3 - Else If (CompKey = "2") - CompUnicodeChar(0x2154) ; 2/3 - Else If (CompKey = "r_small") - CompUnicodeChar(0x2172) ; römisch iii - Else If (CompKey = "r_capital") - CompUnicodeChar(0x2162) ; römisch III - Else - send {blind}3 - If (PriorDeadKey = "comp") - CompKey := "3" - Else - CompKey := "" - } - else if Ebene = 2 - { - send § - CompKey := "" - } - else if Ebene = 4 - { - SendUnicodeChar(0x2642) ; Piktogramm männlich - CompKey := "" - } - PriorDeadKey := "" -return - -*4:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x2074) - Else If (PriorDeadKey = "c4") ; toter - - BSSendUnicodeChar(0x2084) - Else If (CompKey = "r_small") - CompUnicodeChar(0x2173) ; römisch iv - Else If (CompKey = "r_capital") - CompUnicodeChar(0x2163) ; römisch IV - Else - send {blind}4 - If (PriorDeadKey = "comp") - CompKey := "4" - Else - CompKey := "" - } - else if Ebene = 2 - { - send » - CompKey := "" - } - else if Ebene = 3 - { - send › - CompKey := "" - } - else if Ebene = 5 - { - Send {PgUp} ; Prev - CompKey := "" - } - else if Ebene = 6 - { - Send +{Prev} - CompKey := "" - } - PriorDeadKey := "" -return - -*5:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x2075) - Else If (PriorDeadKey = "c4") ; toter - - BSSendUnicodeChar(0x2085) - Else If (CompKey = "1") - CompUnicodeChar(0x2155) ; 1/5 - Else If (CompKey = "2") - CompUnicodeChar(0x2156) ; 2/5 - Else If (CompKey = "3") - CompUnicodeChar(0x2157) ; 3/5 - Else If (CompKey = "4") - CompUnicodeChar(0x2158) ; 4/5 - Else If (CompKey = "r_small") - CompUnicodeChar(0x2174) ; römisch v - Else If (CompKey = "r_capital") - CompUnicodeChar(0x2164) ; römisch V - Else - send {blind}5 - If (PriorDeadKey = "comp") - CompKey := "5" - Else - CompKey := "" - } - else if Ebene = 2 - { - send « - CompKey := "" - } - else if Ebene = 3 - { - send ‹ - CompKey := "" - } - else if Ebene = 6 - { - SendUnicodeChar(0x21D2) ; Implikation - CompKey := "" - } - PriorDeadKey := "" -return - -*6:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x2076) - Else If (PriorDeadKey = "c4") ; toter - - BSSendUnicodeChar(0x2086) - Else If (CompKey = "1") - CompUnicodeChar(0x2159) ; 1/6 - Else If (CompKey = "5") - CompUnicodeChar(0x215A) ; 5/6 - Else If (CompKey = "r_small") - CompUnicodeChar(0x2175) ; römisch vi - Else If (CompKey = "r_capital") - CompUnicodeChar(0x2165) ; römisch VI - Else - send {blind}6 - If (PriorDeadKey = "comp") - CompKey := "6" - Else - CompKey := "" - } - else if Ebene = 2 - { - send € - CompKey := "" - } - else if Ebene = 3 - { - send £ - CompKey := "" - } - else if Ebene = 4 - { - send ¤ - CompKey := "" - } - else if Ebene = 6 - { - SendUnicodeChar(0x21D4) ; Äquivalenz - CompKey := "" - } - PriorDeadKey := "" -return - -*7:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x2077) - Else If (PriorDeadKey = "c4") ; toter - - BSSendUnicodeChar(0x2087) - Else If (CompKey = "r_small") - CompUnicodeChar(0x2176) ; römisch vii - Else If (CompKey = "r_capital") - CompUnicodeChar(0x2166) ; römisch VII - Else - send {blind}7 - If (PriorDeadKey = "comp") - CompKey := "7" - Else - CompKey := "" - } - else if Ebene = 2 - { - send $ - CompKey := "" - } - else if Ebene = 3 - { - send ¢ - CompKey := "" - } - else if Ebene = 4 - { - send ¥CompKey := "" - } - else if Ebene = 6 - { - Send ¬ - CompKey := "" - } - PriorDeadKey := "" -return - -*8:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x2078) - Else If (PriorDeadKey = "c4") ; toter - - BSSendUnicodeChar(0x2088) - Else If (CompKey = "1") - CompUnicodeChar(0x215B) ; 1/8 - Else If (CompKey = "3") - CompUnicodeChar(0x215C) ; 3/8 - Else If (CompKey = "5") - CompUnicodeChar(0x215D) ; 5/8 - Else If (CompKey = "7") - CompUnicodeChar(0x215E) ; 7/8 - Else If (CompKey = "r_small") - CompUnicodeChar(0x2177) ; römisch viii - Else If (CompKey = "r_capital") - CompUnicodeChar(0x2167) ; römisch VIII - Else - send {blind}8 - If (PriorDeadKey = "comp") - CompKey := "8" - Else - CompKey := "" - } - else if Ebene = 2 - { - send „ - CompKey := "" - } - else if Ebene = 3 - { - send ‚ - CompKey := "" - } - else if Ebene = 5 - { - Send / - CompKey := "" - } - else if Ebene = 6 - { - SendUnicodeChar(0x2203) ; Existenzquantor - CompKey := "" - } - PriorDeadKey := "" -return - -*9:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x2079) - Else If (PriorDeadKey = "c4") ; toter - - BSSendUnicodeChar(0x2089) - Else If (CompKey = "r_small") - CompUnicodeChar(0x2178) ; römisch ix - Else If (CompKey = "r_capital") - CompUnicodeChar(0x2168) ; römisch IX - Else - send {blind}9 - If (PriorDeadKey = "comp") - CompKey := "9" - Else - CompKey := "" - } - else if Ebene = 2 - { - send “ - CompKey := "" - } - else if Ebene = 3 - { - send ‘ - CompKey := "" - } - else if Ebene = 5 - { - Send * - CompKey := "" - } - else if Ebene = 6 - { - SendUnicodeChar(0x2200) ; Allquantor - CompKey := "" - } - PriorDeadKey := "" -return - -*0:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x2070) - Else If (PriorDeadKey = "c4") ; toter - - BSSendUnicodeChar(0x2080) - Else If (CompKey = "r_small_1") - Comp3UnicodeChar(0x2179) ; römisch x - Else If (CompKey = "r_capital_1") - Comp3UnicodeChar(0x2169) ; römisch X - Else - send {blind}0 - If (PriorDeadKey = "comp") - CompKey := "0" - Else - CompKey := "" - } - else if Ebene = 2 - { - send ” - CompKey := "" - } - else if Ebene = 3 - { - send ’ - CompKey := "" - } - else if Ebene = 5 - { - Send - - CompKey := "" - } - else if Ebene = 6 - { - SendUnicodeChar(0x2228) ; logisch oder - CompKey := "" - } - 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(0x254C) - else if Ebene = 5 - SendUnicodeChar(0x2011) - else if Ebene = 6 - SendUnicodeChar(0x2227) ; logisch und - PriorDeadKey := "" CompKey := "" -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 = 6 - { - 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 = 4 - SendUnicodeChar(0x03BE) ;xi - else if Ebene = 6 - SendUnicodeChar(0x039E) ; Xi - PriorDeadKey := "" CompKey := "" -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 = 5 - Send {Backspace} - else if Ebene = 6 - Send +{Backspace} - PriorDeadKey := "" CompKey := "" -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 - If (PriorDeadKey = "comp") ; compose - CompKey := "l_small" - Else - CompKey := "" - } - 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 - If (PriorDeadKey = "comp") ; compose - CompKey := "l_capital" - Else CompKey := "" - } - else if Ebene = 3 - { - send [ - CompKey := "" - } - else if Ebene = 4 - { - SendUnicodeChar(0x03BB) ;lambda - CompKey := "" - } - else if Ebene = 5 - { - Sendinput {Blind}{Up} - CompKey := "" - } - else if Ebene = 6 - { - Sendinput {Blind}+{Up} - CompKey := "" - } - 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 If ( (CompKey = "o_small") or (CompKey = "o_capital") ) - Send {bs}© - Else - sendinput {blind}c - If (PriorDeadKey = "comp") - CompKey := "c_small" - Else - CompKey := "" - } - 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 If ( (CompKey = "o_small") or (CompKey = "o_capital") ) - Send {bs}© - Else - sendinput {blind}C - If (PriorDeadKey = "comp") - CompKey = "c_capital" - Else - CompKey := "" - } - else if Ebene = 3 - { - send ] - CompKey := "" - } - else if Ebene = 4 - { - SendUnicodeChar(0x03C7) ;chi - CompKey := "" - } - else if Ebene = 5 - { - Send {Del} - CompKey := "" - } - else if Ebene = 6 - { - SendUnicodeChar(0x039B) ; Lambda - CompKey := "" - } - 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 = 5 - Send {Insert} - else if Ebene = 6 - Send +{Insert} - PriorDeadKey := "" CompKey := "" -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 ¡ - PriorDeadKey := "" CompKey := "" -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 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x2077) - Else If (PriorDeadKey = "c4") ; toter - - BSSendUnicodeChar(0x2087) - Else - Send 7 - } - else if Ebene = 6 - SendUnicodeChar(0x03A8) ; Psi - PriorDeadKey := "" CompKey := "" -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 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x2078) - Else If (PriorDeadKey = "c4") ; toter - - BSSendUnicodeChar(0x2088) - Else - Send 8 - } - else if Ebene = 6 - SendUnicodeChar(0x0393) ; Gamma - PriorDeadKey := "" CompKey := "" -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(0x03C6) ;phi - else if Ebene = 5 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x2079) - Else If (PriorDeadKey = "c4") ; toter - - BSSendUnicodeChar(0x2089) - Else - Send 9 - } - else if Ebene = 6 - SendUnicodeChar(0x03A6) ; Phi - PriorDeadKey := "" CompKey := "" -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(0x0278) ; Varphi? (latin letter phi) - else if Ebene = 5 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x207A) - Else If (PriorDeadKey = "c4") ; toter - - BSSendUnicodeChar(0x208A) - Else - Send {+} - } - else if Ebene = 6 - SendUnicodeChar(0x2202) ; "geschweiftes d" (partielle Ableitung) - PriorDeadKey := "" CompKey := "" -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 = 5 - SendUnicodeChar(0x0259) ; schwa - else if Ebene = 6 - SendUnicodeChar(0x018F) ; Schwa - PriorDeadKey := "" CompKey := "" -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 = 6 - { - 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} - PriorDeadKey := "" CompKey := "" -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 - If (PriorDeadKey = "comp") ; compose - CompKey := "i_small" - Else - CompKey := "" - } - 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 - If (PriorDeadKey = "comp") ; compose - CompKey := "i_capital" - Else - CompKey := "" - } - else if Ebene = 3 - { - send `/ - CompKey := "" - } - else if Ebene = 4 - { - SendUnicodeChar(0x03B9) ;iota - CompKey := "" - } - else if Ebene = 5 - { - Sendinput {Blind}{Left} - CompKey := "" - } - else if Ebene = 6 - { - Sendinput {Blind}+{Left} - CompKey := "" - } - 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 - If (PriorDeadKey = "comp") ; compose - CompKey := "a_small" - Else - CompKey := "" - } - 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 - If (PriorDeadKey = "comp") ; compose - CompKey := "a_capital" - Else - CompKey := "" - } - else if Ebene = 3 - { - sendraw { - CompKey := "" - } - else if Ebene = 4 - { - SendUnicodeChar(0x03B1) ;alpha - CompKey := "" - } - else if Ebene = 5 - { - Sendinput {Blind}{Down} - CompKey := "" - } - else if Ebene = 6 - { - Sendinput {Blind}+{Down} - CompKey := "" - } - 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 If (CompKey = "a_small") ; compose - { - Send {bs}æ - CompKey := "" - } - Else If (CompKey = "o_small") ; compose - { - Send {bs}œ - CompKey := "" - } - 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 If (CompKey = "a_capital") ; compose - { - Send {bs}Æ - CompKey := "" - } - Else If (CompKey = "o_capital") ; compose - { - Send {bs}Œ - CompKey := "" - } - 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} - PriorDeadKey := "" CompKey := "" -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 - If (PriorDeadKey = "comp") ; compose - CompKey := "o_small" - Else - CompKey := "" - } - 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 - If (PriorDeadKey = "comp") ; compose - CompKey := "o_capital" - Else - CompKey := "" - } - else if Ebene = 3 - { - send * - CompKey := "" - } - else if Ebene = 4 - { - SendUnicodeChar(0x03C9) ;omega - CompKey := "" - } - else if Ebene = 5 - { - Send {blind}{End} - CompKey := "" - } - else if Ebene = 6 - { - Send {blind}+{End} - CompKey := "" - } - 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 - If (PriorDeadKey = "comp") - CompKey := "s_small" - Else - CompKey := "" - } - 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 - If (PriorDeadKey = "comp") - CompKey := "s_capital" - Else - CompKey := "" - } - else if Ebene = 3 - { - send ? - CompKey := "" - } - else if Ebene = 4 - { - SendUnicodeChar(0x03C3) ;sigma - CompKey := "" - } - else if Ebene = 5 - { - Send ¿ - CompKey := "" - } - else if Ebene = 6 - { - SendUnicodeChar(0x03A3) ; Sigma - CompKey := "" - } - 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 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x2074) - Else If (PriorDeadKey = "c4") ; toter - - BSSendUnicodeChar(0x2084) - Else - Send 4 - } - PriorDeadKey := "" CompKey := "" -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 - If (PriorDeadKey = "comp") - CompKey := "r_small" - Else - CompKey := "" - } - 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 - If (PriorDeadKey = "comp") - CompKey := "r_capital" - Else - CompKey := "" - } - else if Ebene = 3 - { - send ) - CompKey := "" - } - else if Ebene = 4 - { - SendUnicodeChar(0x03C1) ;rho - CompKey := "" - } - else if Ebene = 5 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x2075) - Else If (PriorDeadKey = "c4") ; toter - - BSSendUnicodeChar(0x2085) - Else - Send 5 - CompKey := "" - } - 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 - If (PriorDeadKey = "comp") - CompKey := "t_small" - Else - CompKey := "" - } - 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 - If (PriorDeadKey = "comp") - CompKey := "t_capital" - Else - CompKey := "" - } - else if Ebene = 3 - { - send {blind}- ; Bind - CompKey := "" - } - else if Ebene = 4 - { - SendUnicodeChar(0x03C4) ;tau - CompKey := "" - } - else if Ebene = 5 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x2076) - Else If (PriorDeadKey = "c4") ; toter - - BSSendUnicodeChar(0x2086) - Else - Send 6 - CompKey := "" - } - 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 = 6 - SendUnicodeChar(0x0394) ; Delta - PriorDeadKey := "" CompKey := "" -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 = 3 - send @ - else if Ebene = 4 - SendUnicodeChar(0x03C5) ;upsilon - else if Ebene = 5 - Send þ ; thorn - else if Ebene = 6 - Send Þ ; Thorn - PriorDeadKey := "" CompKey := "" -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 {blind}{#} - else if Ebene = 5 - Send {Esc} - PriorDeadKey := "" CompKey := "" -return - -*x:: - EbeneAktualisieren() - if Ebene = 1 - sendinput {blind}ö - else if Ebene = 2 - sendinput {blind}Ö - else if Ebene = 3 - send $ - else if Ebene = 5 - Send {Tab} - else if Ebene = 6 - Send +{Tab} - PriorDeadKey := "" CompKey := "" -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} - PriorDeadKey := "" CompKey := "" -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 = 6 - SendUnicodeChar(0x03A0) ; Pi - PriorDeadKey := "" CompKey := "" -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 = 6 - SendUnicodeChar(0x03A9) ; Omega - PriorDeadKey := "" CompKey := "" -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 = 6 - SendUnicodeChar(0x221E) ;infty - PriorDeadKey := "" CompKey := "" -return - -*m:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "a5") ; punkt darüber - BSSendUnicodeChar(0x1E41) - Else If (PriorDeadKey = "c6") ; punkt darunter - BSSendUnicodeChar(0x1E43) - Else If ( (CompKey = "t_small") or (CompKey = "t_capital") ) ; compose - CompUnicodeChar(0x2122) ; TM - Else If ( (CompKey = "s_small") or (CompKey = "s_capital") ) ; compose - CompUnicodeChar(0x2120) ; SM - 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 If ( (CompKey = "t_capital") or (CompKey = "t_small") ) ; compose - CompUnicodeChar(0x2122) ; TM - Else If ( (CompKey = "s_capital") or (CompKey = "s_small") ) ; compose - CompUnicodeChar(0x2120) ; SM - Else - sendinput {blind}M - } - else if Ebene = 3 - send `% - else if Ebene = 4 - SendUnicodeChar(0x03BC) ;micro, mu wäre 0x00B5 - else if Ebene = 5 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x00B9) - Else If (PriorDeadKey = "c4") ; toter - - BSSendUnicodeChar(0x2081) - Else - Send 1 - } - else if Ebene = 6 - SendUnicodeChar(0x222B) ; Int - PriorDeadKey := "" CompKey := "" -return - -*,:: - EbeneAktualisieren() - if Ebene = 1 - send {blind}, - else if Ebene = 3 - send " - else if Ebene = 4 - SendUnicodeChar(0x03F1) ; varrho - else if Ebene = 5 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x00B2) - Else If (PriorDeadKey = "c4") ; toter - - BSSendUnicodeChar(0x2082) - Else - Send 2 - } - else if Ebene = 6 - SendUnicodeChar(0x221A) ; sqrt - PriorDeadKey := "" CompKey := "" -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 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x00B3) - Else If (PriorDeadKey = "c4") ; toter - - BSSendUnicodeChar(0x2083) - Else - Send 3 - } - else if Ebene = 6 - SendUnicodeChar(0x0398) ; Theta - PriorDeadKey := "" CompKey := "" -return - - -*-:: - EbeneAktualisieren() - if Ebene = 1 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x0135) - Else If (PriorDeadKey = "c2") ; caron - BSSendUnicodeChar(0x01F0) - Else If (CompKey = "i_small") ; compose - CompUnicodeChar(0x0133) ; ij - Else If (CompKey = "l_small") ; compose - CompUnicodeChar(0x01C9) ; lj - Else If (CompKey = "l_capital") ; compose - CompUnicodeChar(0x01C8) ; Lj - Else - sendinput {blind}j - } - else if Ebene = 2 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x0134) - Else If (CompKey = "i_capital") ; compose - CompUnicodeChar(0x0132) ; IJ - Else If (CompKey = "l_capital") ; compose - CompUnicodeChar(0x01C7) ; LJ - Else - sendinput {blind}J - } - else if Ebene = 3 - send `; - else if Ebene = 4 - SendUnicodeChar(0x03D1) ; vartheta - else if Ebene = 5 - Send . - else if Ebene = 6 - SendUnicodeChar(0x2207) ; Nabla - PriorDeadKey := "" CompKey := "" -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 := "" CompKey := "" -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 := "" CompKey := "" -return - -*NumpadSub:: - EbeneAktualisieren() - if ( (Ebene = 1) or (Ebene = 2) ) - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x207B) - Else If (PriorDeadKey = "c4") ; toter - - BSSendUnicodeChar(0x208B) - Else - send {blind}{NumpadSub} - } - else if Ebene = 3 - SendUnicodeChar(0x2212) ; echtes minus - PriorDeadKey := "" CompKey := "" -return - -*NumpadAdd:: - EbeneAktualisieren() - if ( (Ebene = 1) or (Ebene = 2) ) - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x207A) - Else If (PriorDeadKey = "c4") ; toter - - BSSendUnicodeChar(0x208A) - Else - send {blind}{NumpadAdd} - } - else if Ebene = 3 - send ± - else if ( (Ebene = 4) or (Ebene = 5) ) - SendUnicodeChar(0x2213) ; -+ - PriorDeadKey := "" CompKey := "" -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 := "" CompKey := "" -return - -/* - folgende Tasten verhalten sich bei ein- und ausgeschaltetem NumLock - unterschiedlich: - - bei NumLock ein -*/ - - - -*Numpad7:: - EbeneAktualisieren() - if Ebene = 1 - { - send {blind}{Numpad7} - If (PriorDeadKey = "comp") - CompKey := "Num_7" - Else - CompKey := "" - } - else if Ebene = 2 - { - send {NumpadHome} - CompKey := "" - } - else if Ebene = 3 - { - SendUnicodeChar(0x2195) ; Hoch-Runter-Pfeil - CompKey := "" - } - else if ( (Ebene = 4) or (Ebene = 5) ) - { - SendUnicodeChar(0x226A) ; ll - CompKey := "" - } - PriorDeadKey := "" -return - -*Numpad8:: - EbeneAktualisieren() - if Ebene = 1 - { - If (CompKey = "Num_1") - CompUnicodeChar(0x215B) ; 1/8 - Else If (CompKey = "Num_3") - CompUnicodeChar(0x215C) ; 3/8 - Else If (CompKey = "Num_5") - CompUnicodeChar(0x215D) ; 5/8 - Else If (CompKey = "Num_7") - CompUnicodeChar(0x215E) ; 7/8 - Else - send {blind}{Numpad8} - If (PriorDeadKey = "comp") - CompKey := "Num_8" - Else - CompKey := "" - } - else if Ebene = 2 - { - send {NumpadUp} - CompKey := "" - } - else if Ebene = 3 - { - SendUnicodeChar(0x2191) ; uparrow - CompKey := "" - } - else if ( (Ebene = 4) or (Ebene = 5) ) - { - SendUnicodeChar(0x2229) ; intersection - CompKey := "" - } - PriorDeadKey := "" CompKey := "" -return - -*Numpad9:: - EbeneAktualisieren() - if Ebene = 1 - { - send {blind}{Numpad9} - If (PriorDeadKey = "comp") - CompKey := "Num_9" - Else - CompKey := "" - } - else if Ebene = 2 - { - send {NumpadPgUp} - CompKey := "" - } - else if ( (Ebene = 4) or (Ebene = 5) ) - { - SendUnicodeChar(0x226B) ; gg - CompKey := "" - } - PriorDeadKey := "" -return - - - -*Numpad4:: - EbeneAktualisieren() - if Ebene = 1 - { - If (CompKey = "Num_1") - CompUnicodeChar(0x00BC) ; 1/4 - Else If (CompKey = "Num_3") - CompUnicodeChar(0x00BE) ; 3/4 - Else - send {blind}{Numpad4} - If (PriorDeadKey = "comp") - CompKey := "Num_4" - Else - CompKey := "" - } - else if Ebene = 2 - { - send {NumpadLeft} - CompKey := "" - } - else if Ebene = 3 - { - SendUnicodeChar(0x2190) ; leftarrow - CompKey := "" - } - else if ( (Ebene = 4) or (Ebene = 5) ) - { - SendUnicodeChar(0x2282) ; subset of - CompKey := "" - } - PriorDeadKey := "" -return - -*Numpad5:: - EbeneAktualisieren() - if Ebene = 1 - { - If (CompKey = "Num_1") - CompUnicodeChar(0x2155) ; 1/5 - Else If (CompKey = "Num_2") - CompUnicodeChar(0x2156) ; 2/5 - Else If (CompKey = "Num_3") - CompUnicodeChar(0x2157) ; 3/5 - Else If (CompKey = "Num_4") - CompUnicodeChar(0x2158) ; 4/5 - Else - send {blind}{Numpad5} - If (PriorDeadKey = "comp") - CompKey := "Num_5" - Else - CompKey := "" - } - else if Ebene = 2 - { - send {NumpadClear} - CompKey := "" - } - else if Ebene = 3 - { - send † - CompKey := "" - } - else if ( (Ebene = 4) or (Ebene = 5) ) - { - SendUnicodeChar(0x220A) ; small element of - CompKey := "" - } - PriorDeadKey := "" -return - -*Numpad6:: - EbeneAktualisieren() - if Ebene = 1 - { - If (CompKey = "Num_1") - CompUnicodeChar(0x2159) ; 1/6 - Else If (CompKey = "Num_5") - CompUnicodeChar(0x215A) ; 5/6 - Else - send {blind}{Numpad6} - If (PriorDeadKey = "comp") - CompKey := "Num_6" - Else - CompKey := "" - } - else if Ebene = 2 - { - send {NumpadRight} - CompKey := "" - } - else if Ebene = 3 - { - SendUnicodeChar(0x2192) ; rightarrow - CompKey := "" - } - else if ( (Ebene = 4) or (Ebene = 5) ) - { - SendUnicodeChar(0x2283) ; superset of - CompKey := "" - } - PriorDeadKey := "" -return - -*Numpad1:: - EbeneAktualisieren() - if Ebene = 1 - { - send {blind}{Numpad1} - If (PriorDeadKey = "comp") - CompKey := "Num_1" - Else - CompKey := "" - } - else if Ebene = 2 - { - send {NumpadEnd} - CompKey := "" - } - else if Ebene = 3 - { - SendUnicodeChar(0x2194) ; Links-Rechts-Pfeil - CompKey := "" - } - else if ( (Ebene = 4) or (Ebene = 5) ) - { - SendUnicodeChar(0x2264) ; leq - CompKey := "" - } - PriorDeadKey := "" -return - -*Numpad2:: - EbeneAktualisieren() - if Ebene = 1 - { - If (CompKey = "Num_1") - CompUnicodeChar(0x00BD) ; 1/2 - Else - send {blind}{Numpad2} - If (PriorDeadKey = "comp") - CompKey := "Num_2" - Else - CompKey := "" - } - else if Ebene = 2 - { - send {NumpadDown} - CompKey := "" - } - else if Ebene = 3 - { - SendUnicodeChar(0x2193) ; downarrow - CompKey := "" - } - else if ( (Ebene = 4) or (Ebene = 5) ) - { - SendUnicodeChar(0x222A) ; vereinigt - CompKey := "" - } - PriorDeadKey := "" -return - -*Numpad3:: - EbeneAktualisieren() - if Ebene = 1 - { - If (CompKey = "Num_1") - CompUnicodeChar(0x2153) ; 1/3 - Else If (CompKey = "Num_2") - CompUnicodeChar(0x2154) ; 2/3 - Else - send {blind}{Numpad3} - If (PriorDeadKey = "comp") - CompKey := "Num_3" - Else - CompKey := "" - } - 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 := "" CompKey := "" -return - -*Numpad0:: - EbeneAktualisieren() - if Ebene = 1 - { - send {blind}{Numpad0} - If (PriorDeadKey = "comp") - CompKey := "Num_0" - Else - CompKey := "" - } - else if Ebene = 2 - { - send {NumpadIns} - CompKey := "" - } - else if Ebene = 3 - { - send `% - CompKey := "" - } - else if ( (Ebene = 4) or (Ebene = 5) ) - { - send ‰ - CompKey := "" - } - PriorDeadKey := "" -return - -*NumpadDot:: - EbeneAktualisieren() - if Ebene = 1 - { - send {NumpadDot} - CompKey := "" - } - else if Ebene = 2 - { - send {NumpadDel} - CompKey := "" - } - else if Ebene = 3 - { - send . - CompKey := "" - } - else if ( (Ebene = 4) or (Ebene = 5) ) - { - send `, - CompKey := "" - } - PriorDeadKey := "" -return - -/* - bei NumLock aus -*/ - -*NumpadHome:: - EbeneAktualisieren() - if Ebene = 1 - { - send {NumpadHome} - CompKey := "" - } - else if Ebene = 2 - { - send {Numpad7} - If (PriorDeadKey = "comp") - CompKey := "Num_7" - Else - CompKey := "" - } - else if ( (Ebene = 4) or (Ebene = 5) ) - { - SendUnicodeChar(0x226A) ; ll - CompKey := "" - } - PriorDeadKey := "" -return - -*NumpadUp:: - EbeneAktualisieren() - if Ebene = 1 - { - send {NumpadUp} - CompKey := "" - } - else if Ebene = 2 - { - If (CompKey = "Num_1") - CompUnicodeChar(0x215B) ; 1/8 - Else If (CompKey = "Num_3") - CompUnicodeChar(0x215C) ; 3/8 - Else If (CompKey = "Num_5") - CompUnicodeChar(0x215D) ; 5/8 - Else If (CompKey = "Num_7") - CompUnicodeChar(0x215E) ; 7/8 - Else - send {Numpad8} - If (PriorDeadKey = "comp") - CompKey := "Num_8" - Else - CompKey := "" - } - else if Ebene = 3 - { - SendUnicodeChar(0x2191) ; uparrow - CompKey := "" - } - else if ( (Ebene = 4) or (Ebene = 5) ) - { - SendUnicodeChar(0x2229) ; intersection - CompKey := "" - } - PriorDeadKey := "" -return - -*NumpadPgUp:: - EbeneAktualisieren() - if Ebene = 1 - { - send {NumpadPgUp} - CompKey := "" - } - else if Ebene = 2 - { - send {Numpad9} - If (PriorDeadKey = "comp") - CompKey := "Num_9" - Else - CompKey := "" - } - else if ( (Ebene = 4) or (Ebene = 5) ) - { - SendUnicodeChar(0x226B) ; gg - CompKey := "" - } - PriorDeadKey := "" -return - -*NumpadLeft:: - EbeneAktualisieren() - if Ebene = 1 - { - send {NumpadLeft} - CompKey := "" - } - else if Ebene = 2 - { - If (CompKey = "Num_1") - CompUnicodeChar(0x00BC) ; 1/4 - Else If (CompKey = "Num_3") - CompUnicodeChar(0x00BE) ; 3/4 - Else - send {Numpad4} - If (PriorDeadKey = "comp") - CompKey := "Num_4" - Else - CompKey := "" - } - else if Ebene = 3 - { - SendUnicodeChar(0x2190) ; leftarrow - CompKey := "" - } - else if ( (Ebene = 4) or (Ebene = 5) ) - { - SendUnicodeChar(0x2282) ; subset of - CompKey := "" - } - PriorDeadKey := "" -return - -*NumpadClear:: - EbeneAktualisieren() - if Ebene = 1 - { - send {NumpadClear} - CompKey := "" - } - else if Ebene = 2 - { - If (CompKey = "Num_1") - CompUnicodeChar(0x2155) ; 1/5 - Else If (CompKey = "Num_2") - CompUnicodeChar(0x2156) ; 2/5 - Else If (CompKey = "Num_3") - CompUnicodeChar(0x2157) ; 3/5 - Else If (CompKey = "Num_4") - CompUnicodeChar(0x2158) ; 4/5 - Else - send {Numpad5} - If (PriorDeadKey = "comp") - CompKey := "Num_5" - Else - CompKey := "" - } - else if Ebene = 3 - { - send † - CompKey := "" - } - else if ( (Ebene = 4) or (Ebene = 5) ) - { - SendUnicodeChar(0x220A) ; small element of - CompKey := "" - } - PriorDeadKey := "" -return - -*NumpadRight:: - EbeneAktualisieren() - if Ebene = 1 - { - send {NumpadRight} - CompKey := "" - } - else if Ebene = 2 - { - If (CompKey = "Num_1") - CompUnicodeChar(0x2159) ; 1/6 - Else If (CompKey = "Num_5") - CompUnicodeChar(0x215A) ; 5/6 - Else - send {Numpad6} - If (PriorDeadKey = "comp") - CompKey := "Num_6" - Else - CompKey := "" - } - else if Ebene = 3 - { - SendUnicodeChar(0x2192) ; rightarrow - CompKey := "" - } - else if ( (Ebene = 4) or (Ebene = 5) ) - { - SendUnicodeChar(0x2283) ; superset of - CompKey := "" - } - PriorDeadKey := "" -return - -*NumpadEnd:: - EbeneAktualisieren() - if Ebene = 1 - { - send {NumpadEnd} - CompKey := "" - } - else if Ebene = 2 - { - send {Numpad1} - If (PriorDeadKey = "comp") - CompKey := "Num_1" - Else - CompKey := "" - } - else if Ebene = 3 - { - SendUnicodeChar(0x21CB) ; LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON - CompKey := "" - } - else if ( (Ebene = 4) or (Ebene = 5) ) - { - SendUnicodeChar(0x2264) ; leq - CompKey := "" - } - PriorDeadKey := "" -return - -*NumpadDown:: - EbeneAktualisieren() - if Ebene = 1 - { - send {NumpadDown} - CompKey := "" - } - else if Ebene = 2 - { - If (CompKey = "Num_1") - CompUnicodeChar(0x00BD) ; 1/2 - Else - send {Numpad2} - If (PriorDeadKey = "comp") - CompKey := "Num_2" - Else - CompKey := "" - } - else if Ebene = 3 - { - SendUnicodeChar(0x2193) ; downarrow - CompKey := "" - } - else if ( (Ebene = 4) or (Ebene = 5) ) - { - SendUnicodeChar(0x222A) ; vereinigt - CompKey := "" - } - PriorDeadKey := "" -return - -*NumpadPgDn:: - EbeneAktualisieren() - if Ebene = 1 - { - send {NumpadPgDn} - CompKey := "" - } - else if Ebene = 2 - { - If (CompKey = "Num_1") - CompUnicodeChar(0x2153) ; 1/3 - Else If (CompKey = "Num_2") - CompUnicodeChar(0x2154) ; 2/3 - Else - send {Numpad3} - If (PriorDeadKey = "comp") - CompKey := "Num_3" - Else - CompKey := "" - } - else if Ebene = 3 - { - SendUnicodeChar(0x21CC) ; RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON - CompKey := "" - } - else if ( (Ebene = 4) or (Ebene = 5) ) - { - SendUnicodeChar(0x2265) ; geq - CompKey := "" - } - PriorDeadKey := "" -return - -*NumpadIns:: - EbeneAktualisieren() - if Ebene = 1 - { - send {NumpadIns} - CompKey := "" - } - else if Ebene = 2 - { - send {Numpad0} - If (PriorDeadKey = "comp") - CompKey := "Num_0" - Else - CompKey := "" - } - else if Ebene = 3 - { - send `% - CompKey := "" - } - else if ( (Ebene = 4) or (Ebene = 5) ) - { - send ‰ - CompKey := "" - } - PriorDeadKey := "" -return - -*NumpadDel:: - EbeneAktualisieren() - if Ebene = 1 - { - send {NumpadDel} - CompKey := "" - } - else if Ebene = 2 - { - send {NumpadDot} - CompKey := "" - } - else if Ebene = 3 - { - send . - CompKey := "" - } - else if ( (Ebene = 4) or (Ebene = 5) ) - { - send `, - CompKey := "" - } - PriorDeadKey := "" -return - - -/* - ------------------------------------------------------ - Sondertasten - ------------------------------------------------------ -*/ - -*Space:: - EbeneAktualisieren() - if Ebene = 1 - { - If (CompKey = "r_small_1") - Comp3UnicodeChar(0x2170) ; römisch i - Else If (CompKey = "r_capital_1") - Comp3UnicodeChar(0x2160) ; römisch I - Else - Send {blind}{Space} - } - if Ebene = 2 - Send {blind}{Space} - if Ebene = 3 - Send {blind}{Space} - if Ebene = 4 - SendUnicodeChar(0x00A0) ; geschütztes Leerzeichen - else if Ebene = 5 - { - If (PriorDeadKey = "c1") ; circumflex - BSSendUnicodeChar(0x2070) - Else If (PriorDeadKey = "c4") ; toter - - BSSendUnicodeChar(0x2080) - Else - Send 0 - } - else if Ebene = 6 - SendUnicodeChar(0x202F) ; schmales Leerzeichen - PriorDeadKey := "" CompKey := "" -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 := "" CompKey := "" -return - -*Backspace:: - sendinput {Blind}{Backspace} - PriorDeadKey := "" CompKey := "" -return - - - -/* -Auf Mod3+Tab liegt Compose. AltTab funktioniert, jedoch ShiftAltTab nicht. -Wenigstens kommt es jetzt nicht mehr zu komischen Ergebnissen, wenn man Tab -nach einem DeadKey drückt... -*/ - -*Tab:: - if ( GetKeyState("SC038","P") ) - { - SC038 & Tab::AltTab ; http://de.autohotkey.com/docs/Hotkeys.htm#AltTabDetail - } - else if GetKeyState("#","P") - { - PriorDeadKey := "comp" - CompKey := "" - } - else - { - send {blind}{Tab} - PriorDeadKey := "" - CompKey := "" - } -return - -*SC038:: ; LAlt, damit AltTab funktioniert - send {blind}{LAlt} - PriorDeadKey := "" CompKey := "" -return - -*Home:: - sendinput {Blind}{Home} - PriorDeadKey := "" CompKey := "" -return - -*End:: - sendinput {Blind}{End} - PriorDeadKey := "" CompKey := "" -return - -*PgUp:: - sendinput {Blind}{PgUp} - PriorDeadKey := "" CompKey := "" -return - -*PgDn:: - sendinput {Blind}{PgDn} - PriorDeadKey := "" CompKey := "" -return - -*Up:: - sendinput {Blind}{Up} - PriorDeadKey := "" CompKey := "" -return - -*Down:: - sendinput {Blind}{Down} - PriorDeadKey := "" CompKey := "" -return - -*Left:: - sendinput {Blind}{Left} - PriorDeadKey := "" CompKey := "" -return - -*Right:: - sendinput {Blind}{Right} - PriorDeadKey := "" CompKey := "" -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") ) - { - Ebene += 2 - } - - ; ist Mod4 down? Mod3 hat Vorrang! - else if ( GetKeyState("<","P") or GetKeyState("SC138","P") ) - { - Ebene += 4 - } -} - - -/************************* - 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) -} - -CompUnicodeChar(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) -} - -Comp3UnicodeChar(charCode) -{ - send {bs} - 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 - -; ------------------------------------ - -togglesuspend: - if state <> - { - state = - menu, tray, rename, %enable%, %disable% - } - else - { - state = : Deaktiviert - menu, tray, rename, %disable%, %enable% - } - - menu, tray, tip, %name%%state% - suspend -return - - -help: - Run, %A_WinDir%\hh mk:@MSITStore:autohotkey.chm -return - - -about: - msgbox, 64, %name% – Ergonomische Tastaturbelegung, - ( - %name% - `nDas Neo-Layout ersetzt das übliche deutsche - Tastaturlayout mit der Alternative Neo, - beschrieben auf http://neo-layout.org/. - `nDazu sind keine Administratorrechte nötig. - `nWenn Autohotkey aktiviert ist, werden alle Tastendrucke - abgefangen und statt dessen eine Übersetzung weitergeschickt. - `nDies geschieht transparent für den Anwender, - es muss nichts installiert werden. - `nDie Zeichenübersetzung kann leicht über das Icon im - Systemtray deaktiviert werden. `n - ) -return - - -neo: - run http://neo-layout.org/ -return - -autohotkey: - run http://autohotkey.com/ -return - -open: - ListLines ; shows the Autohotkey window -return - -edit: - edit -return - -reload: - Reload -return - -hide: - menu, tray, noicon -return - -exitprogram: - exitapp -return \ No newline at end of file diff --git a/windows/2K_XP_Vista/autohotkey/neo20-all-in-one.exe b/windows/2K_XP_Vista/autohotkey/neo20-all-in-one.exe deleted file mode 100644 index 31a37b5..0000000 Binary files a/windows/2K_XP_Vista/autohotkey/neo20-all-in-one.exe and /dev/null differ diff --git a/windows/2K_XP_Vista/autohotkey/neo20_mod-test.ahk b/windows/2K_XP_Vista/autohotkey/neo20_mod-test.ahk deleted file mode 100644 index 1531192..0000000 --- a/windows/2K_XP_Vista/autohotkey/neo20_mod-test.ahk +++ /dev/null @@ -1,2210 +0,0 @@ -/* - Titel: NEO 2.0 beta Autohotkey-Treiber - $Revision$ - $Date$ - 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