Changeset 746
- Timestamp:
- 08/12/08 02:03:21 (5 years ago)
- Location:
- windows/autohotkey
- Files:
-
- 10 modified
-
Build-Update.bat (modified) (2 diffs)
-
CHANGES.txt (modified) (1 diff)
-
Source/Changelog-and-Todo.ahk (modified) (12 diffs)
-
Source/Global-Part.ahk (modified) (13 diffs)
-
Source/Keys-Neo.ahk (modified) (7 diffs)
-
Source/Methods-Layers.ahk (modified) (1 diff)
-
Source/Methods-Other.ahk (modified) (7 diffs)
-
Source/Warning.ahk (modified) (1 diff)
-
neo20.ahk (modified) (38 diffs)
-
neo20.exe (modified) (previous)
Legend:
- Unmodified
- Added
- Removed
-
windows/autohotkey/Build-Update.bat
r689 r746 3 3 echo Setting local path variables 4 4 5 REM The path to the Auto Hotkeyprogram5 REM The path to the AutoHotkey program 6 6 set ahk=C:\Programme\AutoHotkey 7 7 8 REM The path to the authohotkey directory in the local svn copy8 REM The path to the AutoHohotkey directory in the local svn copy 9 9 set svn=. 10 10 11 REM Just some useful lshortcuts:11 REM Just some useful shortcuts: 12 12 set scr="%svn%\Source" 13 13 set fn=neo20 … … 21 21 REM if exist "%svn%\Compose\Compose-all-in-one.ahk" copy "%svn%\%fn%.ahk" + "%svn%\Compose\Compose-all-in-one.ahk" "%svn%\%fn%.ahk" 22 22 23 echo Compiling the new Driver using Auto hotkey23 echo Compiling the new Driver using AutoHotkey 24 24 "%ahk%\Compiler\Ahk2Exe.exe" /in "%svn%\%fn%.ahk" /out "%svn%\%fn%.exe" /icon "%svn%\neo.ico" 25 25 echo Driver Update complete! You can now close this log-window. -
windows/autohotkey/CHANGES.txt
r743 r746 1 == Neo 2.0 Autohotkey-Treiber für Windows ==1 == Neo 2.0 Autohotkey-Treiber f�r Windows == 2 2 3 == 2008-08-11 Matthias W ächter ==3 == 2008-08-11 Matthias W�chter == 4 4 5 Ebene4-Ziffernblock: Num padAdd und NumPadSub korriegiert5 Ebene4-Ziffernblock: NumPadAdd und NumPadSub korrigiert 6 6 7 7 8 == 2008-08-10 Matthias W ächter ==8 == 2008-08-10 Matthias W�chter == 9 9 10 • Erstmal ist fast kein Stein auf dem anderen geblieben. Die grobe Struktur und das Verhalten (natürlich auch die Tastenbelegung ist 100% NEO!) sind grundsätzlich gleich geblieben, aber einerseits hat sich im Feinen viel getan (z.B. Tab-Behandlung), andererseits schauen viele Zeilen altbekannten Codes jetzt anders aus.10 � Erstmal ist fast kein Stein auf dem anderen geblieben. Die grobe Struktur und das Verhalten (nat�rlich ist auch die Tastenbelegung 100% NEO!) sind grunds�tzlich gleich geblieben, aber einerseits hat sich im Feinen viel getan (z.B. Tab-Behandlung), andererseits schauen viele Zeilen altbekannten Codes jetzt anders aus. 11 11 12 • Beim »Booten«wird einmal EbeneAktualisieren() aufgerufen, um die Ebene sicher richtig zu haben. Dieses fragt jetzt auch den Zustand von NumLock ab, damit man es bei der NumPad-Behandlung gleich parat hat.12 � Beim �Booten� wird einmal EbeneAktualisieren() aufgerufen, um die Ebene sicher richtig zu haben. Dieses fragt jetzt auch den Zustand von NumLock ab, damit man es bei der NumPad-Behandlung gleich parat hat. 13 13 14 • Die DeadKey- und CompKey-Behandlung ist zwar im Prinzip gleich geblieben, aber die Syntax habe ich wesentlich gestrafft. Die einzelnen Subs haben jetzt nur mehr den Job, DeadKey und CompKey zu setzen, wenn dieser nach Verlassen des Subs einen Wert haben soll EbeneAktualisieren() überträgt für eine einfachere Handhabung die beiden Variablen DeadKey und CompKey nach PriorDeadKey und PriorCompKey. Letztere können im Programm abgefragt werden, während die nicht-Prior-Varianten schamlos verändert werden dürfen. Das entfernt die immer gleichen (aber doch manchmal unterschiedlichen und nicht selten lückenhaften) Zeilen a la »CompKey := ""«.14 � Die DeadKey- und CompKey-Behandlung ist zwar im Prinzip gleich geblieben, aber die Syntax habe ich wesentlich gestrafft. Die einzelnen Subs haben jetzt nur mehr den Job, DeadKey und CompKey zu setzen, wenn dieser nach Verlassen des Subs einen Wert haben soll. EbeneAktualisieren() �bertr�gt f�r eine einfachere Handhabung die beiden Variablen DeadKey und CompKey nach PriorDeadKey und PriorCompKey. Letztere k�nnen im Programm abgefragt werden, w�hrend die nicht-Prior-Varianten schamlos ver�ndert werden d�rfen. Das entfernt die immer gleichen (aber doch manchmal unterschiedlichen und nicht selten l�ckenhaften) Zeilen a la �CompKey := ""�. 15 15 16 • Ich habe ganz dreist auf Scancodes mit Virtual Keys umgestellt. Schöner wäre es natürlich gewesen, wenn ich auf die VKs hätte verzichten können, aber das führt ja zu bekannten Problemen mit AHK-Bugs, sodass Scancode-Trigger plötzlich von SendUnicodeChar-Zeilen aktiviert werden. Durch das Abfragen der VKs sind wir aber immer noch nicht soweit, dass wir Layout-agnostisch arbeiten können.16 � Ich habe ganz dreist auf Scancodes mit Virtual Keys umgestellt. Sch�ner w�re es nat�rlich gewesen, wenn ich auf die VKs h�tte verzichten k�nnen, aber das f�hrt ja zu bekannten Problemen mit AHK-Bugs, sodass Scancode-Trigger pl�tzlich von SendUnicodeChar-Zeilen aktiviert werden. Durch das Abfragen der VKs sind wir aber immer noch nicht soweit, dass wir Layout-agnostisch arbeiten k�nnen. 17 17 18 • Dabei gibt es noch ein paar wesentliche Änderungen im Bereich der Tastentrigger: Erstens gehen alle bekannten Scancodes für den NumPad auf paarweise gemeinsame Routinen. Das hält sie nicht nur konsistent, sondern ermöglicht erst eine konsequente Analyse in Zusammenhang mit NumLock und Shift. Zweitens wird bei der Tab-Taste _nur_ mehrder Trigger ohne Modifier abgefragt. Das bedeutet, dass beispielsweise Tab in Verbindung mit Alt an unserem Skript vorbei geschleust wird, um Probleme zu verhindern.18 � Dabei gibt es noch ein paar wesentliche �nderungen im Bereich der Tastentrigger: Erstens gehen alle bekannten Scancodes f�r den NumPad auf paarweise gemeinsame Routinen. Das h�lt sie nicht nur konsistent, sondern erm�glicht erst eine konsequente Analyse in Zusammenhang mit NumLock und Shift. Zweitens wird bei der Tab-Taste _nur_ noch der Trigger ohne Modifier abgefragt. Das bedeutet, dass beispielsweise Tab in Verbindung mit Alt an unserem Skript vorbei geschleust wird, um Probleme zu verhindern. 19 19 20 • Drittens, und eines eigenen Punktes in dieser Liste würdig, werden die Modifier in deutlich reduziertem Umfang abgefragt und nur die wirklich interessanten Fälle behandelt. Auch das erlaubt beispielsweise der Alt-Taste wieder ungestörten Einsatz, Shifts werden ganz normal der Applikation gemeldet, wenn sie gedrückt sind, und weniger Merkwürdigkeiten mir lange gehaltenen Modifiern. Grundsätzlich ist in diesem Bereich aber einer der Schwachpunkte des AHK-Skriptssauberer Key-Repeat.20 � Schlie�lich, und eines eigenen Punktes in dieser Liste w�rdig, werden die Modifier in deutlich reduziertem Umfang abgefragt und nur die wirklich interessanten F�lle behandelt. Auch das erlaubt beispielsweise der Alt-Taste wieder ungest�rten Einsatz, Shifts werden ganz normal der Applikation gemeldet, wenn sie gedr�ckt sind, und weniger Merkw�rdigkeiten mit lange gehaltenen Modifiern. Grunds�tzlich ist in diesem Bereich aber einer der Schwachpunkte des AHK-Skripts sauberer Key-Repeat. 21 21 22 • In jedem Fall laufen bei mir alle Modifier-Locks: Shift+Shift in jedwelcher Reihenfolge für CapsLock, Mod3+Mod3 genauso, und auch Mod4-Lock spielt auf die Art problemlos!22 � In jedem Fall laufen bei mir alle Modifier-Locks: Shift+Shift in jedwelcher Reihenfolge f�r CapsLock, Mod3+Mod3 genauso, und auch Mod4-Lock spielt auf die Art problemlos! 23 23 24 • Bei mir hat die Bildschirmtastatur nicht richtig funktionieren wollen, wenn ich das all.ahk aus dem source/-Verzeichnis verwendet habe. Ein kleiner Patch, und schon geht’s. Ein Refresh beim ersten Start war auch eingebaut, der hat ein unnötiges Flackern produziert. Vielleicht braucht ihn ja wer, bitte melden (mit Begründung!). Außerdem habe ich die Abfragen für die Funktionstasten und von Shift+Pause im Stil der anderen Tasten abgeändert.24 � Bei mir hat die Bildschirmtastatur nicht richtig funktionieren wollen, wenn ich das all.ahk aus dem source/-Verzeichnis verwendet habe. Ein kleiner Patch, und schon geht�s. Ein Refresh beim ersten Start war auch eingebaut, der hat ein unn�tiges Flackern produziert. Vielleicht braucht ihn ja wer, bitte melden (mit Begr�ndung!). Au�erdem habe ich die Abfragen f�r die Funktionstasten und von Shift+Pause im Stil der anderen Tasten abge�ndert. 25 25 26 • Nachdem ich viel Zeit verplempert hatte, weil ich den Unterschied zwischen »if Ebene = 2« und »if (Ebene = 2)« nicht gekannt und daher den ganzen Quellcode großzügig editiert hatte, um dann herauszufinden, dass es so nicht geht‘, habe ich jetzt konsequent (hoffentlich) alle Abfragen mit »if ()«, also mit konsequenter Klammersetzung zur richtigen Evaluirung durch AHK gemacht.26 � Nachdem ich viel Zeit verplempert hatte, weil ich den Unterschied zwischen �if Ebene = 2� und �if (Ebene = 2)� nicht gekannt und daher den ganzen Quellcode gro�z�gig editiert hatte, um dann herauszufinden, dass es so nicht geht, habe ich jetzt konsequent (hoffentlich) alle Abfragen mit �if ()�, also mit konsequenter Klammersetzung zur richtigen Evaluierung durch AHK gemacht. 27 27 28 • Nicht ganz fertig bin ich mit meinem deadKeys-deadComposeKeys geworden: Über Tastendrücke (z.B. Mod4+F9) sollen sich die Deadkeys und ComposeKeys tatsächlich dergestalt »umbringen«, dass sie nicht mehr am Schirm erscheinen, wodurch das Skript sie auch nicht mehr mit {bs} löschen muss, wenn das endgültige Zeichen fest steht. Für die DeadKeys ist’s schon drinnen, aber für die Compose-Sachen müsste ich die Logik ein weiteres Mal auf den Kopf stellen, und das ist mir für heute einfach zu viel.28 � Nicht ganz fertig bin ich mit meinem deadKeys-deadComposeKeys geworden: �ber Tastendr�cke (z.B. Mod4+F9) sollen sich die Deadkeys und ComposeKeys tats�chlich dergestalt �umbringen�, dass sie nicht mehr am Schirm erscheinen, wodurch das Skript sie auch nicht mehr mit {bs} l�schen muss, wenn das endg�ltige Zeichen fest steht. F�r die DeadKeys ist�s schon drinnen, aber f�r die Compose-Sachen m�sste ich die Logik ein weiteres Mal auf den Kopf stellen, und das ist mir f�r heute einfach zu viel. 29 29 30 • Für das Abfragen von gemerkten DeadKeys und CompKeys habe ich Routinen geschrieben, die sich mit einem Shortcut-Evaluations-Trick recht kompakt darstellen lassen. Zusätzlich habe ich bei den Buchstaben die Abfragen für die Ebenen 1 und 2 zusammen gelegt, was nochmals deutlich Platz spart und der Übersichtlichkeit dienlich ist.30 � F�r das Abfragen von gemerkten DeadKeys und CompKeys habe ich Routinen geschrieben, die sich mit einem Shortcut-Evaluations-Trick recht kompakt darstellen lassen. Zus�tzlich habe ich bei den Buchstaben die Abfragen f�r die Ebenen 1 und 2 zusammen gelegt, was nochmals deutlich Platz spart und der �bersichtlichkeit dienlich ist. 31 31 32 • Ich habe jetzt, wo möglich, doch die Ausgabe mit »send« der mit »SendUnicodeChar« vorgezogen, da so manches Windows-Programm doch nicht ganz so intelligent wie der Rest der Meute ist. Andererseits habe ich ziemlich konsequent mit {blind} gearbeitet. Ein paar Passagen fehlen noch, insbesondere auf Ebene 2, die noch ohne {blind} sind diese sollte man wohl umstellen auf »send {blind}{Shift up}..{shift down}«, um auch mit Alt, Strg und Win korrekt kombinieren zu können (Shift fällt ja leider flach, da bereits gedrückt).32 � Ich habe jetzt, wo m�glich, doch die Ausgabe mit �send� der mit �SendUnicodeChar� vorgezogen, da so manches Windows-Programm doch nicht ganz so intelligent wie der Rest der Meute ist. Andererseits habe ich ziemlich konsequent mit {blind} gearbeitet. Ein paar Passagen fehlen noch, insbesondere auf Ebene 2, die noch ohne {blind} sind, diese sollte man wohl umstellen auf �send {blind}{Shift up}..{shift down}�, um auch mit Alt, Strg und Win korrekt kombinieren zu k�nnen (Shift f�llt ja leider flach, da bereits gedr�ckt). 33 33 34 • Diverse Compose-Namen habe ich gekürzt wenn man case sensitive vergleichen möchte, muss man nur mit == abfragen, statt die Strings auf beispielsweise »r_capital«zu setzen.34 � Diverse Compose-Namen habe ich gek�rzt, wenn man case-sensitive vergleichen m�chte, muss man nur mit == abfragen, statt die Strings auf beispielsweise �r_capital� zu setzen. 35 35 36 • Die Sache mit Capslock ist für meinen Geschmack immer noch nicht befriedigend gelöst, scheint aber im Moment ganz gut zu laufen. Mit Compose verträgt sich CapsLock garnicht, außer man erwartet bei aktiviertem CapsLock nach Eingabe von »R12« das da: ⅻ.36 � Die Sache mit Capslock ist f�r meinen Geschmack immer noch nicht befriedigend gel�st, scheint aber im Moment ganz gut zu laufen. Mit Compose vertr�gt sich CapsLock garnicht, au�er man erwartet bei aktiviertem CapsLock nach Eingabe von �R12� das da: ?. 37 37 38 • Ungeachtet der Vorschläge, wie mit dem NumPad weiter vor zu gehen ist, habe ich es jetzt erst mal -Y¥unangetastet´lassen, wenn man bei solch einer Baustelle noch von Unversehrtheit sprechen kann.38 � Ungeachtet der Vorschl�ge, wie mit dem NumPad weiter vor zu gehen ist, habe ich es jetzt erst mal unangetastet lassen, wenn man bei solch einer Baustelle noch von Unversehrtheit sprechen kann. 39 39 40 • Das Numpad auf Ebene 4 unter der rechten Hand habe ich derart abgeändert, dass es statt der blanken Zahlen NumPad-Codes liefert. Damit kann man es reichhaltiger verwenden als die Tasten in Zeile 1. Auch die Cursortasten auf gleicher Ebene, linke Hand, werden jetzt {blind} geschickt, um diverse Navigationsmöglichkeiten mit den anderen Modifiern (Shift, Strg) zu öffnen.40 � Das Numpad auf Ebene 4 unter der rechten Hand habe ich derart abge�ndert, dass es statt der blanken Zahlen NumPad-Codes liefert. Damit kann man es reichhaltiger verwenden als die Tasten in Zeile 1. Auch die Cursortasten auf gleicher Ebene, linke Hand, werden jetzt {blind} geschickt, um diverse Navigationsm�glichkeiten mit den anderen Modifiern (Shift, Strg) zu �ffnen. 41 41 42 • Insgesamt hat sich der Code-Umfang drastisch verringert: mein fertiges neo20.ahk hat jetzt nur mehr 93 kB, wo das alte noch 126 kB hatte. Das ist mit 33 kB fast ¼ weniger Code! Ob’s auch damit ¼ weniger Bugs sind, kann ich nicht sagen …;-)42 � Insgesamt hat sich der Code-Umfang drastisch verringert: meine fertige neo20.ahk hat jetzt nur noch 93 kB, wogegen die alte noch 126 kB hatte. Das ist mit 33 kB fast � weniger Code! Ob�s damit auch � weniger Bugs sind, kann ich nicht sagen � ;-) 43 43 44 44 Known Bugs: 45 45 =========== 46 46 47 • Ich kann keine Flash-Spiele spielen (Firefox), die die Tastatur benötigen. Ist das bekannt? Ist davon auch Java betroffen?47 � Ich kann keine Flash-Spiele spielen (Firefox), die die Tastatur ben�tigen. Ist das bekannt? Ist davon auch Java betroffen? 48 48 49 •Manche Compose-Kombinationen zwischen den Zahlen habe ich auf dem NumPad vereinheitlicht aber noch nicht auf Zeile 1.49 � Manche Compose-Kombinationen zwischen den Zahlen habe ich auf dem NumPad vereinheitlicht aber noch nicht auf Zeile 1. 50 50 51 • Die diversen Compose-Experimentierkästen unter Compose/ habe ich nicht angerührt, sie werden woht auch kleine Anpassungen benötigen.51 � Die diversen Compose-Experimentierk�sten unter Compose/ habe ich nicht anger�hrt, sie werden wohl auch kleine Anpassungen ben�tigen. 52 52 53 • Der Patch ist in dieser Form quasi ungetestet. Die wichtigsten funktionalen Änderungen wie die Mod-Lock und das Zusammenführen der Numlock-Numpad-Ebenen habe ich schon vor diesem Patch ausprobiert, aber insbesondere die diversen CheckDead* und CheckComp*-Aufrufe sind erst vor ein paar Stunden entstanden.53 � Der Patch ist in dieser Form quasi ungetestet. Die wichtigsten funktionalen �nderungen wie die Mod-Lock und das Zusammenf�hren der Numlock-Numpad-Ebenen habe ich schon vor diesem Patch ausprobiert, aber insbesondere die diversen CheckDead* und CheckComp*-Aufrufe sind erst vor ein paar Stunden entstanden. -
windows/autohotkey/Source/Changelog-and-Todo.ahk
r744 r746 1 /* 1 /************************************ 2 * NEO 2.0 (beta) AutoHotkey-Treiber * 2 3 ************************************* 3 * NEO 2.0 (beta) Autohotkey-Treiber * 4 ************************************* 4 5 5 Autoren: 6 6 Stefan Mayer <stm (at) neo-layout. o r g> 7 Nora Gei ssler <nora_geissler (at) yahoo. d e>7 Nora Gei�ler <nora_geissler (at) yahoo. d e> 8 8 Matthias Berg <neo (at) matthias-berg. e u> 9 9 Martin Roppelt <m.p.roppelt (at) web. d e> 10 10 Dennis Heidsiek <HeidsiekB (at) aol. c o m> 11 Matthias W�chter <matthias (at) waechter. . w i z .. a t>11 Matthias W�chter <matthias (at) waechter.wiz. a t> 12 12 ... 13 14 15 13 16 14 ********* 17 15 * TODO: * 18 16 ********* 19 - Die Bildschirmtastatur mit Mod4 hat den Mod4-Lock deaktiviert!20 17 - Compose vollst�ndig implementieren (Welche Methode ist hierzu am besten geeignet?) 21 18 - ausgiebig testen... (besonders Vollst�ndigkeit bei Deadkeys) … … 24 21 - Die Ebenen vom Tastenblock an die neue Referenz anpassen (wenn da ein Konsens gefunden wurde) 25 22 26 27 23 ********** 28 24 * IDEEN: * 29 25 ********** 30 - Tastatur-Reset: mod4+escape (oder ev. ein anderer Hotkey) soll die Tastatur wieder in den Normalzustand versetzen (d.h. alle Ebenen unlocken und Einhand, Lang-s oder Sonstwelche-Modi deaktivieren) 31 - Die Varianten (lernModus, einHandNeo, Lang-s-Tastatur, Qwertz/pausieren) sollten einheitlich (de-)aktiviert werden, etwa �ber Mod4 F9-F12 32 - bei Ebene 4 rechte Hand (Numpad) z.B. Numpad5 statt 5 senden 33 34 26 - Die Varianten (lernModus, einHandNeo, Lang-s-Tastatur, Qwertz/pausieren) sollten einheitlich (de-)aktiviert werden, etwa �ber M4+F9-F12 35 27 36 28 ****************** … … 38 30 ****************** 39 31 32 Revision 746 (von Martin Roppelt) 33 - Zur�cksetzen der Tastatur �ber M4+Esc 34 - #(2L) sendet nicht mehr ' 35 - Variablen Ebene7 und Ebene8 zum Abfragen eingef�hrt 36 - s(12)(2L)-Bug von Matthias W�chter behoben 40 37 Revision 744 (von Stefan Mayer) 41 38 - Ebene4-Ziffernblock: auf neo_d nun Komma (wie Referenz), "NumPadKomma" gibt es nicht … … 44 41 Revision 740 (von Matthias W�chter, commit durch HCW) 45 42 - "Mega-Patch" (Skript verk�rzt, Ebenenabfrage ver�ndert, ...), siehe CHANGES.txt 43 - Blinde tote Tasten auf M4+F9 (Toggle) 44 - Blinde Compose auf M4+F10 (Toggle) 46 45 Revision 728 (von Dennis Heidsiek): 47 - Ist die Datei [...]\Anwendungsdaten\NEO2\NEO2.ini vorhanden, werden dort eventuell vonhandene Werte f�r die Globalen Schalter beim Start �bernommen 46 - Ist die Datei %APPDATA%\NEO2\NEO2.ini vorhanden, werden dort eventuell vorhandene Werte f�r die Globalen Schalter beim Start �bernommen 47 - �LangSTastaturStandardm��igEingeschaltet.ahk� wird nicht mehr unterst�tzt, weil sonst immer neu kompiliert werden muss 48 48 Revision 707 (von Dennis Heidsiek): 49 - Die Resourcen-Dateien (PNGs, ICOs) werden nun nach "Von Windows vorgegebenes TEMP Verzeichnis\NEO2\ extrahiert und nicht mehr in das Verzeichnis, in dem sich die EXE befindet49 - Die Resourcen-Dateien (PNGs, ICOs) werden nun nach %TEMP%\NEO2\ extrahiert und nicht mehr in das Verzeichnis, in dem sich die EXE befindet 50 50 - Die doppelten franz�sischen Anf�hrungszeichen werden nun ebenfalls �ber SendUnicodeChar gesendet 51 51 Revision 694 (von Martin Roppelt): 52 - LangSTastatur auf F11 (Ebene 4)52 - LangSTastatur auf M4+F11 53 53 - Entwickler k�nnen durch das Erstellen einer Datei �LangSTastaturStandardm��igEingeschaltet.ahk� mit dem Inhalt �LangSTastatur := 1� diese standardm��ig aktivieren 54 54 - Mehrere DeadKeys aktualisiert (T*, Ebene 4 und T*, Ebene 5) … … 57 57 - (An/Aus) Icons an Favicon der neuen Homepage angepasst 58 58 Revision 645 (von Martin Roppelt): 59 - Ellipse zus�tzlich auf M3+x ;59 - Ellipse zus�tzlich auf M3+x 60 60 - Lang-s-Tastatur probeweise auf M4+Esc 61 61 Revision 640 (von Dennis Heidsiek): … … 64 64 - Lang-s-Tastatur kann nicht mehr durch einen Hotkey aktiviert werden 65 65 Revision 629 (von Martin Roppelt): 66 - Spitze Klammern (bra und ket) testweiseauf M5+8/966 - Spitze Klammern (bra und ket) auf M5+8/9 67 67 Revision 624 (von Martin Roppelt): 68 68 - Lang-s-Tastatur (ein- und auszuschalten durch Mod4+�) 69 69 Revision 616 (von Dennis Heidsiek): 70 - Der nicht funktionierende Mod5-Lock-Fix wurde wieder entfernt, da er sogar neue Fehler produzierte .70 - Der nicht funktionierende Mod5-Lock-Fix wurde wieder entfernt, da er sogar neue Fehler produzierte 71 71 Revision 615 (von Dennis Heidsiek): 72 - Erfolgloser Versuch, den Mod4-Lock wiederherzustellen (durch eine Tilde vor den Scancodes der Bildschirmtastatur) .73 - Rechtschreibfehler korrigiert .74 - Zwei AHK-Links eingef�gt .72 - Erfolgloser Versuch, den Mod4-Lock wiederherzustellen (durch eine Tilde vor den Scancodes der Bildschirmtastatur) 73 - Rechtschreibfehler korrigiert 74 - Zwei AHK-Links eingef�gt 75 75 Revision 609 (von Dennis Heidsiek): 76 - Vorl�ufiger Abschluss der AHK-Modularisierung .77 - Bessere Testm�glichkeit �All.ahk� f�r AHK-Entwickler hinzugef�gt, bei der sich die Zeilenangaben in Fehlermeldungen auf die tats�chlichen Module und nicht auf das gro�e �vereinigte� Skript beziehen .76 - Vorl�ufiger Abschluss der AHK-Modularisierung 77 - Bessere Testm�glichkeit �All.ahk� f�r AHK-Entwickler hinzugef�gt, bei der sich die Zeilenangaben in Fehlermeldungen auf die tats�chlichen Module und nicht auf das gro�e �vereinigte� Skript beziehen 78 78 Revision 608 (von Martin Roppelt): 79 - Rechtschreibfehler korrigiert und Dateinamen aktualisiert und sortiert .79 - Rechtschreibfehler korrigiert und Dateinamen aktualisiert und sortiert 80 80 Revision 590 (von Dennis Heidsiek): 81 - Erste technische Vorarbeiten zur logischen Modularisierung des viel zu lange gewordenen AHK-Quellcodes .81 - Erste technische Vorarbeiten zur logischen Modularisierung des viel zu lange gewordenen AHK-Quellcodes 82 82 - Neue Batch-Datei Build-Update.bat zur einfachen Aktualisierung der EXE-Datei 83 83 Revision 583 (von Dennis Heidsiek): 84 - Kleinere Korrekturen (M od3+Numpad5, Mod5+Numpad5 und Mod3+Numpad9 stimmen wieder mit der Referenz �berein).84 - Kleinere Korrekturen (M3+NP5, M5+NP5 und M3+NP9 stimmen wieder mit der Referenz �berein) 85 85 Revision 580 (von Matthias Berg): 86 86 - Bildschirmtastatur jetzt mit Mod4+F* statt Strg+F*, dies deaktiviert jedoch leider den Mod4-Lock … … 89 89 Revision 568 (von Matthias Berg): 90 90 - Sonderzeichen, Umlaute, z und y durch ScanCodes ersetzt 91 * jetzt wird auch bei eingestelltem US Layout Neo verwendet .(z.B. f�r Chinesische InputMethodEditors)92 * rechter Mod3 geht noch nicht bei US Layout (weder ScanCode noch "\")91 * jetzt wird auch bei eingestelltem US Layout Neo verwendet (z.B. f�r Chinesische InputMethodEditors) 92 * rechter Mod3 geht noch nicht bei US-Layout (weder ScanCode noch "\") 93 93 Revision 567 (von Dennis Heidsiek): 94 - Aktivierter Mod4 Lock wird jetzt �ber die Rollen-LED des Keybord angezeigt (analog zu CapsLock), die NUM-LED beh�lt ihr bisheriges Verhalten94 - Aktivierter Mod4-Lock wird jetzt �ber die Rollen-LED des Keybord angezeigt (analog zu CapsLock), die Num-LED beh�lt ihr bisheriges Verhalten 95 95 - Neue Option im Skript: UseMod4Light 96 96 Revision 561 (von Matthias Berg): 97 - Ebene 4Tab verh�lt sich jetzt wie das andere Tab dank "goto neo_tab"97 - M4+Tab verh�lt sich jetzt wie das andere Tab dank "goto neo_tab" 98 98 Revision 560 (von Dennis Heidsiek): 99 99 - Neue Option im Skript: bildschirmTastaturEinbinden bindet die PNG-Bilder der Bildschirmtastur mit in die exe-Datei ein, so dass sich der Benutzer nur eine Datei herunterladen muss … … 110 110 * im Skript konfigurierbar 111 111 * Schaltet z.B. Qwertz Tasten aus, die es auf der 4. Ebene gibt (Return, Backspace,...) 112 * Kann auch Backspace und/oder Entfernen der 4. Ebene ausschalten (gut zum Lernen richtig zu schreiben)112 * Kann auch Backspace und/oder Entfernen der 4. Ebene ausschalten (gut zum Lernen, richtig zu schreiben) 113 113 - Bug aufgetaucht: Icons werden nicht mehr angezeigt 114 114 Revision 544 (von Stefan Mayer): … … 120 120 - nurEbenenFuenfUndSechs umbenannt in ahkTreiberKombi und auf Ebene 4 statt 5 und 6 ge�ndert 121 121 Revision 540 (von Matthias Berg): 122 - stark �berarbeitet um Wartbarkeit zu erh�hen und Redundanz zu ver ingern122 - stark �berarbeitet um Wartbarkeit zu erh�hen und Redundanz zu verringern 123 123 - nurEbenenFuenfUndSechs sollte nun auch auf Neo Treiber statt Qwertz laufen 124 124 * aber es muss noch jemand testen 125 125 * Problem: was kann man abfangen, wenn eine tote Taste gedr�ckt wird 126 126 - einHandNeo: 127 * An-/Ausschalten mit S TRG+Punkt127 * An-/Ausschalten mit Strg+Punkt 128 128 * Buchstaben der rechten Hand werden mit Space zur linken Hand 129 129 * Nebeneffekt: es gibt beim Festhalten von Space keine wiederholten Leerzeichen mehr 130 130 Revision 532 (von Matthias Berg): 131 131 - BildschirmTastatur 132 * aktiviert mit strg+F1 bis 7schaltet Keyboard ein oder aus133 * strg+F7 zeigt die zuletzt angezeigte Ebene an (und wieder aus).134 * strg+F8 schaltet AlwaysOnTop um132 * aktiviert mit Strg+F1 bis 7, schaltet Keyboard ein oder aus 133 * Strg+F7 zeigt die zuletzt angezeigte Ebene an (und wieder aus) 134 * Strg+F8 schaltet AlwaysOnTop um 135 135 Revision 529 (von Stefan Mayer): 136 136 - Icon wird automatisch geladen, falls .ico-Dateien im selbem Ordner 137 - in der .exe sind die .ico mitgespeichert und werden geladen137 - In der .exe sind die .ico mitgespeichert und werden geladen 138 138 Revision 528 (von Matthias Berg): 139 139 - Neo-Icon … … 141 141 (siehe globale Schalter) 142 142 - Mod3-Lock (nur wenn rechtes Mod3 zuerst gedr�ckt wird, andere L�sung f�hrte zum Caps-Bug) 143 - Mod4-Lock (nur wenn das linke Mod4 zuerst gedr�ckt wird, andere L�sung f�h te zum AltGr-Bug)143 - Mod4-Lock (nur wenn das linke Mod4 zuerst gedr�ckt wird, andere L�sung f�hrte zum AltGr-Bug) 144 144 - Ein paar falsche Zeichen korrigiert 145 145 Revision 527 (von Matthias Berg): 146 - AltGr Problem hoffentlich behoben147 - Umschalt+Mod4 Bug behoben146 - AltGr-Problem hoffentlich behoben 147 - Umschalt+Mod4-Bug behoben 148 148 Revision 526 (von Matthias Berg): 149 149 - Ebenen 1 bis 4 ausschalten per Umschalter siehe erste Codezeile nurEbenenFuenfUndSechs = 0 … … 162 162 - vertikale Ellipse eingebaut 163 163 - Umschalt+Umschalt f�r Capslock statt Mod3+Mod3 164 - bei Suspend wird jetzt wirklich togglesuspend aufgerufen (auch beim aktivieren per shift+pause)164 - bei Suspend wird jetzt wirklich togglesuspend aufgerufen (auch beim Aktivieren per shift+pause) 165 165 Revsion 490 (von Stefan Mayer): 166 166 - SUBSCRIPT von 0 bis 9 sowie (auf Ziffernblock) + und - … … 172 172 � r�mische Zahlen 173 173 � Ligaturen und Copyright 174 175 176 177 174 */ 178 175 179 180 -
windows/autohotkey/Source/Global-Part.ahk
r740 r746 1 1 2 2 3 /**************** ****4 Verzeichnisse*5 ***************** ****3 /**************** 4 * Verzeichnisse * 5 ***************** 6 6 */ 7 7 ; Setzt den Pfad zu einem tempor�ren Verzeichnis … … 17 17 18 18 19 /****************** 20 Globale Schalter *21 ******************* 19 /******************* 20 * Globale Schalter * 21 ******************** 22 22 */ 23 23 … … 25 25 ; Syntaxhinweis: IniRead, Variable, InputFilename, Section, Key [, DefaultValue] 26 26 27 28 27 ; Sollen die Bilder f�r die Bildschirmtastatur in die compilierte EXE-Datei miteingebunden werden? (Nachteil: gr�ssere Dateigr�sse, Vorteil: Referenz f�r Anf�nger stets einfach verf�gbar) 29 28 bildschirmTastaturEinbinden := 1 … … 38 37 IniRead, lernModus, %ApplicationFolder%\NEO2.ini, Global, lernModus, 0 39 38 40 ; Aktivierter Mod4-Lock wird �ber die Rollen-LED des Keybord angezeigt (analog zu CapsLock)39 ; Soll aktivierter Mod4-Lock �ber die Rollen-LED des Keybord angezeigt werden (analog zu CapsLock)? 41 40 IniRead, UseMod4Light, %ApplicationFolder%\NEO2.ini, Global, UseMod4Light, 1 42 41 43 ; Soll Lang-s auf s, s auf � und � auf Mod3+�gelegt (bzw. vertauscht) werden?42 ; Soll Lang-s auf s, s auf � und � auf Lang-s gelegt (bzw. vertauscht) werden? 44 43 IniRead, LangSTastatur, %ApplicationFolder%\NEO2.ini, Global, LangSTastatur, 0 45 44 46 47 48 /************************* 49 Recourcen-Verwaltung * 50 ************************** 51 */ 52 45 ; Sollen tote Tasten blind angezeigt werden? 46 IniRead, DeadCompose, %ApplicationFolder%\NEO2.ini, Global, DeadCompose, 0 47 48 ;Sollen Compose-Tasten blind angezeigt werden? 49 IniRead, DeadSilence, %ApplicationFolder%\NEO2.ini, Global, DeadSilence, 0 50 51 52 /*********************** 53 * Recourcen-Verwaltung * 54 ************************ 55 */ 53 56 54 57 if(FileExist("ResourceFolder") <> false) { 55 ; Versuche, alle m�glicherweise in die EXE eingebundenen Dateien zu extrahieren56 FileInstall, neo.ico, %ResourceFolder%\neo.ico, 157 FileInstall, neo_disabled.ico, %ResourceFolder%\neo_disabled.ico, 158 iconBenutzen = 159 if (bildschirmTastaturEinbinden==1) {60 FileInstall, ebene1.png, %ResourceFolder%\ebene1.png, 161 FileInstall, ebene2.png, %ResourceFolder%\ebene2.png, 162 FileInstall, ebene3.png, %ResourceFolder%\ebene3.png, 163 FileInstall, ebene4.png, %ResourceFolder%\ebene4.png, 164 FileInstall, ebene5.png, %ResourceFolder%\ebene5.png, 165 FileInstall, ebene6.png, %ResourceFolder%\ebene6.png, 166 zeigeBildschirmTastatur = 167 }58 ; Versuche, alle m�glicherweise in die EXE eingebundenen Dateien zu extrahieren 59 FileInstall, neo.ico, %ResourceFolder%\neo.ico, 1 60 FileInstall, neo_disabled.ico, %ResourceFolder%\neo_disabled.ico, 1 61 iconBenutzen = 1 62 if (bildschirmTastaturEinbinden==1) { 63 FileInstall, ebene1.png, %ResourceFolder%\ebene1.png, 1 64 FileInstall, ebene2.png, %ResourceFolder%\ebene2.png, 1 65 FileInstall, ebene3.png, %ResourceFolder%\ebene3.png, 1 66 FileInstall, ebene4.png, %ResourceFolder%\ebene4.png, 1 67 FileInstall, ebene5.png, %ResourceFolder%\ebene5.png, 1 68 FileInstall, ebene6.png, %ResourceFolder%\ebene6.png, 1 69 zeigeBildschirmTastatur = 1 70 } 68 71 } else { 69 MsgBox, "Das Verzeichnis %ResourceFolder% konnte nicht angelegt werden!" ; Diese Zeile dient nur der eventuellen Fehlersuche und sollte eigentlich niemals auftauchen.72 MsgBox, "Das Verzeichnis %ResourceFolder% konnte nicht angelegt werden!" ; Diese Zeile dient nur der eventuellen Fehlersuche und sollte eigentlich niemals auftauchen. 70 73 } 71 74 … … 77 80 78 81 79 /************************* 80 lernModus Konfiguration *81 nur relevant wenn *82 lernModus = 1 *83 Strg+Komma schaltet um *84 ************************** 82 /************************** 83 * lernModus Konfiguration * 84 * nur relevant wenn * 85 * lernModus = 1 * 86 * Strg+Komma schaltet um * 87 *************************** 85 88 */ 86 89 ; 0 = aus, 1 = an 87 88 90 89 91 ; die Nachfolgenden sind n�tzlich um sich die Qwertz-Tasten abzugew�hnen, da alle auf der 4. Ebene vorhanden. … … 102 104 lernModus_std_ZahlenReihe = 0 103 105 104 105 106 106 ; im folgenden kann man auch noch ein paar Tasten der 4. Ebene deaktivieren 107 107 ; n�tzlich um sich zu zwingen, richtig zu schreiben … … 109 109 lernModus_neo_Entf = 1 110 110 111 112 113 114 ; aus Noras script kopiert: 115 111 ; aus Noras Skript kopiert: 116 112 Process,Priority,,High 117 118 113 #usehook on 119 114 #singleinstance force … … 121 116 ; Quelltext kann einger�ckt werden, 122 117 ; msgbox ist trotzdem linksb�ndig 123 124 118 SetTitleMatchMode 2 125 119 SendMode Input 126 127 120 name = Neo 2.0 128 121 enable = Aktiviere %name% … … 139 132 if inputlocale <> 00000407 140 133 { 141 suspend142 regread, inputlocale, HKEY_LOCAL_MACHINE143 , SYSTEM\CurrentControlSet\Control\Keyboard Layouts\%inputlocale%144 , Layout Text145 msgbox, 48, Warnung!,146 (147 Nicht kompatibles Tastaturlayout:148 `t%inputlocale%149 `nDas deutsche QWERTZ muss als Standardlayout eingestellt150 sein, damit %name% wie erwartet funktioniert.151 `n�ndern Sie die Tastatureinstellung unter152 `tSystemsteuerung153 `t-> Regions- und Sprachoptionen154 `t-> Sprachen155 `t-> Details... `n156 )157 exitapp134 suspend 135 regread, inputlocale, HKEY_LOCAL_MACHINE 136 , SYSTEM\CurrentControlSet\Control\Keyboard Layouts\%inputlocale% 137 , Layout Text 138 msgbox, 48, Warnung!, 139 ( 140 Nicht kompatibles Tastaturlayout: 141 `t%inputlocale% 142 `nDas deutsche QWERTZ muss als Standardlayout eingestellt 143 sein, damit %name% wie erwartet funktioniert. 144 `n�ndern Sie die Tastatureinstellung unter 145 `tSystemsteuerung 146 `t-> Regions- und Sprachoptionen 147 `t-> Sprachen 148 `t-> Details... `n 149 ) 150 exitapp 158 151 } 159 160 152 161 153 … … 164 156 165 157 if (iconBenutzen) 166 menu, tray, icon, %ResourceFolder%\neo.ico,,1158 menu, tray, icon, %ResourceFolder%\neo.ico,,1 167 159 menu, tray, nostandard 168 160 menu, tray, add, �ffnen, open 169 menu, helpmenu, add, About, about170 menu, helpmenu, add, Autohotkey-Hilfe, help171 menu, helpmenu, add172 menu, helpmenu, add, http://&autohotkey.com/, autohotkey173 menu, helpmenu, add, http://www.neo-layout.org/, neo161 menu, helpmenu, add, About, about 162 menu, helpmenu, add, Autohotkey-Hilfe, help 163 menu, helpmenu, add 164 menu, helpmenu, add, http://&autohotkey.com/, autohotkey 165 menu, helpmenu, add, http://www.neo-layout.org/, neo 174 166 menu, tray, add, Hilfe, :helpmenu 175 167 menu, tray, add … … 186 178 187 179 /* 188 Variablen initialisieren180 Variablen initialisieren 189 181 */ 190 182 … … 194 186 PriorCompKey = "" 195 187 Ebene12 = 0 188 196 189 EbeneAktualisieren() 197 190 198 191 199 200 201 202 192 /* 203 EinHandNeo193 EinHandNeo 204 194 */ 205 195 spacepressed := 0 … … 238 228 239 229 240 241 230 ;Blinde/Sichtbare Tote Tasten 231 *F9:: 232 if (isMod4pressed()) 233 DeadSilence := not(DeadSilence) 234 else 235 send {blind}{F9} 236 return 237 238 ;Blinde/Sichtbare Compose 239 *F10:: 240 if (isMod4pressed()) 241 DeadCompose := not(DeadCompose) 242 else 243 send {blind}{F10} 244 return 245 246 ;Lang-s-Tastatur: 247 *F11:: 248 if (isMod4pressed()) 249 LangSTastatur := not(LangSTastatur) ; schaltet die Lang-s-Tastatur ein und aus 250 else 251 send {blind}{F11} 252 return 253 254 *Esc:: 255 if (isMod4pressed()) 256 reload 257 else 258 send {blind}{Esc} 259 return -
windows/autohotkey/Source/Keys-Neo.ahk
r744 r746 2 2 Die eigentliche NEO-Belegung und der Hauptteil des AHK-Treibers. 3 3 4 5 Ablauf bei toten Tasten: 6 1. Ebene Aktualisieren 7 2. Abh�ngig von der Variablen "Ebene" Zeichen ausgeben und die Variable "PriorDeadKey" setzen 8 9 Ablauf bei "untoten" Tasten: 10 1. Ebene Aktualisieren 11 2. Abh�ngig von den Variablen "Ebene" und "PriorDeadKey" Zeichen ausgeben 12 3. "PriorDeadKey" mit leerem String �berschreiben 13 14 ------------------------------------------------------ 15 Reihe 1 16 ------------------------------------------------------ 4 Ablauf bei toten Tasten: 5 1. Ebene Aktualisieren 6 2. Abh�ngig von der Variablen "Ebene" Zeichen ausgeben und die Variable "PriorDeadKey" setzen 7 8 Ablauf bei "untoten" Tasten: 9 1. Ebene Aktualisieren 10 2. Abh�ngig von den Variablen "Ebene" und "PriorDeadKey" Zeichen ausgeben 11 3. "PriorDeadKey" mit leerem String �berschreiben 12 13 Reihe 1 17 14 */ 18 15 19 16 20 17 neo_tot1: 21 EbeneAktualisieren()22 if (Ebene = 1)23 {24 deadUni(0x02C6) ; circumflex, tot25 DeadKey := "c1"26 }27 else if (Ebene = 2)28 {29 deadUni(0x02C7) ; caron, tot30 DeadKey := "c2"31 }32 else if (Ebene = 3)33 {34 deadUni(0x02D8) ; brevis35 DeadKey := "c3"36 }37 else if (Ebene = 4)38 {39 deadUni(0x00B7) ; Mittenpunkt, tot40 DeadKey := "c4"41 }42 else if (Ebene = 5)43 {44 deadAsc("-") ; querstrich, tot45 DeadKey := "c5"46 }47 else if (Ebene = 6)48 {49 deadAsc(".") ; punkt darunter (colon)50 DeadKey := "c6"51 }52 CompKey := PriorCompKey18 EbeneAktualisieren() 19 if (Ebene = 1) 20 { 21 deadUni(0x02C6) ; Zirkumflex, tot 22 DeadKey := "c1" 23 } 24 else if (Ebene = 2) 25 { 26 deadUni(0x02C7) ; Caron, tot 27 DeadKey := "c2" 28 } 29 else if (Ebene = 3) 30 { 31 deadUni(0x02D8) ; Brevis, tot 32 DeadKey := "c3" 33 } 34 else if (Ebene = 4) 35 { 36 deadUni(0x00B7) ; Mittenpunkt, tot 37 DeadKey := "c4" 38 } 39 else if (Ebene = 5) 40 { 41 deadAsc("-") ; Querstrich, tot 42 DeadKey := "c5" 43 } 44 else if (Ebene = 6) 45 { 46 deadAsc(".") ; Punkt drunter (Colon), tot 47 DeadKey := "c6" 48 } 49 CompKey := PriorCompKey 53 50 return 54 51 55 52 neo_1: 56 EbeneAktualisieren()57 if (Ebene = 1)58 {59 if !(CheckDeadUni("c1",0x00B9)60 or CheckDeadUni("c5",0x2081)61 or CheckComp3Uni("r_1",0x217A); r�misch xi62 or CheckComp3Uni("R_1",0x216A)); r�misch XI63 if (GetKeyState("CapsLock","T"))64 send {blind}{Shift down}1{Shift up}65 else if (not(lernModus) or lernModus_std_ZahlenReihe)66 send {blind}153 EbeneAktualisieren() 54 if (Ebene = 1) 55 { 56 if !(CheckDeadUni("c1",0x00B9) 57 or CheckDeadUni("c5",0x2081) 58 or CheckComp3Uni("r_1",0x217A) ; r�misch xi 59 or CheckComp3Uni("R_1",0x216A)) ; r�misch XI 60 if (GetKeyState("CapsLock","T")) 61 send {blind}{Shift down}1{Shift up} 62 else if (not(lernModus) or lernModus_std_ZahlenReihe) 63 send {blind}1 67 64 68 65 if (PriorDeadKey = "comp") … … 86 83 87 84 neo_2: 88 EbeneAktualisieren() 89 if (Ebene = 1) 90 { 91 if !(CheckDeadUni("c1",0x00B2) 92 or CheckDeadUni("c5",0x2082) 93 or CheckCompUni("r",0x2171) ; r�misch ii 94 or CheckCompUni("R",0x2161) ; r�misch II 95 or CheckComp3Uni("r_1",0x217B) ; r�misch xii 96 or CheckComp3Uni("R_1",0x216B)) ; r�misch XII 97 if (GetKeyState("CapsLock","T")) 98 send {blind}{Shift down}2{Shift up} 99 else if (not(lernModus) or lernModus_std_ZahlenReihe) 100 send {blind}2 101 102 if (PriorDeadKey = "comp") 103 CompKey := "2" 104 } 105 else if (Ebene = 2) 106 SendUnicodeChar(0x2116) ; numero 85 EbeneAktualisieren() 86 if (Ebene = 1) 87 { 88 if !(CheckDeadUni("c1",0x00B2) 89 or CheckDeadUni("c5",0x2082) 90 or CheckCompUni("r",0x2171) ; r�misch ii 91 or CheckCompUni("R",0x2161) ; r�misch II 92 or CheckComp3Uni("r_1",0x217B) ; r�misch xii 93 or CheckComp3Uni("R_1",0x216B)) ; r�misch XII 94 if (GetKeyState("CapsLock","T")) 95 send {blind}{Shift down}2{Shift up} 96 else if (not(lernModus) or lernModus_std_ZahlenReihe) 97 send {blind}2 98 99 if (PriorDeadKey = "comp") 100 CompKey := "2" 101 } 102 else if (Ebene = 2) 103 SendUnicodeChar(0x2116) ; numero 104 else if (Ebene = 3) 105 SendUnicodeChar(0x00B2) ; 2 Hochgestellte 106 else if (Ebene = 4) 107 SendUnicodeChar(0x2023) ; aufzaehlungspfeil 108 else if (Ebene = 5) 109 SendUnicodeChar(0x26A5) ; Piktogramm Zwitter 110 else if (Ebene = 6) 111 SendUnicodeChar(0x2228) ; Logisches Oder 112 return 113 114 neo_3: 115 EbeneAktualisieren() 116 if (Ebene = 1) 117 { 118 if !(CheckDeadUni("c1",0x00B3) 119 or CheckDeadUni("c5",0x2083) 120 or CheckCompUni("1",0x2153) ; 1/3 121 or CheckCompUni("2",0x2154) ; 2/3 122 or CheckCompUni("r",0x2172) ; r�misch iii 123 or CheckCompUni("R",0x2162)) ; r�misch III 124 if (GetKeyState("CapsLock","T")) 125 send {blind}{Shift down}3{Shift up} 126 else if (not(lernModus) or lernModus_std_ZahlenReihe) 127 send {blind}3 128 129 if (PriorDeadKey = "comp") 130 CompKey := "3" 131 } 132 else if (Ebene = 2) 133 send � 134 else if (Ebene = 3) 135 SendUnicodeChar(0x00B3) ; 3 Hochgestellte 136 else if (Ebene = 4) 137 { 138 CompKey := PriorCompKey 139 DeadKey := PriorDeadKey 140 } ; leer 141 else if (Ebene = 5) 142 SendUnicodeChar(0x2642) ; Piktogramm Mann 143 else if (Ebene = 6) 144 SendUnicodeChar(0x2227) ; Logisches Und 145 return 146 147 neo_4: 148 EbeneAktualisieren() 149 if (Ebene = 1) 150 { 151 if !(CheckDeadUni("c1",0x2074) 152 or CheckDeadUni("c5",0x2084) 153 or CheckCompUni("r",0x2173) ; r�misch iv 154 or CheckCompUni("R",0x2163)) ; r�misch IV 155 if (GetKeyState("CapsLock","T")) 156 send {blind}{Shift down}4{Shift up} 157 else if (not(lernModus) or lernModus_std_ZahlenReihe) 158 send {blind}4 159 160 if (PriorDeadKey = "comp") 161 CompKey := "4" 162 } 163 else if (Ebene = 2) 164 SendUnicodeChar(0x00BB) ; �, Double guillemot right 107 165 else if (Ebene = 3) 108 SendUnicodeChar(0x00B2) ; 2 Hochgestellte 109 else if (Ebene = 4) 110 SendUnicodeChar(0x2023) ; aufzaehlungspfeil 111 else if (Ebene = 5) 112 SendUnicodeChar(0x26A5) ; Piktogramm Zwitter 113 else if (Ebene = 6) 114 SendUnicodeChar(0x2228) ; Logisches Oder 115 return 116 117 neo_3: 118 EbeneAktualisieren() 119 if (Ebene = 1) 120 { 121 if !(CheckDeadUni("c1",0x00B3) 122 or CheckDeadUni("c5",0x2083) 123 or CheckCompUni("1",0x2153) ; 1/3 124 or CheckCompUni("2",0x2154) ; 2/3 125 or CheckCompUni("r",0x2172) ; r�misch iii 126 or CheckCompUni("R",0x2162)) ; r�misch III 127 if (GetKeyState("CapsLock","T")) 128 send {blind}{Shift down}3{Shift up} 129 else if (not(lernModus) or lernModus_std_ZahlenReihe) 130 send {blind}3 131 132 if (PriorDeadKey = "comp") 133 CompKey := "3" 134 } 135 else if (Ebene = 2) 136 send � 137 else if (Ebene = 3) 138 SendUnicodeChar(0x00B3) ; 3 Hochgestellte 139 else if (Ebene = 4) 140 { 141 CompKey := PriorCompKey 142 DeadKey := PriorDeadKey 143 } ; leer 144 else if (Ebene = 5) 145 SendUnicodeChar(0x2642) ; Piktogramm Mann 146 else if (Ebene = 6) 147 SendUnicodeChar(0x2227) ; Logisches Und 148 return 149 150 neo_4: 151 EbeneAktualisieren() 152 if (Ebene = 1) 153 { 154 if !(CheckDeadUni("c1",0x2074) 155 or CheckDeadUni("c5",0x2084) 156 or CheckCompUni("r",0x2173) ; r�misch iv 157 or CheckCompUni("R",0x2163)) ; r�misch IV 158 if (GetKeyState("CapsLock","T")) 159 send {blind}{Shift down}4{Shift up} 160 else if (not(lernModus) or lernModus_std_ZahlenReihe) 161 send {blind}4 162 163 if (PriorDeadKey = "comp") 164 CompKey := "4" 165 } 166 else if (Ebene = 2) 167 SendUnicodeChar(0x00BB) ; �, Double guillemot right 168 else if (Ebene = 3) 169 Send {blind}� ; Single guillemot right 170 else if (Ebene = 4) 171 Send {blind}{PgUp} ; Prev 172 else if (Ebene = 5) 173 SendUnicodeChar(0x2113) ; Script small L 174 else if (Ebene = 6) 175 SendUnicodeChar(0x22A5) ; Senkrecht 166 Send {blind}� ; Single guillemot right 167 else if (Ebene = 4) 168 Send {blind}{PgUp} ; Prev 169 else if (Ebene = 5) 170 SendUnicodeChar(0x2113) ; Script small L 171 else if (Ebene = 6) 172 SendUnicodeChar(0x22A5) ; Senkrecht 176 173 return 177 174 178 175 neo_5: 179 EbeneAktualisieren()180 if (Ebene = 1)181 {182 if !(CheckDeadUni("c1",0x2075)183 or CheckDeadUni("c5",0x2085)184 or CheckCompUni("1",0x2155); 1/5185 or CheckCompUni("2",0x2156); 2/5186 or CheckCompUni("3",0x2157); 3/5187 or CheckCompUni("4",0x2158); 4/5188 or CheckCompUni("r",0x2174); r�misch v189 or CheckCompUni("R",0x2164)); r�misch V190 if (GetKeyState("CapsLock","T"))191 send {blind}{Shift down}5{Shift up}192 else if (not(lernModus) or lernModus_std_ZahlenReihe)193 send {blind}5194 195 if (PriorDeadKey = "comp")196 CompKey := "5"197 }198 else if (Ebene = 2)199 SendUnicodeChar(0x00AB) ; �,Double guillemot left200 else if (Ebene = 3)201 Send {blind}�; Single guillemot left202 else if (Ebene = 4)203 {204 CompKey := PriorCompKey205 DeadKey := PriorDeadKey206 } ; leer207 else if (Ebene = 5)208 SendUnicodeChar(0x2020) ; Kreuz (Dagger)209 else if (Ebene = 6)210 SendUnicodeChar(0x2221) ; Winkel176 EbeneAktualisieren() 177 if (Ebene = 1) 178 { 179 if !(CheckDeadUni("c1",0x2075) 180 or CheckDeadUni("c5",0x2085) 181 or CheckCompUni("1",0x2155) ; 1/5 182 or CheckCompUni("2",0x2156) ; 2/5 183 or CheckCompUni("3",0x2157) ; 3/5 184 or CheckCompUni("4",0x2158) ; 4/5 185 or CheckCompUni("r",0x2174) ; r�misch v 186 or CheckCompUni("R",0x2164)) ; r�misch V 187 if (GetKeyState("CapsLock","T")) 188 send {blind}{Shift down}5{Shift up} 189 else if (not(lernModus) or lernModus_std_ZahlenReihe) 190 send {blind}5 191 192 if (PriorDeadKey = "comp") 193 CompKey := "5" 194 } 195 else if (Ebene = 2) 196 SendUnicodeChar(0x00AB) ; Double guillemot left 197 else if (Ebene = 3) 198 Send {blind}� ; Single guillemot left 199 else if (Ebene = 4) 200 { 201 CompKey := PriorCompKey 202 DeadKey := PriorDeadKey 203 } ; leer 204 else if (Ebene = 5) 205 SendUnicodeChar(0x2020) ; Kreuz (Dagger) 206 else if (Ebene = 6) 207 SendUnicodeChar(0x2221) ; Winkel 211 208 return 212 209 213 210 neo_6: 214 EbeneAktualisieren()215 if (Ebene = 1)216 {217 if !(CheckDeadUni("c1",0x2076)218 or CheckDeadUni("c5",0x2086)219 or CheckCompUni("1",0x2159); 1/6220 or CheckCompUni("5",0x215A); 5/6221 or CheckCompUni("r",0x2175); r�misch vi222 or CheckCompUni("R",0x2165)); r�misch VI223 if (GetKeyState("CapsLock","T"))224 send {blind}{Shift down}6{Shift up}225 else if (not(lernModus) or lernModus_std_ZahlenReihe)226 send {blind}6227 228 if (PriorDeadKey = "comp")229 CompKey := "6"230 }231 else if (Ebene = 2)232 send �233 else if (Ebene = 3)234 send {blind}�235 else if (Ebene = 4)236 send {blind}�237 else if (Ebene = 5)238 {239 CompKey := PriorCompKey240 DeadKey := PriorDeadKey241 } ; leer242 else if (Ebene = 6)243 SendUnicodeChar(0x2225) ; parallel211 EbeneAktualisieren() 212 if (Ebene = 1) 213 { 214 if !(CheckDeadUni("c1",0x2076) 215 or CheckDeadUni("c5",0x2086) 216 or CheckCompUni("1",0x2159) ; 1/6 217 or CheckCompUni("5",0x215A) ; 5/6 218 or CheckCompUni("r",0x2175) ; r�misch vi 219 or CheckCompUni("R",0x2165)) ; r�misch VI 220 if (GetKeyState("CapsLock","T")) 221 send {blind}{Shift down}6{Shift up} 222 else if (not(lernModus) or lernModus_std_ZahlenReihe) 223 send {blind}6 224 225 if (PriorDeadKey = "comp") 226 CompKey := "6" 227 } 228 else if (Ebene = 2) 229 send � 230 else if (Ebene = 3) 231 send {blind}� 232 else if (Ebene = 4) 233 send {blind}� 234 else if (Ebene = 5) 235 { 236 CompKey := PriorCompKey 237 DeadKey := PriorDeadKey 238 } ; leer 239 else if (Ebene = 6) 240 SendUnicodeChar(0x2225) ; parallel 244 241 return 245 242 246 243 neo_7: 247 EbeneAktualisieren()248 if (Ebene = 1)249 {250 if !(CheckDeadUni("c1",0x2077)251 or CheckDeadUni("c5",0x2087)252 or CheckCompUni("r",0x2176); r�misch vii253 or CheckCompUni("R",0x2166)); r�misch VII254 if (GetKeyState("CapsLock","T"))255 send {blind}{Shift down}7{Shift up}256 else if (not(lernModus) or lernModus_std_ZahlenReihe)257 send {blind}7258 259 if (PriorDeadKey = "comp")260 CompKey := "7"261 }262 else if (Ebene = 2)263 send $264 else if (Ebene = 3)265 send {blind}�266 else if (Ebene = 4)267 send {blind}�268 else if (Ebene = 5)269 SendUnicodeChar(0x03BA) ; greek small letter kappa270 else if (Ebene = 6)271 SendUnicodeChar(0x2209) ; nicht Element von244 EbeneAktualisieren() 245 if (Ebene = 1) 246 { 247 if !(CheckDeadUni("c1",0x2077) 248 or CheckDeadUni("c5",0x2087) 249 or CheckCompUni("r",0x2176) ; r�misch vii 250 or CheckCompUni("R",0x2166)) ; r�misch VII 251 if (GetKeyState("CapsLock","T")) 252 send {blind}{Shift down}7{Shift up} 253 else if (not(lernModus) or lernModus_std_ZahlenReihe) 254 send {blind}7 255 256 if (PriorDeadKey = "comp") 257 CompKey := "7" 258 } 259 else if (Ebene = 2) 260 send $ 261 else if (Ebene = 3) 262 send {blind}� 263 else if (Ebene = 4) 264 send {blind}� 265 else if (Ebene = 5) 266 SendUnicodeChar(0x03BA) ; greek small letter kappa 267 else if (Ebene = 6) 268 SendUnicodeChar(0x2209) ; nicht Element von 272 269 return 273 270 274 271 neo_8: 275 EbeneAktualisieren()276 if (Ebene = 1)277 {278 if !(CheckDeadUni("c1",0x2078)279 or CheckDeadUni("c5",0x2088)280 or CheckCompUni("1",0x215B); 1/8281 or CheckCompUni("3",0x215C); 3/8282 or CheckCompUni("5",0x215D); 5/8283 or CheckCompUni("7",0x215E); 7/8284 or CheckCompUni("r",0x2177); r�misch viii285 or CheckCompUni("R",0x2167)); r�misch VIII286 if (GetKeyState("CapsLock","T"))287 send {blind}{Shift down}8{Shift up}288 else if (not(lernModus) or lernModus_std_ZahlenReihe)289 send {blind}8290 291 if (PriorDeadKey = "comp")292 CompKey := "8"293 }294 else if (Ebene = 2)295 send �296 else if (Ebene = 3)297 send {blind}�298 else if (Ebene = 4)299 Send {blind}{NumpadDiv}300 else if (Ebene = 5)301 SendUnicodeChar(0x27E8) ;bra (�ffnende spitze klammer)302 else if (Ebene = 6)303 SendUnicodeChar(0x2204) ; es existiert nicht272 EbeneAktualisieren() 273 if (Ebene = 1) 274 { 275 if !(CheckDeadUni("c1",0x2078) 276 or CheckDeadUni("c5",0x2088) 277 or CheckCompUni("1",0x215B) ; 1/8 278 or CheckCompUni("3",0x215C) ; 3/8 279 or CheckCompUni("5",0x215D) ; 5/8 280 or CheckCompUni("7",0x215E) ; 7/8 281 or CheckCompUni("r",0x2177) ; r�misch viii 282 or CheckCompUni("R",0x2167)) ; r�misch VIII 283 if (GetKeyState("CapsLock","T")) 284 send {blind}{Shift down}8{Shift up} 285 else if (not(lernModus) or lernModus_std_ZahlenReihe) 286 send {blind}8 287 288 if (PriorDeadKey = "comp") 289 CompKey := "8" 290 } 291 else if (Ebene = 2) 292 send � 293 else if (Ebene = 3) 294 send {blind}� 295 else if (Ebene = 4) 296 Send {blind}{NumpadDiv} 297 else if (Ebene = 5) 298 SendUnicodeChar(0x27E8) ;bra (�ffnende spitze klammer) 299 else if (Ebene = 6) 300 SendUnicodeChar(0x2204) ; es existiert nicht 304 301 return 305 302 306 303 neo_9: 307 EbeneAktualisieren()308 if (Ebene = 1)309 {310 if !(CheckDeadUni("c1",0x2079)311 or CheckDeadUni("c5",0x2089)312 or CheckCompUni("r",0x2178); r�misch ix313 or CheckCompUni("R",0x2168)); r�misch IX314 if (GetKeyState("CapsLock","T"))315 send {blind}{Shift down}9{Shift up}316 else if (not(lernModus) or lernModus_std_ZahlenReihe)317 send {blind}9318 319 if (PriorDeadKey = "comp")320 CompKey := "9"321 }322 else if (Ebene = 2)323 send �324 else if (Ebene = 3)325 send {blind}�326 else if (Ebene = 4)327 Send {blind}{NumpadMult}328 else if (Ebene = 5)329 SendUnicodeChar(0x27E9) ;ket (schlie�ende spitze klammer)330 else if (Ebene = 6)331 SendUnicodeChar(0x2226) ; nicht parallel304 EbeneAktualisieren() 305 if (Ebene = 1) 306 { 307 if !(CheckDeadUni("c1",0x2079) 308 or CheckDeadUni("c5",0x2089) 309 or CheckCompUni("r",0x2178) ; r�misch ix 310 or CheckCompUni("R",0x2168)) ; r�misch IX 311 if (GetKeyState("CapsLock","T")) 312 send {blind}{Shift down}9{Shift up} 313 else if (not(lernModus) or lernModus_std_ZahlenReihe) 314 send {blind}9 315 316 if (PriorDeadKey = "comp") 317 CompKey := "9" 318 } 319 else if (Ebene = 2) 320 send � 321 else if (Ebene = 3) 322 send {blind}� 323 else if (Ebene = 4) 324 Send {blind}{NumpadMult} 325 else if (Ebene = 5) 326 SendUnicodeChar(0x27E9) ;ket (schlie�ende spitze klammer) 327 else if (Ebene = 6) 328 SendUnicodeChar(0x2226) ; nicht parallel 332 329 return 333 330 334 331 neo_0: 335 EbeneAktualisieren()336 if (Ebene = 1)337 {338 if !(CheckDeadUni("c1",0x2070)339 or CheckDeadUni("c5",0x2080)340 or CheckComp3Uni("r_1",0x2179); r�misch x341 or CheckComp3Uni("R_1",0x2169)); r�misch X342 if (GetKeyState("CapsLock","T"))343 send {blind}{Shift down}0{Shift up}344 else if (not(lernModus) or lernModus_std_ZahlenReihe)345 send {blind}0332 EbeneAktualisieren() 333 if (Ebene = 1) 334 { 335 if !(CheckDeadUni("c1",0x2070) 336 or CheckDeadUni("c5",0x2080) 337 or CheckComp3Uni("r_1",0x2179) ; r�misch x 338 or CheckComp3Uni("R_1",0x2169)) ; r�misch X 339 if (GetKeyState("CapsLock","T")) 340 send {blind}{Shift down}0{Shift up} 341 else if (not(lernModus) or lernModus_std_ZahlenReihe) 342 send {blind}0 346 343 347 344 if (PriorDeadKey = "comp") … … 364 361 365 362 neo_strich: 366 EbeneAktualisieren() 367 if (Ebene = 1) 368 if (GetKeyState("CapsLock","T")) 369 send {blind}{Shift down}-{Shift up} 370 else 371 send {blind}- ; Bindestrich-Minus 372 else if (Ebene = 2) 373 SendUnicodeChar(0x2013) ; Gedankenstrich 374 else if (Ebene = 3) 375 SendUnicodeChar(0x2014) ; Englischer Gedankenstrich (Geviertstrich) 376 else if (Ebene = 4) 377 { 363 EbeneAktualisieren() 364 if (Ebene = 1) 365 if (GetKeyState("CapsLock","T")) 366 send {blind}{Shift down}-{Shift up} 367 else 368 send {blind}- ; Bindestrich-Minus 369 else if (Ebene = 2) 370 SendUnicodeChar(0x2013) ; Gedankenstrich 371 else if (Ebene = 3) 372 SendUnicodeChar(0x2014) ; Englischer Gedankenstrich (Geviertstrich) 373 else if (Ebene = 4) 374 { 375 CompKey := PriorCompKey 376 DeadKey := PriorDeadKey 377 } ; leer 378 else if (Ebene = 5) 379 SendUnicodeChar(0x2011) ; gesch�tzter Bindestrich (Bindestrich ohne Zeilenumbruch) 380 else if (Ebene = 6) 381 SendUnicodeChar(0x00AD) ; weicher Bindestrich 382 return 383 384 neo_tot2: 385 EbeneAktualisieren() 386 if (Ebene = 1) 387 { 388 deadAsc("{�}{space}") ; Akut, tot 389 DeadKey := "a1" 390 } 391 else if (Ebene = 2) 392 { 393 deadAsc("``{space}") ; Gravis, tot 394 DeadKey := "a2" 395 } 396 else if (Ebene = 3) 397 { 398 deadAsc("�") ; Cedilla, tot 399 DeadKey := "a3" 400 } 401 else if (Ebene = 4) 402 { 403 deadUni(0x02D9) ; Punkt obendr�ber 404 DeadKey := "a4" 405 } 406 else if (Ebene = 5) 407 { 408 deadUni(0x02DB) ; Ogonek 409 DeadKey := "a5" 410 } 411 else if (Ebene = 6) 412 { 413 deadUni(0x02DA) ; Ring obendrauf 414 DeadKey := "a6" 415 } 416 CompKey := PriorCompKey 417 return 418 419 420 /* 421 422 Reihe 2 423 424 */ 425 426 neo_x: 427 EbeneAktualisieren() 428 if (Ebene12) 429 OutputChar("x","X") 430 else if (Ebene = 3) 431 SendUnicodeChar(0x2026) ;Ellipse 432 else if (Ebene = 5) 433 SendUnicodeChar(0x03BE) ;xi 434 else if (Ebene = 6) 435 SendUnicodeChar(0x039E) ; Xi 436 return 437 438 439 neo_v: 440 EbeneAktualisieren() 441 if (Ebene12 and !(CheckDeadUni12("c6",0x1E7F,0x1E7E))) 442 OutputChar("v","V") 443 else if (Ebene = 3) 444 send {blind}_ 445 else if (Ebene = 4) 446 if (not(lernModus) or lernModus_neo_Backspace) 447 Send {blind}{Backspace} 448 else 449 { 378 450 CompKey := PriorCompKey 379 451 DeadKey := PriorDeadKey 380 } ; leer 381 else if (Ebene = 5) 382 SendUnicodeChar(0x2011) ; gesch�tzter Bindestrich (Bindestrich ohne Zeilenumbruch) 383 else if (Ebene = 6) 384 SendUnicodeChar(0x00AD) ; weicher Bindestrich 385 return 386 387 neo_tot2: 388 EbeneAktualisieren() 389 if (Ebene = 1) 390 { 391 deadAsc("{�}{space}") ; akut, tot 392 DeadKey := "a1" 393 } 394 else if (Ebene = 2) 395 { 396 deadAsc("``{space}") 397 DeadKey := "a2" 398 } 399 else if (Ebene = 3) 400 { 401 deadAsc("�") ; cedilla 402 DeadKey := "a3" 403 } 404 else if (Ebene = 4) 405 { 406 deadUni(0x02D9) ; punkt oben dr�ber 407 DeadKey := "a4" 408 } 409 else if (Ebene = 5) 410 { 411 deadUni(0x02DB) ; ogonek 412 DeadKey := "a5" 413 } 414 else if (Ebene = 6) 415 { 416 deadUni(0x02DA) ; ring obendrauf 417 DeadKey := "a6" 418 } 419 CompKey := PriorCompKey 420 return 421 422 423 /* 424 ------------------------------------------------------ 425 Reihe 2 426 ------------------------------------------------------ 427 */ 428 429 neo_x: 430 EbeneAktualisieren() 431 if (Ebene12) 432 OutputChar("x","X") 433 else if (Ebene = 3) 434 SendUnicodeChar(0x2026) ;Ellipse 435 else if (Ebene = 5) 436 SendUnicodeChar(0x03BE) ;xi 437 else if (Ebene = 6) 438 SendUnicodeChar(0x039E) ; Xi 439 return 440 441 442 neo_v: 443 EbeneAktualisieren() 444 if (Ebene12 and !(CheckDeadUni12("c6",0x1E7F,0x1E7E))) 445 OutputChar("v","V") 446 else if (Ebene = 3) 447 send {blind}_ 448 else if (Ebene = 4) 449 if (not(lernModus) or lernModus_neo_Backspace) 450 Send {blind}{Backspace} 451 else 452 { 453 CompKey := PriorCompKey 454 DeadKey := PriorDeadKey 455 } ; leer 456 else if (Ebene = 6) 457 SendUnicodeChar(0x2259) ; estimates 452 } ; leer 453 else if (Ebene = 6) 454 SendUnicodeChar(0x2259) ; estimates 458 455 return 459 456 … … 461 458 462 459 neo_l: 463 EbeneAktualisieren()464 if (Ebene12 and !(CheckDeadUni12("a1",0x013A,0x0139)465 or CheckDeadUni12("a3",0x013C,0x013B)466 or CheckDeadUni12("c2",0x013E,0x013D)467 or CheckDeadUni12("c4",0x0140,0x013F)468 or CheckDeadUni12("c6",0x1E37,0x1E36)469 or CheckDeadUni12("t4",0x0142,0x0141)))470 OutputChar("l","L")471 else if (Ebene = 3)472 send {blind}[473 else if (Ebene = 4)474 Send {Blind}{Up}475 else if (Ebene = 5)476 SendUnicodeChar(0x03BB) ; lambda477 else if (Ebene = 6)478 SendUnicodeChar(0x039B) ; Lambda460 EbeneAktualisieren() 461 if (Ebene12 and !(CheckDeadUni12("a1",0x013A,0x0139) 462 or CheckDeadUni12("a3",0x013C,0x013B) 463 or CheckDeadUni12("c2",0x013E,0x013D) 464 or CheckDeadUni12("c4",0x0140,0x013F) 465 or CheckDeadUni12("c6",0x1E37,0x1E36) 466 or CheckDeadUni12("t4",0x0142,0x0141))) 467 OutputChar("l","L") 468 else if (Ebene = 3) 469 send {blind}[ 470 else if (Ebene = 4) 471 Send {Blind}{Up} 472 else if (Ebene = 5) 473 SendUnicodeChar(0x03BB) ; lambda 474 else if (Ebene = 6) 475 SendUnicodeChar(0x039B) ; Lambda 479 476 return 480 477 481 478 482 479 neo_c: 483 EbeneAktualisieren()484 if (Ebene12 and !(CheckDeadUni12("a1",0x0107,0x0106)485 or CheckDeadUni12("a3",0x00E7,0x00E6)486 or CheckDeadUni12("a4",0x010B,0x010A)487 or CheckDeadUni12("c1",0x0109,0x0108)488 or CheckDeadUni12("c2",0x010D,0x010C)489 or CheckCompAsc12("o","�","�")490 or CheckCompAsc12("O","�","�")))491 OutputChar("c","C")492 else if (Ebene = 3)493 send {blind}]494 else if (Ebene = 4)495 if (not(lernModus) or lernModus_neo_Entf)496 Send {blind}{Del}497 else498 {499 CompKey := PriorCompKey500 DeadKey := PriorDeadKey501 } ; leer502 else if (Ebene = 5)503 SendUnicodeChar(0x03C7) ;chi504 else if (Ebene = 6)505 SendUnicodeChar(0x2102) ; C (Komplexe Zahlen)480 EbeneAktualisieren() 481 if (Ebene12 and !(CheckDeadUni12("a1",0x0107,0x0106) 482 or CheckDeadUni12("a3",0x00E7,0x00E6) 483 or CheckDeadUni12("a4",0x010B,0x010A) 484 or CheckDeadUni12("c1",0x0109,0x0108) 485 or CheckDeadUni12("c2",0x010D,0x010C) 486 or CheckCompAsc12("o","�","�") 487 or CheckCompAsc12("O","�","�"))) 488 OutputChar("c","C") 489 else if (Ebene = 3) 490 send {blind}] 491 else if (Ebene = 4) 492 if (not(lernModus) or lernModus_neo_Entf) 493 Send {blind}{Del} 494 else 495 { 496 CompKey := PriorCompKey 497 DeadKey := PriorDeadKey 498 } ; leer 499 else if (Ebene = 5) 500 SendUnicodeChar(0x03C7) ;chi 501 else if (Ebene = 6) 502 SendUnicodeChar(0x2102) ; C (Komplexe Zahlen) 506 503 return 507 504 508 505 neo_w: 509 EbeneAktualisieren()510 if (Ebene12 and !(CheckDeadUni12("c1",0x0175,0x0174)))511 OutputChar("w","W")512 else if (Ebene = 3)513 SendUnicodeChar(0x005E) ; untotes ^ - Unicode-Name: CIRCUMFLEX ACCENT514 ;send {^}{space} ; Funktioniert nicht unter Java-Programmen515 else if (Ebene = 4)516 Send {blind}{Insert}517 else if (Ebene = 5)518 SendUnicodeChar(0x03C9) ; omega519 else if (Ebene = 6)520 SendUnicodeChar(0x03A9) ; Omega506 EbeneAktualisieren() 507 if (Ebene12 and !(CheckDeadUni12("c1",0x0175,0x0174))) 508 OutputChar("w","W") 509 else if (Ebene = 3) 510 SendUnicodeChar(0x005E) ; untotes ^ - Unicode-Name: CIRCUMFLEX ACCENT 511 ;send {^}{space} ; Funktioniert nicht unter Java-Programmen 512 else if (Ebene = 4) 513 Send {blind}{Insert} 514 else if (Ebene = 5) 515 SendUnicodeChar(0x03C9) ; omega 516 else if (Ebene = 6) 517 SendUnicodeChar(0x03A9) ; Omega 521 518 return 522 519 523 520 neo_k: 524 EbeneAktualisieren()525 if (Ebene12 and !(CheckDeadUni12("a3",0x0137,0x0136)526 or CheckDeadUni12("c6",0x1E33,0x1E32)))527 OutputChar("k","K")528 else if (Ebene = 3)529 send {blind}{!}530 else if (Ebene = 4)531 Send �532 else if (Ebene = 5)533 SendUnicodeChar(0x03F0) ;kappa symbol (varkappa)534 else if (Ebene = 6)535 SendUnicodeChar(0x221A) ; Wurzel521 EbeneAktualisieren() 522 if (Ebene12 and !(CheckDeadUni12("a3",0x0137,0x0136) 523 or CheckDeadUni12("c6",0x1E33,0x1E32))) 524 OutputChar("k","K") 525 else if (Ebene = 3) 526 send {blind}{!} 527 else if (Ebene = 4) 528 Send � 529 else if (Ebene = 5) 530 SendUnicodeChar(0x03F0) ;kappa symbol (varkappa) 531 else if (Ebene = 6) 532 SendUnicodeChar(0x221A) ; Wurzel 536 533 return 537 534 538 535 neo_h: 539 EbeneAktualisieren()540 if (Ebene12 and !(CheckDeadUni12("a4",0x1E23,0x1E22)541 or CheckDeadUni12("c1",0x0125,0x0124)542 or CheckDeadUni12("c5",0x0127,0x0126)543 or CheckDeadUni12("c6",0x1E25,0x1E24)))544 OutputChar("h","H")545 else if ((Ebene = 3) and !(CheckDeadUni("c5",0x2264))) ; kleiner gleich546 send {blind}<547 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2077)548 or CheckDeadUni("c5",0x2087)))549 Send {blind}{NumPad7}550 else if (Ebene = 5)551 SendUnicodeChar(0x03C8) ;psi552 else if (Ebene = 6)553 SendUnicodeChar(0x03A8) ; Psi536 EbeneAktualisieren() 537 if (Ebene12 and !(CheckDeadUni12("a4",0x1E23,0x1E22) 538 or CheckDeadUni12("c1",0x0125,0x0124) 539 or CheckDeadUni12("c5",0x0127,0x0126) 540 or CheckDeadUni12("c6",0x1E25,0x1E24))) 541 OutputChar("h","H") 542 else if ((Ebene = 3) and !(CheckDeadUni("c5",0x2264))) ; kleiner gleich 543 send {blind}< 544 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2077) 545 or CheckDeadUni("c5",0x2087))) 546 Send {blind}{NumPad7} 547 else if (Ebene = 5) 548 SendUnicodeChar(0x03C8) ;psi 549 else if (Ebene = 6) 550 SendUnicodeChar(0x03A8) ; Psi 554 551 return 555 552 556 553 neo_g: 557 EbeneAktualisieren()558 if (Ebene12 and !(CheckDeadUni12("a3",0x0123,0x0122)559 or CheckDeadUni12("a4",0x0121,0x0120)560 or CheckDeadUni12("c1",0x011D,0x011C)561 or CheckDeadUni12("c3",0x011F,0x011E)))562 OutputChar("g","G")563 else if ((Ebene = 3) and !(CheckDeadUni("c5",0x2265))) ; gr��er gleich564 send {blind}>565 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2078)566 or CheckDeadUni("c5",0x2088)))567 Send {blind}{NumPad8}568 else if (Ebene = 5)569 SendUnicodeChar(0x03B3) ;gamma570 else if (Ebene = 6)571 SendUnicodeChar(0x0393) ; Gamma554 EbeneAktualisieren() 555 if (Ebene12 and !(CheckDeadUni12("a3",0x0123,0x0122) 556 or CheckDeadUni12("a4",0x0121,0x0120) 557 or CheckDeadUni12("c1",0x011D,0x011C) 558 or CheckDeadUni12("c3",0x011F,0x011E))) 559 OutputChar("g","G") 560 else if ((Ebene = 3) and !(CheckDeadUni("c5",0x2265))) ; gr��er gleich 561 send {blind}> 562 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2078) 563 or CheckDeadUni("c5",0x2088))) 564 Send {blind}{NumPad8} 565 else if (Ebene = 5) 566 SendUnicodeChar(0x03B3) ;gamma 567 else if (Ebene = 6) 568 SendUnicodeChar(0x0393) ; Gamma 572 569 return 573 570 574 571 neo_f: 575 EbeneAktualisieren()576 if (Ebene12 and !(CheckDeadUni12("a4",0x1E1F,0x1E1E)577 or CheckDeadUni12("t4",0x0192,0x0191)))578 OutputChar("f","F")579 else if ((Ebene = 3) and !(CheckDeadUni("a6",0x2257); ring equal to580 or CheckDeadUni("c1",0x2259); entspricht581 or CheckDeadUni("c2",0x225A); EQUIANGULAR TO582 or CheckDeadUni("c5",0x2261); identisch583 or CheckDeadUni("t1",0x2245); ungef�hr gleich584 or CheckDeadUni("t4",0x2260))) ; ungleich585 send {blind}`=586 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2079)587 or CheckDeadUni("c5",0x2089)))588 Send {blind}{NumPad9}589 else if (Ebene = 5)590 SendUnicodeChar(0x03C6) ; phi591 else if (Ebene = 6)592 SendUnicodeChar(0x03A6) ; Phi572 EbeneAktualisieren() 573 if (Ebene12 and !(CheckDeadUni12("a4",0x1E1F,0x1E1E) 574 or CheckDeadUni12("t4",0x0192,0x0191))) 575 OutputChar("f","F") 576 else if ((Ebene = 3) and !(CheckDeadUni("a6",0x2257) ; ring equal to 577 or CheckDeadUni("c1",0x2259) ; entspricht 578 or CheckDeadUni("c2",0x225A) ; EQUIANGULAR TO 579 or CheckDeadUni("c5",0x2261) ; identisch 580 or CheckDeadUni("t1",0x2245) ; ungef�hr gleich 581 or CheckDeadUni("t4",0x2260))) ; ungleich 582 send {blind}`= 583 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2079) 584 or CheckDeadUni("c5",0x2089))) 585 Send {blind}{NumPad9} 586 else if (Ebene = 5) 587 SendUnicodeChar(0x03C6) ; phi 588 else if (Ebene = 6) 589 SendUnicodeChar(0x03A6) ; Phi 593 590 return 594 591 … … 609 606 610 607 neo_sz: 611 EbeneAktualisieren() 612 if (Ebene = 1) 613 if (GetKeyState("CapsLock","T")) 614 SendUnicodeChar(0x1E9E) ; verssal-� 615 else if (LangSTastatur = 1) 616 send {blind}s 608 EbeneAktualisieren() 609 if (Ebene = 1) 610 if (GetKeyState("CapsLock","T")) 611 SendUnicodeChar(0x1E9E) ; versal-� 612 else if (LangSTastatur = 1) 613 send {blind}s 614 else 615 send � 616 else if (Ebene = 2) 617 if (GetKeyState("CapsLock","T")) 618 if (LangSTastatur = 1) 619 send {blind}s 617 620 else 618 send � 619 else if (Ebene = 2) 620 if (GetKeyState("CapsLock","T")) 621 if (LangSTastatur = 1) 621 send � 622 else 623 SendUnicodeChar(0x1E9E) ; versal-� 624 else if (Ebene = 3) 625 if (LangSTastatur = 1) 626 send � 627 else 628 SendUnicodeChar(0x017F) ; langes s 629 else if (Ebene = 5) 630 SendUnicodeChar(0x03C2) ; varsigma 631 else if (Ebene = 6) 632 SendUnicodeChar(0x2218) ; Verkn�pfungsoperator 633 return 634 635 636 neo_tot3: 637 EbeneAktualisieren() 638 if (Ebene = 1) 639 { 640 deadUni(0x02DC) ;Tilde, tot 641 DeadKey := "t1" 642 } 643 else if (Ebene = 2) 644 { 645 deadUni(0x00AF) ; Macron, tot 646 DeadKey := "t2" 647 } 648 else if (Ebene = 3) 649 { 650 deadUni(0x00A8) ; Di�rese 651 DeadKey := "t3" 652 } 653 else if (Ebene = 4) 654 { 655 deadUni(0x002F) ; Schr�gstrich, tot 656 DeadKey := "t4" 657 } 658 else if (Ebene = 5) 659 { 660 deadUni(0x02DD) ;Doppelakut 661 DeadKey := "t5" 662 } 663 else if (Ebene = 6) 664 { 665 deadUni(0x02CF) ; Komma drunter, tot 666 DeadKey := "t6" 667 } 668 669 return 670 671 672 /* 673 674 Reihe 3 675 676 */ 677 678 neo_u: 679 EbeneAktualisieren() 680 if (Ebene12 and !(CheckDeadUni12("a1",0x00FA,0x00DA) 681 or CheckDeadUni12("a2",0x00F9,0x00D9) 682 or CheckDeadUni12("a5",0x0173,0x0172) 683 or CheckDeadUni12("a6",0x016F,0x016E) 684 or CheckDeadUni12("c1",0x00FB,0x00DB) 685 or CheckDeadUni12("c2",0x01D4,0x01D3) 686 or CheckDeadUni12("c3",0x016D,0x016C) 687 or CheckDeadUni12("t1",0x0169,0x0168) 688 or CheckDeadUni12("t2",0x016B,0x016A) 689 or CheckDeadAsc12("t3","�","�") 690 or CheckDeadUni12("t5",0x0171,0x0170))) 691 OutputChar("u","U") 692 else if (Ebene = 3) 693 send {blind}\ 694 else if (Ebene = 4) 695 Send {blind}{Home} 696 else if (Ebene = 5) 697 { 698 CompKey := PriorCompKey 699 DeadKey := PriorDeadKey 700 } ; leer 701 else if (Ebene = 6) 702 SendUnicodeChar(0x222E) ; contour integral 703 return 704 705 neo_i: 706 EbeneAktualisieren() 707 if (Ebene12 and !(CheckDeadUni12("a1",0x00ED,0x00CD) 708 or CheckDeadUni12("a2",0x00EC,0x00CC) 709 or CheckDeadUni12("a4",0x012F,0x012E) 710 or CheckDeadUni12("a5",0x0131,0x0130) 711 or CheckDeadUni12("c1",0x00EE,0x00CE) 712 or CheckDeadUni12("c2",0x01D0,0x01CF) 713 or CheckDeadUni12("c3",0x012D,0x012C) 714 or CheckDeadUni12("t1",0x0129,0x0128) 715 or CheckDeadUni12("t2",0x012B,0x012A) 716 or CheckDeadAsc12("t3","�","�"))) 717 OutputChar("i","I") 718 else if (Ebene = 3) 719 send {blind}`/ 720 else if (Ebene = 4) 721 Send {Blind}{Left} 722 else if (Ebene = 5 ) 723 SendUnicodeChar(0x03B9) ; iota 724 else if (Ebene = 6) 725 SendUnicodeChar(0x222B) ; integral 726 return 727 728 neo_a: 729 EbeneAktualisieren() 730 if (Ebene12 and !(CheckDeadUni12("a1",0x00E1,0x00C1) 731 or CheckDeadUni12("a2",0x00E0,0x00C0) 732 or CheckDeadUni12("a5",0x0105,0x0104) 733 or CheckDeadAsc12("a6","�","�") 734 or CheckDeadUni12("c1",0x00E2,0x00C2) 735 or CheckDeadUni12("c2",0x01CE,0x01CD) 736 or CheckDeadUni12("c3",0x0103,0x0102) 737 or CheckDeadUni12("t1",0x00E3,0x00C3) 738 or CheckDeadUni12("t2",0x0101,0x0100) 739 or CheckDeadAsc12("t3","�","�"))) 740 OutputChar("a","A") 741 else if (Ebene = 3) 742 send {blind}{{} 743 else if (Ebene = 4) 744 Send {Blind}{Down} 745 else if (Ebene = 5) 746 SendUnicodeChar(0x03B1) ;alpha 747 else if (Ebene = 6) 748 SendUnicodeChar(0x2200) ;f�r alle 749 return 750 751 neo_e: 752 EbeneAktualisieren() 753 if (Ebene12 and !(CheckDeadUni12("a1",0x00E9,0x00C9) 754 or CheckDeadUni12("a2",0x00E8,0x00C8) 755 or CheckDeadUni12("a4",0x0117,0x0116) 756 or CheckDeadUni12("a5",0x0119,0x0118) 757 or CheckDeadUni12("c1",0x00EA,0x00CA) 758 or CheckDeadUni12("c2",0x011B,0x011A) 759 or CheckDeadUni12("c3",0x0115,0x0114) 760 or CheckDeadUni12("t2",0x0113,0x0112) 761 or CheckDeadAsc12("t3","�","�") 762 or CheckCompAsc12("a","�","�") 763 or CheckCompAsc12("A","�","�") 764 or CheckCompAsc12("o","�","�") 765 or CheckCompAsc12("O","�","�"))) 766 OutputChar("e","E") 767 else if (Ebene = 3) ; { 768 send {blind}{}} 769 else if (Ebene = 4) 770 Send {Blind}{Right} 771 else if (Ebene = 5) 772 SendUnicodeChar(0x03B5) ;epsilon 773 else if (Ebene = 6) 774 SendUnicodeChar(0x2203) ;es existiert 775 return 776 777 neo_o: 778 EbeneAktualisieren() 779 if (Ebene12 and !(CheckDeadUni12("a1",0x00F3,0x00D3) 780 or CheckDeadUni12("a2",0x00F2,0x00D2) 781 or CheckDeadUni12("a5",0x01EB,0x01EA) 782 or CheckDeadUni12("c1",0x00F4,0x00D4) 783 or CheckDeadUni12("c2",0x01D2,0x01D1) 784 or CheckDeadUni12("c3",0x014F,0x014E) 785 or CheckDeadUni12("t1",0x00F5,0x00D5) 786 or CheckDeadUni12("t2",0x014D,0x014C) 787 or CheckDeadAsc12("t3","�","�") 788 or CheckDeadUni12("t4",0x00F8,0x00D8) 789 or CheckDeadUni12("t5",0x0151,0x0150))) 790 OutputChar("o","O") 791 else if (Ebene = 3) 792 send {blind}* 793 else if (Ebene = 4) 794 Send {blind}{End} 795 else if (Ebene = 5) 796 SendUnicodeChar(0x03BF) ; omicron 797 else if (Ebene = 6) 798 SendUnicodeChar(0x2208) ; element of 799 return 800 801 neo_s: 802 EbeneAktualisieren() 803 if (Ebene12 and !(CheckDeadUni12("a1",0x015B,0x015A) 804 or CheckDeadUni12("a3",0x015F,0x015E) 805 or CheckDeadUni12("a4",0x1E61,0x1E60) 806 or CheckDeadUni12("c1",0x015D,0x015C) 807 or CheckDeadUni12("c2",0x0161,0x0160) 808 or CheckDeadUni12("c6",0x1E63,0x1A62))) 809 if (Ebene = 1) 810 { 811 if LangSTastatur 812 if (GetKeyState("CapsLock","T")) 622 813 send {blind}s 623 else 624 send � 625 else 626 SendUnicodeChar(0x1E9E) ; versal-� 627 else if (Ebene = 3) 628 if (LangSTastatur = 1) 629 send � 630 else 631 SendUnicodeChar(0x017F) ; langes s 632 else if (Ebene = 5) 633 SendUnicodeChar(0x03C2) ; varsigma 634 else if (Ebene = 6) 635 SendUnicodeChar(0x2218) ; Verkn�pfungsoperator 636 return 637 638 639 neo_tot3: 640 EbeneAktualisieren() 641 if (Ebene = 1) 642 { 643 deadUni(0x02DC) ; tilde, tot 644 DeadKey := "t1" 645 } 646 else if (Ebene = 2) 647 { 648 deadUni(0x00AF) ; macron, tot 649 DeadKey := "t2" 650 } 651 else if (Ebene = 3) 652 { 653 deadUni(0x00A8) ; diaerese 654 DeadKey := "t3" 655 } 656 else if (Ebene = 4) 657 { 658 deadUni(0x002F) ; Schr�gstrich, tot 659 DeadKey := "t4" 660 } 661 else if (Ebene = 5) 662 { 663 deadUni(0x02DD) ;doppelakut 664 DeadKey := "t5" 665 } 666 else if (Ebene = 6) 667 { 668 deadUni(0x02CF) ; komma drunter, tot 669 DeadKey := "t6" 670 } 671 672 return 673 674 675 /* 676 ------------------------------------------------------ 677 Reihe 3 678 ------------------------------------------------------ 679 */ 680 681 neo_u: 682 EbeneAktualisieren() 683 if (Ebene12 and !(CheckDeadUni12("a1",0x00FA,0x00DA) 684 or CheckDeadUni12("a2",0x00F9,0x00D9) 685 or CheckDeadUni12("a5",0x0173,0x0172) 686 or CheckDeadUni12("a6",0x016F,0x016E) 687 or CheckDeadUni12("c1",0x00FB,0x00DB) 688 or CheckDeadUni12("c2",0x01D4,0x01D3) 689 or CheckDeadUni12("c3",0x016D,0x016C) 690 or CheckDeadUni12("t1",0x0169,0x0168) 691 or CheckDeadUni12("t2",0x016B,0x016A) 692 or CheckDeadAsc12("t3","�","�") 693 or CheckDeadUni12("t5",0x0171,0x0170))) 694 OutputChar("u","U") 695 else if (Ebene = 3) 696 send {blind}\ 697 else if (Ebene = 4) 698 Send {blind}{Home} 699 else if (Ebene = 5) 700 { 701 CompKey := PriorCompKey 702 DeadKey := PriorDeadKey 703 } ; leer 704 else if (Ebene = 6) 705 SendUnicodeChar(0x222E) ; contour integral 706 return 707 708 neo_i: 709 EbeneAktualisieren() 710 if (Ebene12 and !(CheckDeadUni12("a1",0x00ED,0x00CD) 711 or CheckDeadUni12("a2",0x00EC,0x00CC) 712 or CheckDeadUni12("a4",0x012F,0x012E) 713 or CheckDeadUni12("a5",0x0131,0x0130) 714 or CheckDeadUni12("c1",0x00EE,0x00CE) 715 or CheckDeadUni12("c2",0x01D0,0x01CF) 716 or CheckDeadUni12("c3",0x012D,0x012C) 717 or CheckDeadUni12("t1",0x0129,0x0128) 718 or CheckDeadUni12("t2",0x012B,0x012A) 719 or CheckDeadAsc12("t3","�","�"))) 720 OutputChar("i","I") 721 else if (Ebene = 3) 722 send {blind}`/ 723 else if (Ebene = 4) 724 Send {Blind}{Left} 725 else if (Ebene = 5 ) 726 SendUnicodeChar(0x03B9) ; iota 727 else if (Ebene = 6) 728 SendUnicodeChar(0x222B) ; integral 729 return 730 731 neo_a: 732 EbeneAktualisieren() 733 if (Ebene12 and !(CheckDeadUni12("a1",0x00E1,0x00C1) 734 or CheckDeadUni12("a2",0x00E0,0x00C0) 735 or CheckDeadUni12("a5",0x0105,0x0104) 736 or CheckDeadAsc12("a6","�","�") 737 or CheckDeadUni12("c1",0x00E2,0x00C2) 738 or CheckDeadUni12("c2",0x01CE,0x01CD) 739 or CheckDeadUni12("c3",0x0103,0x0102) 740 or CheckDeadUni12("t1",0x00E3,0x00C3) 741 or CheckDeadUni12("t2",0x0101,0x0100) 742 or CheckDeadAsc12("t3","�","�"))) 743 OutputChar("a","A") 744 else if (Ebene = 3) 745 send {blind}{{} ; } 746 else if (Ebene = 4) 747 Send {Blind}{Down} 748 else if (Ebene = 5) 749 SendUnicodeChar(0x03B1) ;alpha 750 else if (Ebene = 6) 751 SendUnicodeChar(0x2200) ;fuer alle 752 return 753 754 neo_e: 755 EbeneAktualisieren() 756 if (Ebene12 and !(CheckDeadUni12("a1",0x00E9,0x00C9) 757 or CheckDeadUni12("a2",0x00E8,0x00C8) 758 or CheckDeadUni12("a4",0x0117,0x0116) 759 or CheckDeadUni12("a5",0x0119,0x0118) 760 or CheckDeadUni12("c1",0x00EA,0x00CA) 761 or CheckDeadUni12("c2",0x011B,0x011A) 762 or CheckDeadUni12("c3",0x0115,0x0114) 763 or CheckDeadUni12("t2",0x0113,0x0112) 764 or CheckDeadAsc12("t3","�","�") 765 or CheckCompAsc12("a","�","�") 766 or CheckCompAsc12("A","�","�") 767 or CheckCompAsc12("o","�","�") 768 or CheckCompAsc12("O","�","�"))) 769 OutputChar("e","E") 770 else if (Ebene = 3) ; { 771 send {blind}{}} 772 else if (Ebene = 4) 773 Send {Blind}{Right} 774 else if (Ebene = 5) 775 SendUnicodeChar(0x03B5) ;epsilon 776 else if (Ebene = 6) 777 SendUnicodeChar(0x2203) ;es existiert 778 return 779 780 neo_o: 781 EbeneAktualisieren() 782 if (Ebene12 and !(CheckDeadUni12("a1",0x00F3,0x00D3) 783 or CheckDeadUni12("a2",0x00F2,0x00D2) 784 or CheckDeadUni12("a5",0x01EB,0x01EA) 785 or CheckDeadUni12("c1",0x00F4,0x00D4) 786 or CheckDeadUni12("c2",0x01D2,0x01D1) 787 or CheckDeadUni12("c3",0x014F,0x014E) 788 or CheckDeadUni12("t1",0x00F5,0x00D5) 789 or CheckDeadUni12("t2",0x014D,0x014C) 790 or CheckDeadAsc12("t3","�","�") 791 or CheckDeadUni12("t4",0x00F8,0x00D8) 792 or CheckDeadUni12("t5",0x0151,0x0150))) 793 OutputChar("o","O") 794 else if (Ebene = 3) 795 send {blind}* 796 else if (Ebene = 4) 797 Send {blind}{End} 798 else if (Ebene = 5) 799 SendUnicodeChar(0x03BF) ; omicron 800 else if (Ebene = 6) 801 SendUnicodeChar(0x2208) ; element of 802 return 803 804 neo_s: 805 EbeneAktualisieren() 806 if (Ebene12 and !(CheckDeadUni12("a1",0x015B,0x015A) 807 or CheckDeadUni12("a3",0x015F,0x015E) 808 or CheckDeadUni12("a4",0x1E61,0x1E60) 809 or CheckDeadUni12("c1",0x015D,0x015C) 810 or CheckDeadUni12("c2",0x0161,0x0160) 811 or CheckDeadUni12("c6",0x1E63,0x1A62))) 812 if (LangSTastatur = 1) 813 if (GetKeyState("CapsLock","T") xor (Ebene = 1)) 814 SendUnicodeChar(0x017F) ; langes s 815 else 816 OutputChar("s","S") 817 else 818 OutputChar("s","S") 819 else if (Ebene = 3) 820 send {blind}? 821 else if (Ebene = 4) 822 Send � 823 else if (Ebene = 5) 824 SendUnicodeChar(0x03C3) ;sigma 825 else if (Ebene = 6) 826 SendUnicodeChar(0x03A3) ; Sigma 814 else 815 SendUnicodeChar(0x017F) ;langes S 816 else 817 send {blind}s 818 if (PriorDeadKey = "comp") 819 CompKey := "s" 820 } 821 else if (Ebene = 2) 822 { 823 if LangSTastatur 824 if (GetKeyState("CapsLock","T")) 825 SendUnicodeChar(0x017F) ;langes S 826 else 827 send {blind}S 828 else 829 send {blind}S 830 if (PriorDeadKey = "comp") 831 CompKey := "S" 832 } 833 else if (Ebene = 3) 834 send {blind}? 835 else if (Ebene = 4) 836 Send � 837 else if (Ebene = 5) 838 SendUnicodeChar(0x03C3) ;sigma 839 else if (Ebene = 6) 840 SendUnicodeChar(0x03A3) ; Sigma 827 841 return 828 842 829 843 neo_n: 830 EbeneAktualisieren()831 if (Ebene12 and !(CheckDeadUni12("a1",0x0144,0x0143)832 or CheckDeadUni12("a3",0x0146,0x0145)833 or CheckDeadUni12("a4",0x1E45,0x1E44)834 or CheckDeadUni12("c2",0x0148,0x0147)835 or CheckDeadUni12("t1",0x00F1,0x00D1)))836 OutputChar("n","N")837 else if (Ebene = 3)838 send {blind}(; )839 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2074)840 or CheckDeadUni("c5",0x2084)))841 Send {blind}{NumPad4}842 else if (Ebene = 5)843 SendUnicodeChar(0x03BD) ; nu844 else if (Ebene = 6)845 SendUnicodeChar(0x2115) ; N (nat�rliche Zahlen)844 EbeneAktualisieren() 845 if (Ebene12 and !(CheckDeadUni12("a1",0x0144,0x0143) 846 or CheckDeadUni12("a3",0x0146,0x0145) 847 or CheckDeadUni12("a4",0x1E45,0x1E44) 848 or CheckDeadUni12("c2",0x0148,0x0147) 849 or CheckDeadUni12("t1",0x00F1,0x00D1))) 850 OutputChar("n","N") 851 else if (Ebene = 3) 852 send {blind}( ; ) 853 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2074) 854 or CheckDeadUni("c5",0x2084))) 855 Send {blind}{NumPad4} 856 else if (Ebene = 5) 857 SendUnicodeChar(0x03BD) ; nu 858 else if (Ebene = 6) 859 SendUnicodeChar(0x2115) ; N (nat�rliche Zahlen) 846 860 return 847 861 848 862 neo_r: 849 EbeneAktualisieren()850 if (Ebene12 and !(CheckDeadUni12("a1",0x0155,0x0154)851 or CheckDeadUni12("a3",0x0157,0x0156)852 or CheckDeadUni12("a4",0x0E59,0x0E58)853 or CheckDeadUni12("c2",0x0159,0x0158)854 or CheckDeadUni12("c6",0x1E5B,0x1E5A)855 or CheckCompAsc12("o","�","�")856 or CheckCompAsc12("O","�","�")))857 OutputChar("r","R")858 else if (Ebene = 3);(859 send {blind})860 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2075)861 or CheckDeadUni("c5",0x2085)))862 Send {blind}{NumPad5}863 else if (Ebene = 5)864 SendUnicodeChar(0x03F1) ; rho symbol (varrho)865 else if (Ebene = 6)866 SendUnicodeChar(0x211D) ; R (reelle Zahlen)863 EbeneAktualisieren() 864 if (Ebene12 and !(CheckDeadUni12("a1",0x0155,0x0154) 865 or CheckDeadUni12("a3",0x0157,0x0156) 866 or CheckDeadUni12("a4",0x0E59,0x0E58) 867 or CheckDeadUni12("c2",0x0159,0x0158) 868 or CheckDeadUni12("c6",0x1E5B,0x1E5A) 869 or CheckCompAsc12("o","�","�") 870 or CheckCompAsc12("O","�","�"))) 871 OutputChar("r","R") 872 else if (Ebene = 3) ;( 873 send {blind}) 874 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2075) 875 or CheckDeadUni("c5",0x2085))) 876 Send {blind}{NumPad5} 877 else if (Ebene = 5) 878 SendUnicodeChar(0x03F1) ; rho symbol (varrho) 879 else if (Ebene = 6) 880 SendUnicodeChar(0x211D) ; R (reelle Zahlen) 867 881 return 868 882 869 883 neo_t: 870 EbeneAktualisieren()871 if (Ebene12 and !(CheckDeadUni12("a3",0x0163,0x0162)872 or CheckDeadUni12("a4",0x1E6B,0x1E6A)873 or CheckDeadUni12("c2",0x0165,0x0164)874 or CheckDeadUni12("c5",0x0167,0x0166)875 or CheckDeadUni12("c6",0x1E6D,0x1E6C)))876 OutputChar("t","T")877 else if (Ebene = 3)878 send {blind}- ; Bis879 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2076)880 or CheckDeadUni("c5",0x2086)))881 Send {blind}{NumPad6}882 else if (Ebene = 5)883 SendUnicodeChar(0x03C4) ; tau884 else if (Ebene = 6)885 SendUnicodeChar(0x2202 ) ; partielle Ableitung884 EbeneAktualisieren() 885 if (Ebene12 and !(CheckDeadUni12("a3",0x0163,0x0162) 886 or CheckDeadUni12("a4",0x1E6B,0x1E6A) 887 or CheckDeadUni12("c2",0x0165,0x0164) 888 or CheckDeadUni12("c5",0x0167,0x0166) 889 or CheckDeadUni12("c6",0x1E6D,0x1E6C))) 890 OutputChar("t","T") 891 else if (Ebene = 3) 892 send {blind}- ; Bis 893 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2076) 894 or CheckDeadUni("c5",0x2086))) 895 Send {blind}{NumPad6} 896 else if (Ebene = 5) 897 SendUnicodeChar(0x03C4) ; tau 898 else if (Ebene = 6) 899 SendUnicodeChar(0x2202 ) ; partielle Ableitung 886 900 return 887 901 … … 905 919 906 920 neo_y: 907 EbeneAktualisieren()908 if (Ebene12 and !(CheckDeadUni12("a1",0x00FD,0x00DD)909 or CheckDeadUni12("c1",0x0177,0x0176)910 or CheckDeadAsc12("t3","�",�)))911 OutputChar("y","Y")912 else if (Ebene = 3)913 send {blind}@914 else if (Ebene = 4)915 Send {blind}.916 else if (Ebene = 5)917 SendUnicodeChar(0x03C5) ; upsilon918 else if (Ebene = 6)919 SendUnicodeChar(0x2207) ; nabla921 EbeneAktualisieren() 922 if (Ebene12 and !(CheckDeadUni12("a1",0x00FD,0x00DD) 923 or CheckDeadUni12("c1",0x0177,0x0176) 924 or CheckDeadAsc12("t3","�",�))) 925 OutputChar("y","Y") 926 else if (Ebene = 3) 927 send {blind}@ 928 else if (Ebene = 4) 929 Send {blind}. 930 else if (Ebene = 5) 931 SendUnicodeChar(0x03C5) ; upsilon 932 else if (Ebene = 6) 933 SendUnicodeChar(0x2207) ; nabla 920 934 return 921 935 922 936 /* 923 ------------------------------------------------------ 924 Reihe 4925 ------------------------------------------------------ 937 938 Reihe 4 939 926 940 */ 927 941 928 942 neo_�: 929 EbeneAktualisieren()930 if (Ebene12 and !(CheckDeadUni12("a1",0x01D8,0x01D7)931 or CheckDeadUni12("a2",0x01DC,0x01DB)932 or CheckDeadUni12("c2",0x01DA,0x01D9)933 or CheckDeadUni12("t2",0x01D6,0x01D5)))934 OutputChar("�","�")935 else if (Ebene = 3)936 send {blind}{#}937 else if (Ebene = 4)938 Send {blind}{Esc}939 else if (Ebene = 5)940 {941 DeadKey := PriorDeadKey942 CompKey := PriorCompKey943 } ; leer944 else if (Ebene = 6)945 SendUnicodeChar(0x221D) ; proportional943 EbeneAktualisieren() 944 if (Ebene12 and !(CheckDeadUni12("a1",0x01D8,0x01D7) 945 or CheckDeadUni12("a2",0x01DC,0x01DB) 946 or CheckDeadUni12("c2",0x01DA,0x01D9) 947 or CheckDeadUni12("t2",0x01D6,0x01D5))) 948 OutputChar("�","�") 949 else if (Ebene = 3) 950 send {#} 951 else if (Ebene = 4) 952 Send {blind}{Esc} 953 else if (Ebene = 5) 954 { 955 DeadKey := PriorDeadKey 956 CompKey := PriorCompKey 957 } ; leer 958 else if (Ebene = 6) 959 SendUnicodeChar(0x221D) ; proportional 946 960 return 947 961 948 962 neo_�: 949 EbeneAktualisieren()950 if (Ebene12 and !(CheckDeadUni12("t2",0x022B,0x022A)))951 OutputChar("�","�")952 else if (Ebene = 3)953 send {blind}$954 else if (Ebene = 4)955 send {blind}{Tab}956 else if (Ebene = 5)957 {958 DeadKey := PriorDeadKey959 CompKey := PriorCompKey960 } ; leer961 else if (Ebene = 6)962 SendUnicodeChar(0x2111) ; Fraktur I963 EbeneAktualisieren() 964 if (Ebene12 and !(CheckDeadUni12("t2",0x022B,0x022A))) 965 OutputChar("�","�") 966 else if (Ebene = 3) 967 send {blind}$ 968 else if (Ebene = 4) 969 send {blind}{Tab} 970 else if (Ebene = 5) 971 { 972 DeadKey := PriorDeadKey 973 CompKey := PriorCompKey 974 } ; leer 975 else if (Ebene = 6) 976 SendUnicodeChar(0x2111) ; Fraktur I 963 977 return 964 978 965 979 neo_�: 966 EbeneAktualisieren()967 if (Ebene12 and !(CheckDeadUni12("t2",0x01DF,0x01DE)))968 OutputChar("�","�")969 else if (Ebene = 3)970 send {blind}|971 else if (Ebene = 4)972 Send {blind}{PgDn}; Next973 else if (Ebene = 5)974 SendUnicodeChar(0x03B7) ; eta975 else if (Ebene = 6)976 SendUnicodeChar(0x211C) ; altes R980 EbeneAktualisieren() 981 if (Ebene12 and !(CheckDeadUni12("t2",0x01DF,0x01DE))) 982 OutputChar("�","�") 983 else if (Ebene = 3) 984 send {blind}| 985 else if (Ebene = 4) 986 Send {blind}{PgDn} ; Next 987 else if (Ebene = 5) 988 SendUnicodeChar(0x03B7) ; eta 989 else if (Ebene = 6) 990 SendUnicodeChar(0x211C) ; altes R 977 991 return 978 992 979 993 neo_p: 980 EbeneAktualisieren()981 if (Ebene12 and !(CheckDeadUni12("a4",0x1E57,0x1E56)))982 OutputChar("p","P")983 else if ((Ebene = 3) and !(CheckDeadUni("t1",0x2248)))984 send {blind}~985 else if (Ebene = 4)986 Send {blind}{Enter}987 else if (Ebene = 5)988 SendUnicodeChar(0x03C0) ;pi989 else if (Ebene = 6)990 SendUnicodeChar(0x03A0) ; Pi994 EbeneAktualisieren() 995 if (Ebene12 and !(CheckDeadUni12("a4",0x1E57,0x1E56))) 996 OutputChar("p","P") 997 else if ((Ebene = 3) and !(CheckDeadUni("t1",0x2248))) 998 send {blind}~ 999 else if (Ebene = 4) 1000 Send {blind}{Enter} 1001 else if (Ebene = 5) 1002 SendUnicodeChar(0x03C0) ;pi 1003 else if (Ebene = 6) 1004 SendUnicodeChar(0x03A0) ; Pi 991 1005 return 992 1006 993 1007 neo_z: 994 EbeneAktualisieren()995 if (Ebene12 and !(CheckDeadUni12("a1",0x017A,0x0179)996 or CheckDeadUni12("a4",0x017C,0x017B)997 or CheckDeadUni12("c2",0x017E,0x017D)998 or CheckDeadUni12("c6",0x1E93,0x1E92)))999 OutputChar("z","Z")1000 else if (Ebene = 3)1001 send ``{space} ; untot1002 else if (Ebene = 4)1003 {1004 DeadKey := PriorDeadKey1005 CompKey := PriorCompKey1006 } ; leer1007 else if (Ebene = 5)1008 SendUnicodeChar(0x03B6) ;zeta1009 else if (Ebene = 6)1010 SendUnicodeChar(0x2124) ; Z (ganze Zahlen)1008 EbeneAktualisieren() 1009 if (Ebene12 and !(CheckDeadUni12("a1",0x017A,0x0179) 1010 or CheckDeadUni12("a4",0x017C,0x017B) 1011 or CheckDeadUni12("c2",0x017E,0x017D) 1012 or CheckDeadUni12("c6",0x1E93,0x1E92))) 1013 OutputChar("z","Z") 1014 else if (Ebene = 3) 1015 send ``{space} ; untot 1016 else if (Ebene = 4) 1017 { 1018 DeadKey := PriorDeadKey 1019 CompKey := PriorCompKey 1020 } ; leer 1021 else if (Ebene = 5) 1022 SendUnicodeChar(0x03B6) ;zeta 1023 else if (Ebene = 6) 1024 SendUnicodeChar(0x2124) ; Z (ganze Zahlen) 1011 1025 return 1012 1026 1013 1027 neo_b: 1014 EbeneAktualisieren()1015 if (Ebene12 and !(CheckDeadUni12("a4",0x1E03,0x1E02)))1016 OutputChar("b","B")1017 else if (Ebene = 3)1018 send {blind}{+}1019 else if (Ebene = 4)1020 send {blind}:1021 else if (Ebene = 5)1022 SendUnicodeChar(0x03B2) ; beta1023 else if (Ebene = 6)1024 SendUnicodeChar(0x21D2) ; Doppel-Pfeil rechts1028 EbeneAktualisieren() 1029 if (Ebene12 and !(CheckDeadUni12("a4",0x1E03,0x1E02))) 1030 OutputChar("b","B") 1031 else if (Ebene = 3) 1032 send {blind}{+} 1033 else if (Ebene = 4) 1034 send {blind}: 1035 else if (Ebene = 5) 1036 SendUnicodeChar(0x03B2) ; beta 1037 else if (Ebene = 6) 1038 SendUnicodeChar(0x21D2) ; Doppel-Pfeil rechts 1025 1039 return 1026 1040 1027 1041 neo_m: 1028 EbeneAktualisieren()1029 if (Ebene12 and !(CheckDeadUni12("a4",0x1E41,0x1E40)1030 or CheckDeadUni12("c6",0x1E43,0x1E42)1031 or CheckCompUni12("t",0x2122,0x2122); TM1032 or CheckCompUni12("T",0x2122,0x2122); TM1033 or CheckCompUni12("s",0x2120,0x2120); SM1034 or CheckCompUni12("S",0x2120,0x2120))); SM1035 1036 OutputChar("m","M")1037 else if (Ebene = 3)1038 send {blind}`%1039 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x00B9)1040 or CheckDeadUni("c5",0x2081)))1041 Send {blind}{NumPad1}1042 else if (Ebene = 5)1043 SendUnicodeChar(0x03BC) ; griechisch mu, micro w�re 0x00B51044 else if (Ebene = 6)1045 SendUnicodeChar(0x21D4) ; doppelter Doppelpfeil (genau dann wenn)1042 EbeneAktualisieren() 1043 if (Ebene12 and !(CheckDeadUni12("a4",0x1E41,0x1E40) 1044 or CheckDeadUni12("c6",0x1E43,0x1E42) 1045 or CheckCompUni12("t",0x2122,0x2122) ; TM 1046 or CheckCompUni12("T",0x2122,0x2122) ; TM 1047 or CheckCompUni12("s",0x2120,0x2120) ; SM 1048 or CheckCompUni12("S",0x2120,0x2120))) ; SM 1049 1050 OutputChar("m","M") 1051 else if (Ebene = 3) 1052 send {blind}`% 1053 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x00B9) 1054 or CheckDeadUni("c5",0x2081))) 1055 Send {blind}{NumPad1} 1056 else if (Ebene = 5) 1057 SendUnicodeChar(0x03BC) ; griechisch mu, micro w�re 0x00B5 1058 else if (Ebene = 6) 1059 SendUnicodeChar(0x21D4) ; doppelter Doppelpfeil (genau dann wenn) 1046 1060 return 1047 1061 1048 1062 neo_komma: 1049 EbeneAktualisieren() 1050 if (Ebene = 1) 1051 if (GetKeyState("CapsLock","T")) 1052 send {blind}{Shift down},{Shift up} 1063 EbeneAktualisieren() 1064 if (Ebene = 1) 1065 if (GetKeyState("CapsLock","T")) 1066 send {blind}{Shift down},{Shift up} 1067 else 1068 send {blind}, 1069 else if (Ebene = 2) 1070 SendUnicodeChar(0x22EE) ; vertikale ellipse 1071 else if (Ebene = 3) 1072 send {blind}" 1073 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x00B2) 1074 or CheckDeadUni("c5",0x2082))) 1075 Send {blind}{NumPad2} 1076 else if (Ebene = 5) 1077 SendUnicodeChar(0x03C1) ; rho 1078 else if (Ebene = 6) 1079 SendUnicodeChar(0x21D0) ; Doppelpfeil links 1080 return 1081 1082 neo_punkt: 1083 EbeneAktualisieren() 1084 if (Ebene = 1) 1085 if (GetKeyState("CapsLock","T")) 1086 send {blind}{Shift down}.{Shift up} 1087 else 1088 send {blind}. 1089 else if (Ebene = 2) 1090 SendUnicodeChar(0x2026) ; ellipse 1091 else if (Ebene = 3) 1092 send {blind}' 1093 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x00B3) 1094 or CheckDeadUni("c5",0x2083))) 1095 Send {blind}{NumPad3} 1096 else if (Ebene = 5) 1097 SendUnicodeChar(0x03D1) ; theta symbol (vartheta) 1098 else if (Ebene = 6) 1099 SendUnicodeChar(0x0398) ; Theta 1100 return 1101 1102 1103 neo_j: 1104 EbeneAktualisieren() 1105 if (Ebene12 and !(CheckDeadUni12("c1",0x0135,0x0134) 1106 or CheckDeadUni12("c2",0x01F0,"") 1107 or CheckCompUni12("i",0x0133,"") ; ij 1108 or CheckCompUni12("I","",0x0132) ; IJ 1109 or CheckCompUni12("l",0x01C9,"") ; lj 1110 or CheckCompUni12("L",0x01C8,0x01C7) ; Lj/LJ 1111 or CheckCompUni12("n",0x01CC,"") ; nj 1112 or CheckCompUni12("N",0x01CB,0x01CA))) ; Nj/NJ 1113 OutputChar("j","J") 1114 else if (Ebene = 3) 1115 send {blind}`; 1116 else if (Ebene = 4) 1117 Send {blind}`; 1118 else if (Ebene = 5) 1119 SendUnicodeChar(0x03B8) ; theta 1120 else if (Ebene = 6) 1121 SendUnicodeChar(0x2261) ; identisch 1122 return 1123 1124 /* 1125 1126 Numpad 1127 1128 1129 folgende Tasten verhalten sich bei ein- und ausgeschaltetem 1130 NumLock gleich: 1131 */ 1132 1133 neo_NumpadDiv: 1134 EbeneAktualisieren() 1135 if ((Ebene = 1) or (Ebene = 2)) 1136 send {blind}{NumpadDiv} 1137 else if (Ebene = 3) 1138 send {blind}� 1139 else if ((Ebene = 4) or (Ebene = 5)) 1140 SendUnicodeChar(0x2215) ; slash 1141 return 1142 1143 neo_NumpadMult: 1144 EbeneAktualisieren() 1145 if ((Ebene = 1) or (Ebene = 2)) 1146 send {blind}{NumpadMult} 1147 else if (Ebene = 3) 1148 send {blind}� 1149 else if ((Ebene = 4) or (Ebene = 5)) 1150 SendUnicodeChar(0x22C5) ; cdot 1151 return 1152 1153 neo_NumpadSub: 1154 EbeneAktualisieren() 1155 if (((Ebene = 1) or (Ebene = 2)) and !(CheckDeadUni("c1",0x207B) 1156 or CheckDeadUni("c5",0x208B))) 1157 send {blind}{NumpadSub} 1158 else if (Ebene = 3) 1159 SendUnicodeChar(0x2212) ; echtes minus 1160 return 1161 1162 neo_NumpadAdd: 1163 EbeneAktualisieren() 1164 if (((Ebene = 1) or (Ebene = 2)) and !(CheckDeadUni("c1",0x207A) 1165 or CheckDeadUni("c5",0x208A))) 1166 send {blind}{NumpadAdd} 1167 else if (Ebene = 3) 1168 send {blind}� 1169 else if ((Ebene = 4) or (Ebene = 5)) 1170 SendUnicodeChar(0x2213) ; -+ 1171 return 1172 1173 neo_NumpadEnter: 1174 EbeneAktualisieren() 1175 if ((Ebene = 1) or (Ebene = 2)) 1176 send {blind}{NumpadEnter} 1177 else if (Ebene = 3) 1178 SendUnicodeChar(0x2260) ; neq 1179 else if ((Ebene = 4) or (Ebene = 5)) 1180 SendUnicodeChar(0x2248) ; approx 1181 return 1182 1183 /* 1184 folgende Tasten verhalten sich bei ein- und ausgeschaltetem NumLock 1185 unterschiedlich 1186 */ 1187 1188 1189 1190 neo_Numpad7: 1191 EbeneAktualisieren() 1192 if ((Ebene = 1) and (NumLock = 0)) 1193 send {blind}{NumpadHome} 1194 else if ((Ebene = 2) and (NumLock = 1)) 1195 send {blind}{Shift up}{NumpadHome}{Shift down} 1196 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 1197 { 1198 if (Ebene = 1) 1199 send {blind}{Numpad7} 1200 else 1201 send {blind){Shift up}{Numpad7}{Shift down} 1202 1203 if (PriorDeadKey = "comp") 1204 CompKey := "Num_7" 1205 } 1206 else if (Ebene = 3) 1207 SendUnicodeChar(0x2195) ; Hoch-Runter-Pfeil 1208 else if ((Ebene = 4) or (Ebene = 5)) 1209 SendUnicodeChar(0x226A) ; ll 1210 return 1211 1212 neo_Numpad8: 1213 EbeneAktualisieren() 1214 if ((Ebene = 1) and (NumLock = 0)) 1215 send {blind}{NumpadUp} 1216 else if ((Ebene = 2) and (NumLock = 1)) 1217 send {blind}{Shift up}{NumpadUp}{Shift down} 1218 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 1219 { 1220 if !(CheckCompUni("Num_1",0x215B) ; 1/8 1221 or CheckCompUni("1",0x215B) ; 1/8 1222 or CheckCompUni("Num_3",0x215C) ; 3/8 1223 or CheckCompUni("3",0x215C) ; 3/8 1224 or CheckCompUni("Num_5",0x215D) ; 3/8 1225 or CheckCompUni("5",0x215D) ; 5/8 1226 or CheckCompUni("Num_7",0x215E) ; 7/8 1227 or CheckCompUni("7",0x215E)) ; 7/8 1228 if (Ebene = 1) 1229 send {blind}{Numpad8} 1053 1230 else 1054 send {blind}, 1055 else if (Ebene = 2) 1056 SendUnicodeChar(0x22EE) ; vertikale ellipse 1057 else if (Ebene = 3) 1058 send {blind}" 1059 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x00B2) 1060 or CheckDeadUni("c5",0x2082))) 1061 Send {blind}{NumPad2} 1062 else if (Ebene = 5) 1063 SendUnicodeChar(0x03C1) ; rho 1064 else if (Ebene = 6) 1065 SendUnicodeChar(0x21D0) ; Doppelpfeil links 1066 return 1067 1068 neo_punkt: 1069 EbeneAktualisieren() 1070 if (Ebene = 1) 1071 if (GetKeyState("CapsLock","T")) 1072 send {blind}{Shift down}.{Shift up} 1231 send {blind){Shift up}{Numpad8}{Shift down} 1232 1233 if (PriorDeadKey = "comp") 1234 CompKey := "Num_8" 1235 } 1236 else if (Ebene = 3) 1237 SendUnicodeChar(0x2191) ; uparrow 1238 else if ((Ebene = 4) or (Ebene = 5)) 1239 SendUnicodeChar(0x2229) ; intersection 1240 return 1241 1242 neo_Numpad9: 1243 EbeneAktualisieren() 1244 if ((Ebene = 1) and (NumLock = 0)) 1245 send {blind}{NumpadPgUp} 1246 else if ((Ebene = 2) and (NumLock = 1)) 1247 send {blind}{Shift up}{NumpadPgUp}{Shift down} 1248 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 1249 { 1250 if (Ebene = 1) 1251 send {blind}{Numpad9} 1252 else 1253 send {blind){Shift up}{Numpad9}{Shift down} 1254 1255 if (PriorDeadKey = "comp") 1256 CompKey := "Num_9" 1257 } 1258 else if (Ebene = 3) 1259 SendUnicodeChar(0x2297) ; Tensorprodukt ; Vektor in die Ebene zeigend 1260 else if ((Ebene = 4) or (Ebene = 5)) 1261 SendUnicodeChar(0x226B) ; gg 1262 return 1263 1264 1265 1266 neo_Numpad4: 1267 EbeneAktualisieren() 1268 if ((Ebene = 1) and (NumLock = 0)) 1269 send {blind}{NumpadLeft} 1270 else if ((Ebene = 2) and (NumLock = 1)) 1271 send {blind}{Shift up}{NumpadLeft}{Shift down} 1272 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 1273 { 1274 if !(CheckCompUni("Num_1",0x00BC) ; 1/4 1275 or CheckCompUni("1",0x00BE) ; 1/4 1276 or CheckCompUni("Num_3",0x00BE) ; 3/4 1277 or CheckCompUni("3",0x00BE)) ; 3/4 1278 if (Ebene = 1) 1279 send {blind}{Numpad4} 1073 1280 else 1074 send {blind}. 1075 else if (Ebene = 2) 1076 SendUnicodeChar(0x2026) ; ellipse 1077 else if (Ebene = 3) 1078 send {blind}' 1079 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x00B3) 1080 or CheckDeadUni("c5",0x2083))) 1081 Send {blind}{NumPad3} 1082 else if (Ebene = 5) 1083 SendUnicodeChar(0x03D1) ; theta symbol (vartheta) 1084 else if (Ebene = 6) 1085 SendUnicodeChar(0x0398) ; Theta 1086 return 1087 1088 1089 neo_j: 1090 EbeneAktualisieren() 1091 if (Ebene12 and !(CheckDeadUni12("c1",0x0135,0x0134) 1092 or CheckDeadUni12("c2",0x01F0,"") 1093 or CheckCompUni12("i",0x0133,"") ; ij 1094 or CheckCompUni12("I","",0x0132) ; IJ 1095 or CheckCompUni12("l",0x01C9,"") ; lj 1096 or CheckCompUni12("L",0x01C8,0x01C7) ; Lj/LJ 1097 or CheckCompUni12("n",0x01CC,"") ; nj 1098 or CheckCompUni12("N",0x01CB,0x01CA))) ; Nj/NJ 1099 OutputChar("j","J") 1100 else if (Ebene = 3) 1101 send {blind}`; 1102 else if (Ebene = 4) 1103 Send {blind}`; 1104 else if (Ebene = 5) 1105 SendUnicodeChar(0x03B8) ; theta 1106 else if (Ebene = 6) 1107 SendUnicodeChar(0x2261) ; identisch 1108 return 1281 send {blind){Shift up}{Numpad4}{Shift down} 1282 1283 if (PriorDeadKey = "comp") 1284 CompKey := "Num_4" 1285 } 1286 else if (Ebene = 3) 1287 SendUnicodeChar(0x2190) ; leftarrow 1288 else if ((Ebene = 4) or (Ebene = 5)) 1289 SendUnicodeChar(0x2282) ; subset of 1290 return 1291 1292 neo_Numpad5: 1293 EbeneAktualisieren() 1294 if ((Ebene = 1) and (NumLock = 0)) 1295 send {blind}{NumpadClear} 1296 else if ((Ebene = 2) and (NumLock = 1)) 1297 send {blind}{Shift up}{NumpadClear}{Shift down} 1298 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 1299 { 1300 if !(CheckCompUni("Num_1",0x2155) ; 1/5 1301 or CheckCompUni("1",0x2155) ; 1/5 1302 or CheckCompUni("Num_2",0x2156) ; 2/5 1303 or CheckCompUni("2",0x2156) ; 2/5 1304 or CheckCompUni("Num_3",0x2157) ; 3/5 1305 or CheckCompUni("3",0x2157) ; 3/5 1306 or CheckCompUni("Num_4",0x2158) ; 4/5 1307 or CheckCompUni("4",0x2158)) ; 4/5 1308 if (Ebene = 1) 1309 send {blind}{Numpad5} 1310 else 1311 send {blind){Shift up}{Numpad5}{Shift down} 1312 1313 if (PriorDeadKey = "comp") 1314 CompKey := "Num_5" 1315 } 1316 else if (Ebene = 3) 1317 SendUnicodeChar(0x221E) ; INFINITY 1318 else if ((Ebene = 4) or (Ebene = 5)) 1319 SendUnicodeChar(0x220B) ; enth�lt das Element 1320 return 1321 1322 neo_Numpad6: 1323 EbeneAktualisieren() 1324 if ((Ebene = 1) and (NumLock = 0)) 1325 send {blind}{NumpadRight} 1326 else if ((Ebene = 2) and (NumLock = 1)) 1327 send {blind}{Shift up}{NumpadRight}{Shift down} 1328 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 1329 { 1330 if !(CheckCompUni("Num_1",0x2159) ; 1/6 1331 or CheckCompUni("1",0x2159) ; 1/6 1332 or CheckCompUni("Num_5",0x215A) ; 5/6 1333 or CheckCompUni("5",0x215A)) ; 5/6 1334 if (Ebene = 1) 1335 send {blind}{Numpad6} 1336 else 1337 send {blind){Shift up}{Numpad6}{Shift down} 1338 1339 if (PriorDeadKey = "comp") 1340 CompKey := "Num_6" 1341 } 1342 else if (Ebene = 3) 1343 SendUnicodeChar(0x2192) ; rightarrow 1344 else if ((Ebene = 4) or (Ebene = 5)) 1345 SendUnicodeChar(0x2283) ; superset of 1346 return 1347 1348 neo_Numpad1: 1349 EbeneAktualisieren() 1350 if ((Ebene = 1) and (NumLock = 0)) 1351 send {blind}{NumpadEnd} 1352 else if ((Ebene = 2) and (NumLock = 1)) 1353 send {blind}{Shift up}{NumpadEnd}{Shift down} 1354 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 1355 { 1356 if (Ebene = 1) 1357 send {blind}{Numpad1} 1358 else 1359 send {blind){Shift up}{Numpad1}{Shift down} 1360 1361 if (PriorDeadKey = "comp") 1362 CompKey := "Num_1" 1363 } 1364 else if (Ebene = 3) 1365 SendUnicodeChar(0x2194) ; Links-Rechts-Pfeil 1366 else if ((Ebene = 4) or (Ebene = 5)) 1367 SendUnicodeChar(0x2264) ; leq 1368 return 1369 1370 neo_Numpad2: 1371 EbeneAktualisieren() 1372 if ((Ebene = 1) and (NumLock = 0)) 1373 send {blind}{NumpadDown} 1374 else if ((Ebene = 2) and (NumLock = 1)) 1375 send {blind}{Shift up}{NumpadDown}{Shift down} 1376 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 1377 { 1378 if !(CheckCompUni("Num_1",0x00BD) ; 1/2 1379 or CheckCompUni("1",0x00BD)) ; 1/2 1380 if (Ebene = 1) 1381 send {blind}{Numpad2} 1382 else 1383 send {blind){Shift up}{Numpad2}{Shift down} 1384 1385 if (PriorDeadKey = "comp") 1386 CompKey := "Num_2" 1387 } 1388 else if (Ebene = 3) 1389 SendUnicodeChar(0x2193) ; downarrow 1390 else if ((Ebene = 4) or (Ebene = 5)) 1391 SendUnicodeChar(0x222A) ; vereinigt 1392 return 1393 1394 neo_Numpad3: 1395 EbeneAktualisieren() 1396 if ((Ebene = 1) and (NumLock = 0)) 1397 send {blind}{NumpadPgDn} 1398 else if ((Ebene = 2) and (NumLock = 1)) 1399 send {blind}{Shift up}{NumpadPgDn}{Shift down} 1400 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 1401 { 1402 if !(CheckCompUni("Num_1",0x2153) ; 1/3 1403 or CheckCompUni("1",0x2154) ; 1/3 1404 or CheckCompUni("Num_2",0x2154) ; 2/3 1405 or CheckCompUni("2",0x2154)) ; 2/3 1406 if (Ebene = 1) 1407 send {blind}{Numpad3} 1408 else 1409 send {blind){Shift up}{Numpad3}{Shift down} 1410 1411 if (PriorDeadKey = "comp") 1412 CompKey := "Num_3" 1413 } 1414 else if (Ebene = 3) 1415 SendUnicodeChar(0x21CC) ; RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON 1416 else if ((Ebene = 4) or (Ebene = 5)) 1417 SendUnicodeChar(0x2265) ; geq 1418 return 1419 1420 neo_Numpad0: 1421 EbeneAktualisieren() 1422 if ((Ebene = 1) and (NumLock = 0)) 1423 send {blind}{NumpadIns} 1424 else if ((Ebene = 2) and (NumLock = 1)) 1425 send {blind}{Shift up}{NumpadIns}{Shift down} 1426 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 1427 { 1428 if (Ebene = 1) 1429 send {blind}{Numpad0} 1430 else 1431 send {blind){Shift up}{Numpad0}{Shift down} 1432 1433 if (PriorDeadKey = "comp") 1434 CompKey := "Num_0" 1435 } 1436 else if (Ebene = 3) 1437 send {blind}`% 1438 else if ((Ebene = 4) or (Ebene = 5)) 1439 send � 1440 return 1441 1442 neo_NumpadDot: 1443 EbeneAktualisieren() 1444 if ((Ebene = 1) and (NumLock = 0)) 1445 send {blind}{NumpadDel} 1446 else if ((Ebene = 2) and (NumLock = 1)) 1447 send {blind}{Shift up}{NumpadDel}{Shift down} 1448 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 1449 if (Ebene = 1) 1450 send {blind}{NumpadDot} 1451 else 1452 send {blind){Shift up}{NumpadDot}{Shift down} 1453 else if (Ebene = 3) 1454 send {blind}. 1455 else if ((Ebene = 4) or (Ebene = 5)) 1456 send `, 1457 return 1458 1109 1459 1110 1460 /* 1111 ------------------------------------------------------ 1112 Numpad 1113 ------------------------------------------------------ 1114 1115 folgende Tasten verhalten sich bei ein- und ausgeschaltetem 1116 NumLock gleich: 1117 */ 1118 1119 neo_NumpadDiv: 1120 EbeneAktualisieren() 1121 if ((Ebene = 1) or (Ebene = 2)) 1122 send {blind}{NumpadDiv} 1123 else if (Ebene = 3) 1124 send {blind}� 1125 else if ((Ebene = 4) or (Ebene = 5)) 1126 SendUnicodeChar(0x2215) ; slash 1127 return 1128 1129 neo_NumpadMult: 1130 EbeneAktualisieren() 1131 if ((Ebene = 1) or (Ebene = 2)) 1132 send {blind}{NumpadMult} 1133 else if (Ebene = 3) 1134 send {blind}� 1135 else if ((Ebene = 4) or (Ebene = 5)) 1136 SendUnicodeChar(0x22C5) ; cdot 1137 return 1138 1139 neo_NumpadSub: 1140 EbeneAktualisieren() 1141 if (((Ebene = 1) or (Ebene = 2)) and !(CheckDeadUni("c1",0x207B) 1142 or CheckDeadUni("c5",0x208B))) 1143 send {blind}{NumpadSub} 1144 else if (Ebene = 3) 1145 SendUnicodeChar(0x2212) ; echtes minus 1146 return 1147 1148 neo_NumpadAdd: 1149 EbeneAktualisieren() 1150 if (((Ebene = 1) or (Ebene = 2)) and !(CheckDeadUni("c1",0x207A) 1151 or CheckDeadUni("c5",0x208A))) 1152 send {blind}{NumpadAdd} 1153 else if (Ebene = 3) 1154 send {blind}� 1155 else if ((Ebene = 4) or (Ebene = 5)) 1156 SendUnicodeChar(0x2213) ; -+ 1157 return 1158 1159 neo_NumpadEnter: 1160 EbeneAktualisieren() 1161 if ((Ebene = 1) or (Ebene = 2)) 1162 send {blind}{NumpadEnter} 1163 else if (Ebene = 3) 1164 SendUnicodeChar(0x2260) ; neq 1165 else if ((Ebene = 4) or (Ebene = 5)) 1166 SendUnicodeChar(0x2248) ; approx 1167 return 1168 1169 /* 1170 folgende Tasten verhalten sich bei ein- und ausgeschaltetem NumLock 1171 unterschiedlich 1172 */ 1173 1174 1175 1176 neo_Numpad7: 1177 EbeneAktualisieren() 1178 if ((Ebene = 1) and (NumLock = 0)) 1179 send {blind}{NumpadHome} 1180 else if ((Ebene = 2) and (NumLock = 1)) 1181 send {blind}{Shift up}{NumpadHome}{Shift down} 1182 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 1183 { 1184 if (Ebene = 1) 1185 send {blind}{Numpad7} 1186 else 1187 send {blind){Shift up}{Numpad7}{Shift down} 1188 1189 if (PriorDeadKey = "comp") 1190 CompKey := "Num_7" 1191 } 1192 else if (Ebene = 3) 1193 SendUnicodeChar(0x2195) ; Hoch-Runter-Pfeil 1194 else if ((Ebene = 4) or (Ebene = 5)) 1195 SendUnicodeChar(0x226A) ; ll 1196 return 1197 1198 neo_Numpad8: 1199 EbeneAktualisieren() 1200 if ((Ebene = 1) and (NumLock = 0)) 1201 send {blind}{NumpadUp} 1202 else if ((Ebene = 2) and (NumLock = 1)) 1203 send {blind}{Shift up}{NumpadUp}{Shift down} 1204 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 1205 { 1206 if !(CheckCompUni("Num_1",0x215B) ; 1/8 1207 or CheckCompUni("1",0x215B) ; 1/8 1208 or CheckCompUni("Num_3",0x215C) ; 3/8 1209 or CheckCompUni("3",0x215C) ; 3/8 1210 or CheckCompUni("Num_5",0x215D) ; 3/8 1211 or CheckCompUni("5",0x215D) ; 5/8 1212 or CheckCompUni("Num_7",0x215E) ; 7/8 1213 or CheckCompUni("7",0x215E)) ; 7/8 1214 if (Ebene = 1) 1215 send {blind}{Numpad8} 1216 else 1217 send {blind){Shift up}{Numpad8}{Shift down} 1218 1219 if (PriorDeadKey = "comp") 1220 CompKey := "Num_8" 1221 } 1222 else if (Ebene = 3) 1223 SendUnicodeChar(0x2191) ; uparrow 1224 else if ((Ebene = 4) or (Ebene = 5)) 1225 SendUnicodeChar(0x2229) ; intersection 1226 return 1227 1228 neo_Numpad9: 1229 EbeneAktualisieren() 1230 if ((Ebene = 1) and (NumLock = 0)) 1231 send {blind}{NumpadPgUp} 1232 else if ((Ebene = 2) and (NumLock = 1)) 1233 send {blind}{Shift up}{NumpadPgUp}{Shift down} 1234 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 1235 { 1236 if (Ebene = 1) 1237 send {blind}{Numpad9} 1238 else 1239 send {blind){Shift up}{Numpad9}{Shift down} 1240 1241 if (PriorDeadKey = "comp") 1242 CompKey := "Num_9" 1243 } 1244 else if (Ebene = 3) 1245 SendUnicodeChar(0x2297) ; Tensorprodukt ; Vektor in die Ebene zeigend 1246 else if ((Ebene = 4) or (Ebene = 5)) 1247 SendUnicodeChar(0x226B) ; gg 1248 return 1249 1250 1251 1252 neo_Numpad4: 1253 EbeneAktualisieren() 1254 if ((Ebene = 1) and (NumLock = 0)) 1255 send {blind}{NumpadLeft} 1256 else if ((Ebene = 2) and (NumLock = 1)) 1257 send {blind}{Shift up}{NumpadLeft}{Shift down} 1258 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 1259 { 1260 if !(CheckCompUni("Num_1",0x00BC) ; 1/4 1261 or CheckCompUni("1",0x00BE) ; 1/4 1262 or CheckCompUni("Num_3",0x00BE) ; 3/4 1263 or CheckCompUni("3",0x00BE)) ; 3/4 1264 if (Ebene = 1) 1265 send {blind}{Numpad4} 1266 else 1267 send {blind){Shift up}{Numpad4}{Shift down} 1268 1269 if (PriorDeadKey = "comp") 1270 CompKey := "Num_4" 1271 } 1272 else if (Ebene = 3) 1273 SendUnicodeChar(0x2190) ; leftarrow 1274 else if ((Ebene = 4) or (Ebene = 5)) 1275 SendUnicodeChar(0x2282) ; subset of 1276 return 1277 1278 neo_Numpad5: 1279 EbeneAktualisieren() 1280 if ((Ebene = 1) and (NumLock = 0)) 1281 send {blind}{NumpadClear} 1282 else if ((Ebene = 2) and (NumLock = 1)) 1283 send {blind}{Shift up}{NumpadClear}{Shift down} 1284 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 1285 { 1286 if !(CheckCompUni("Num_1",0x2155) ; 1/5 1287 or CheckCompUni("1",0x2155) ; 1/5 1288 or CheckCompUni("Num_2",0x2156) ; 2/5 1289 or CheckCompUni("2",0x2156) ; 2/5 1290 or CheckCompUni("Num_3",0x2157) ; 3/5 1291 or CheckCompUni("3",0x2157) ; 3/5 1292 or CheckCompUni("Num_4",0x2158) ; 4/5 1293 or CheckCompUni("4",0x2158)) ; 4/5 1294 if (Ebene = 1) 1295 send {blind}{Numpad5} 1296 else 1297 send {blind){Shift up}{Numpad5}{Shift down} 1298 1299 if (PriorDeadKey = "comp") 1300 CompKey := "Num_5" 1301 } 1302 else if (Ebene = 3) 1303 SendUnicodeChar(0x221E) ; INFINITY 1304 else if ((Ebene = 4) or (Ebene = 5)) 1305 SendUnicodeChar(0x220B) ; enth�lt das Element 1306 return 1307 1308 neo_Numpad6: 1309 EbeneAktualisieren() 1310 if ((Ebene = 1) and (NumLock = 0)) 1311 send {blind}{NumpadRight} 1312 else if ((Ebene = 2) and (NumLock = 1)) 1313 send {blind}{Shift up}{NumpadRight}{Shift down} 1314 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 1315 { 1316 if !(CheckCompUni("Num_1",0x2159) ; 1/6 1317 or CheckCompUni("1",0x2159) ; 1/6 1318 or CheckCompUni("Num_5",0x215A) ; 5/6 1319 or CheckCompUni("5",0x215A)) ; 5/6 1320 if (Ebene = 1) 1321 send {blind}{Numpad6} 1322 else 1323 send {blind){Shift up}{Numpad6}{Shift down} 1324 1325 if (PriorDeadKey = "comp") 1326 CompKey := "Num_6" 1327 } 1328 else if (Ebene = 3) 1329 SendUnicodeChar(0x2192) ; rightarrow 1330 else if ((Ebene = 4) or (Ebene = 5)) 1331 SendUnicodeChar(0x2283) ; superset of 1332 return 1333 1334 neo_Numpad1: 1335 EbeneAktualisieren() 1336 if ((Ebene = 1) and (NumLock = 0)) 1337 send {blind}{NumpadEnd} 1338 else if ((Ebene = 2) and (NumLock = 1)) 1339 send {blind}{Shift up}{NumpadEnd}{Shift down} 1340 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 1341 { 1342 if (Ebene = 1) 1343 send {blind}{Numpad1} 1344 else 1345 send {blind){Shift up}{Numpad1}{Shift down} 1346 1347 if (PriorDeadKey = "comp") 1348 CompKey := "Num_1" 1349 } 1350 else if (Ebene = 3) 1351 SendUnicodeChar(0x2194) ; Links-Rechts-Pfeil 1352 else if ((Ebene = 4) or (Ebene = 5)) 1353 SendUnicodeChar(0x2264) ; leq 1354 return 1355 1356 neo_Numpad2: 1357 EbeneAktualisieren() 1358 if ((Ebene = 1) and (NumLock = 0)) 1359 send {blind}{NumpadDown} 1360 else if ((Ebene = 2) and (NumLock = 1)) 1361 send {blind}{Shift up}{NumpadDown}{Shift down} 1362 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 1363 { 1364 if !(CheckCompUni("Num_1",0x00BD) ; 1/2 1365 or CheckCompUni("1",0x00BD)) ; 1/2 1366 if (Ebene = 1) 1367 send {blind}{Numpad2} 1368 else 1369 send {blind){Shift up}{Numpad2}{Shift down} 1370 1371 if (PriorDeadKey = "comp") 1372 CompKey := "Num_2" 1373 } 1374 else if (Ebene = 3) 1375 SendUnicodeChar(0x2193) ; downarrow 1376 else if ((Ebene = 4) or (Ebene = 5)) 1377 SendUnicodeChar(0x222A) ; vereinigt 1378 return 1379 1380 neo_Numpad3: 1381 EbeneAktualisieren() 1382 if ((Ebene = 1) and (NumLock = 0)) 1383 send {blind}{NumpadPgDn} 1384 else if ((Ebene = 2) and (NumLock = 1)) 1385 send {blind}{Shift up}{NumpadPgDn}{Shift down} 1386 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 1387 { 1388 if !(CheckCompUni("Num_1",0x2153) ; 1/3 1389 or CheckCompUni("1",0x2154) ; 1/3 1390 or CheckCompUni("Num_2",0x2154) ; 2/3 1391 or CheckCompUni("2",0x2154)) ; 2/3 1392 if (Ebene = 1) 1393 send {blind}{Numpad3} 1394 else 1395 send {blind){Shift up}{Numpad3}{Shift down} 1396 1397 if (PriorDeadKey = "comp") 1398 CompKey := "Num_3" 1399 } 1400 else if (Ebene = 3) 1401 SendUnicodeChar(0x21CC) ; RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON 1402 else if ((Ebene = 4) or (Ebene = 5)) 1403 SendUnicodeChar(0x2265) ; geq 1404 return 1405 1406 neo_Numpad0: 1407 EbeneAktualisieren() 1408 if ((Ebene = 1) and (NumLock = 0)) 1409 send {blind}{NumpadIns} 1410 else if ((Ebene = 2) and (NumLock = 1)) 1411 send {blind}{Shift up}{NumpadIns}{Shift down} 1412 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 1413 { 1414 if (Ebene = 1) 1415 send {blind}{Numpad0} 1416 else 1417 send {blind){Shift up}{Numpad0}{Shift down} 1418 1419 if (PriorDeadKey = "comp") 1420 CompKey := "Num_0" 1421 } 1422 else if (Ebene = 3) 1423 send {blind}`% 1424 else if ((Ebene = 4) or (Ebene = 5)) 1425 send � 1426 return 1427 1428 neo_NumpadDot: 1429 EbeneAktualisieren() 1430 if ((Ebene = 1) and (NumLock = 0)) 1431 send {blind}{NumpadDel} 1432 else if ((Ebene = 2) and (NumLock = 1)) 1433 send {blind}{Shift up}{NumpadDel}{Shift down} 1434 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 1435 if (Ebene = 1) 1436 send {blind}{NumpadDot} 1437 else 1438 send {blind){Shift up}{NumpadDot}{Shift down} 1439 else if (Ebene = 3) 1440 send {blind}. 1441 else if ((Ebene = 4) or (Ebene = 5)) 1442 send `, 1443 return 1444 1445 1446 /* 1447 ------------------------------------------------------ 1448 Sondertasten 1449 ------------------------------------------------------ 1461 1462 Sondertasten 1463 1450 1464 */ 1451 1465 *space:: 1452 if ((einHandNeo))1453 spacepressed := 11454 else1455 goto neo_SpaceUp1466 if ((einHandNeo)) 1467 spacepressed := 1 1468 else 1469 goto neo_SpaceUp 1456 1470 return 1457 1471 1458 1472 *space up:: 1459 if ((einHandNeo))1460 {1461 if ((keypressed))1462 {1463 keypressed := 01464 spacepressed := 01465 }1466 else1467 {1468 goto neo_SpaceUp1469 }1470 }1471 else1472 { } ;do nothing1473 return 1473 if ((einHandNeo)) 1474 { 1475 if ((keypressed)) 1476 { 1477 keypressed := 0 1478 spacepressed := 0 1479 } 1480 else 1481 { 1482 goto neo_SpaceUp 1483 } 1484 } 1485 else 1486 { } ;do nothing 1487 return 1474 1488 1475 1489 neo_SpaceUp: 1476 EbeneAktualisieren() 1477 if ((Ebene = 1) and !(CheckComp3Uni("r_1",0x2170) ; r�misch i 1478 or CheckComp3Uni("R_1",0x2160))) ; r�misch I 1479 Send {blind}{Space} 1480 else if ((Ebene = 2) or (Ebene = 3)) 1481 Send {blind}{Space} 1482 else if (Ebene = 4) 1483 if (PriorDeadKey = "c1") ; circumflex 1484 BSSendUnicodeChar(0x2070) 1485 else if (PriorDeadKey = "c5") ; toter - 1486 BSSendUnicodeChar(0x2080) 1487 else 1488 Send {blind}{NumPad0} 1489 else if (Ebene = 5) 1490 SendUnicodeChar(0x00A0) ; gesch�tztes Leerzeichen 1491 else if (Ebene = 6) 1492 SendUnicodeChar(0x202F) ; schmales Leerzeichen 1493 DeadKey := "" CompKey := "" 1494 spacepressed := 0 1495 keypressed := 0 1490 EbeneAktualisieren() 1491 if ((Ebene = 1) and !(CheckComp3Uni("r_1",0x2170) ; r�misch i 1492 or CheckComp3Uni("R_1",0x2160))) ; r�misch I 1493 Send {blind}{Space} 1494 else if ((Ebene = 2) or (Ebene = 3)) 1495 Send {blind}{Space} 1496 else if (Ebene = 4 and !(CheckDeadUni("c1",0x2070) 1497 or CheckDeadUni("c5",0x2080))) 1498 Send {blind}{NumPad0} 1499 else if (Ebene = 5) 1500 SendUnicodeChar(0x00A0) ; gesch�tztes Leerzeichen 1501 else if (Ebene = 6) 1502 SendUnicodeChar(0x202F) ; schmales Leerzeichen 1503 DeadKey := "" CompKey := "" 1504 spacepressed := 0 1505 keypressed := 0 1496 1506 return 1497 1507 1498 1508 /* 1499 Folgende Tasten sind nur aufgef�hrt, um PriorDeadKey zu leeren.1500 Irgendwie sieht das noch nicht sch�n aus. Vielleicht l�sst sich dieses1501 Problem irgendwie eleganter l�sen...1502 1503 Nachtrag:1504 Weil es mit Alt+Tab Probleme gab, wird hier jetzt erstmal rumgeflickschustert,1505 bis eine allgemeinere L�sung gefunden wurde.1509 Folgende Tasten sind nur aufgef�hrt, um PriorDeadKey zu leeren. 1510 Irgendwie sieht das noch nicht sch�n aus. Vielleicht l�sst sich dieses 1511 Problem irgendwie eleganter l�sen... 1512 1513 Nachtrag: 1514 Weil es mit Alt+Tab Probleme gab, wird hier jetzt erstmal rumgeflickschustert, 1515 bis eine allgemeinere L�sung gefunden wurde. 1506 1516 */ 1507 1517 1508 1518 *Enter:: 1509 if (not(lernModus) or lernModus_std_Return)1510 {1511 send {Blind}{Enter}1512 DeadKey := ""CompKey := ""1513 }1519 if (not(lernModus) or lernModus_std_Return) 1520 { 1521 send {Blind}{Enter} 1522 DeadKey := "" CompKey := "" 1523 } 1514 1524 return 1515 1525 1516 1526 *Backspace:: 1517 if (not(lernModus) or lernModus_std_Backspace)1518 {1519 send {Blind}{Backspace}1520 DeadKey := ""CompKey := ""1521 }1527 if (not(lernModus) or lernModus_std_Backspace) 1528 { 1529 send {Blind}{Backspace} 1530 DeadKey := "" CompKey := "" 1531 } 1522 1532 return 1523 1533 1524 1534 *Del:: 1525 if (not(lernModus) or lernModus_std_Entf)1526 send {Blind}{Del}1535 if (not(lernModus) or lernModus_std_Entf) 1536 send {Blind}{Del} 1527 1537 return 1528 1538 1529 1539 *Ins:: 1530 if (not(lernModus) or lernModus_std_Einf) 1531 send {Blind}{Ins} 1532 return 1533 1534 1535 1540 if (not(lernModus) or lernModus_std_Einf) 1541 send {Blind}{Ins} 1542 return 1536 1543 1537 1544 … … 1541 1548 1542 1549 neo_tab: 1543 if (IsMod3Pressed()) ;# 1544 { 1545 #Include *i %a_scriptdir%\ComposeLaunch.ahk 1546 #Include *i %a_scriptdir%\Source\ComposeLaunch.ahk 1547 DeadKey := "comp" 1548 CompKey := "" 1549 } 1550 else 1551 { 1552 send {blind}{Tab} 1553 DeadKey := "" 1554 CompKey := "" 1555 } 1550 if (IsMod3Pressed()) ;# 1551 { 1552 DeadKey := "comp" 1553 CompKey := "" 1554 } 1555 else 1556 { 1557 send {blind}{Tab} 1558 DeadKey := "" 1559 CompKey := "" 1560 } 1556 1561 return 1557 1562 1558 1563 *Home:: 1559 if (not(lernModus) or lernModus_std_Pos1)1560 {1561 send {Blind}{Home}1562 DeadKey := ""CompKey := ""1563 }1564 if (not(lernModus) or lernModus_std_Pos1) 1565 { 1566 send {Blind}{Home} 1567 DeadKey := "" CompKey := "" 1568 } 1564 1569 return 1565 1570 1566 1571 *End:: 1567 if (not(lernModus) or lernModus_std_Ende)1568 {1569 send {Blind}{End}1570 DeadKey := ""CompKey := ""1571 }1572 if (not(lernModus) or lernModus_std_Ende) 1573 { 1574 send {Blind}{End} 1575 DeadKey := "" CompKey := "" 1576 } 1572 1577 return 1573 1578 1574 1579 *PgUp:: 1575 if (not(lernModus) or lernModus_std_PgUp)1576 {1577 send {Blind}{PgUp}1578 DeadKey := ""CompKey := ""1579 }1580 if (not(lernModus) or lernModus_std_PgUp) 1581 { 1582 send {Blind}{PgUp} 1583 DeadKey := "" CompKey := "" 1584 } 1580 1585 return 1581 1586 1582 1587 *PgDn:: 1583 if (not(lernModus) or lernModus_std_PgDn)1584 {1585 send {Blind}{PgDn}1586 DeadKey := ""CompKey := ""1587 }1588 if (not(lernModus) or lernModus_std_PgDn) 1589 { 1590 send {Blind}{PgDn} 1591 DeadKey := "" CompKey := "" 1592 } 1588 1593 return 1589 1594 1590 1595 *Up:: 1591 if (not(lernModus) or lernModus_std_Hoch)1592 {1593 send {Blind}{Up}1594 DeadKey := ""CompKey := ""1595 }1596 if (not(lernModus) or lernModus_std_Hoch) 1597 { 1598 send {Blind}{Up} 1599 DeadKey := "" CompKey := "" 1600 } 1596 1601 return 1597 1602 1598 1603 *Down:: 1599 if (not(lernModus) or lernModus_std_Runter)1600 {1601 send {Blind}{Down}1602 DeadKey := ""CompKey := ""1603 }1604 if (not(lernModus) or lernModus_std_Runter) 1605 { 1606 send {Blind}{Down} 1607 DeadKey := "" CompKey := "" 1608 } 1604 1609 return 1605 1610 1606 1611 *Left:: 1607 if (not(lernModus) or lernModus_std_Links)1608 {1609 send {Blind}{Left}1610 DeadKey := ""CompKey := ""1611 }1612 if (not(lernModus) or lernModus_std_Links) 1613 { 1614 send {Blind}{Left} 1615 DeadKey := "" CompKey := "" 1616 } 1612 1617 return 1613 1618 1614 1619 *Right:: 1615 if (not(lernModus) or lernModus_std_Rechts)1616 {1617 send {Blind}{Right}1618 DeadKey := ""CompKey := ""1619 }1620 return 1621 1622 1623 1624 1625 1620 if (not(lernModus) or lernModus_std_Rechts) 1621 { 1622 send {Blind}{Right} 1623 DeadKey := "" CompKey := "" 1624 } 1625 return 1626 1627 1628 1629 1630 -
windows/autohotkey/Source/Methods-Layers.ahk
r740 r746 23 23 ; *VKA0SC02A:: 24 24 if (GetKeyState("VKA1SC136", "P") and GetKeyState("VKA0SC02A", "P")) 25 send {blind}{ capslock}25 send {blind}{CapsLock} 26 26 return 27 27 -
windows/autohotkey/Source/Methods-Other.ahk
r740 r746 1 1 /* 2 ------------------------------------------------------ 3 Funktionen 4 ------------------------------------------------------ 2 Funktionen 5 3 */ 6 4 … … 20 18 CompKey := "" 21 19 Ebene12 := 0 20 Ebene7 := 0 21 Ebene8 := 0 22 22 Modstate := IsShiftPressed() . IsMod3Pressed() . IsMod4Pressed() 23 23 … … 41 41 Ebene = 6 ; Ebene 6: Mod3+Mod4 42 42 else if (Modstate = "101") 43 { 43 44 Ebene = 4 ; Ebene 7: Shift+Mod4 impliziert Ebene 4 45 Ebene7 = 1 46 } 44 47 else if (Modstate = "111") 48 { 45 49 Ebene = 6 ; Ebene 8: Shift+Mod3+Mod4 impliziert Ebene 6 50 Ebene8 = 1 51 } 46 52 47 53 Ebene12 := ((Ebene = 1) or (Ebene = 2)) … … 52 58 NumLock = 0 53 59 } 54 55 60 56 61 … … 150 155 } 151 156 152 DeadSilence = 0153 154 157 deadAsc(val) 155 158 { … … 256 259 return 0 257 260 } 258 259 DeadCompose = 0260 261 261 262 compAsc(val) … … 418 419 } 419 420 420 ;Tote/Untote Tasten 421 *F9:: 422 if (isMod4pressed()) 423 DeadSilence := not(DeadSilence) 424 else 425 send {blind}{F9} 426 return 427 428 ;Tote/Untote Compose 429 *F10:: 430 if (isMod4pressed()) 431 DeadCompose := not(DeadCompose) 432 else 433 send {blind}{F10} 434 return 435 436 ;Lang-s-Tastatur: 437 *F11:: 438 if (isMod4pressed()) 439 LangSTastatur := not(LangSTastatur) ; schaltet die Lang-s-Tastatur ein und aus 440 else 441 send {blind}{F11} 442 return 443 444 421 -
windows/autohotkey/Source/Warning.ahk
r709 r746 32 32 ******************************************* 33 33 Das war die letzte WARNUNG, ich hoffe nur dass 34 sie wirklich wissen was sie hier tun wollen ...34 Sie wirklich wissen was Sie hier tun wollen ... 35 35 ******************************************* 36 36 */ -
windows/autohotkey/neo20.ahk
r744 r746 32 32 ******************************************* 33 33 Das war die letzte WARNUNG, ich hoffe nur dass 34 sie wirklich wissen was sie hier tun wollen ...34 Sie wirklich wissen was Sie hier tun wollen ... 35 35 ******************************************* 36 36 */ 37 37 38 38 39 /* 39 /************************************ 40 * NEO 2.0 (beta) AutoHotkey-Treiber * 40 41 ************************************* 41 * NEO 2.0 (beta) Autohotkey-Treiber * 42 ************************************* 42 43 43 Autoren: 44 44 Stefan Mayer <stm (at) neo-layout. o r g> 45 Nora Gei ssler <nora_geissler (at) yahoo. d e>45 Nora Gei�ler <nora_geissler (at) yahoo. d e> 46 46 Matthias Berg <neo (at) matthias-berg. e u> 47 47 Martin Roppelt <m.p.roppelt (at) web. d e> 48 48 Dennis Heidsiek <HeidsiekB (at) aol. c o m> 49 Matthias W�chter <matthias (at) waechter. . w i z .. a t>49 Matthias W�chter <matthias (at) waechter.wiz. a t> 50 50 ... 51 52 53 51 54 52 ********* 55 53 * TODO: * 56 54 ********* 57 - Die Bildschirmtastatur mit Mod4 hat den Mod4-Lock deaktiviert!58 55 - Compose vollst�ndig implementieren (Welche Methode ist hierzu am besten geeignet?) 59 56 - ausgiebig testen... (besonders Vollst�ndigkeit bei Deadkeys) … … 62 59 - Die Ebenen vom Tastenblock an die neue Referenz anpassen (wenn da ein Konsens gefunden wurde) 63 60 64 65 61 ********** 66 62 * IDEEN: * 67 63 ********** 68 - Tastatur-Reset: mod4+escape (oder ev. ein anderer Hotkey) soll die Tastatur wieder in den Normalzustand versetzen (d.h. alle Ebenen unlocken und Einhand, Lang-s oder Sonstwelche-Modi deaktivieren) 69 - Die Varianten (lernModus, einHandNeo, Lang-s-Tastatur, Qwertz/pausieren) sollten einheitlich (de-)aktiviert werden, etwa �ber Mod4 F9-F12 70 - bei Ebene 4 rechte Hand (Numpad) z.B. Numpad5 statt 5 senden 71 72 64 - Die Varianten (lernModus, einHandNeo, Lang-s-Tastatur, Qwertz/pausieren) sollten einheitlich (de-)aktiviert werden, etwa �ber M4+F9-F12 73 65 74 66 ****************** … … 76 68 ****************** 77 69 70 Revision 746 (von Martin Roppelt) 71 - Zur�cksetzen der Tastatur �ber M4+Esc 72 - #(2L) sendet nicht mehr ' 73 - Variablen Ebene7 und Ebene8 zum Abfragen eingef�hrt 74 - s(12)(2L)-Bug von Matthias W�chter behoben 78 75 Revision 744 (von Stefan Mayer) 79 76 - Ebene4-Ziffernblock: auf neo_d nun Komma (wie Referenz), "NumPadKomma" gibt es nicht 80 Revision 743 (von Matthias W�chter, commit ed vonStefan Mayer)77 Revision 743 (von Matthias W�chter, commit durch Stefan Mayer) 81 78 - Ebene4-Ziffernblock: NumPadAdd und NumPadSub korrigiert 82 Revision 740 (von Matthias W�chter, commit ed vonHCW)79 Revision 740 (von Matthias W�chter, commit durch HCW) 83 80 - "Mega-Patch" (Skript verk�rzt, Ebenenabfrage ver�ndert, ...), siehe CHANGES.txt 81 - Blinde tote Tasten auf M4+F9 (Toggle) 82 - Blinde Compose auf M4+F10 (Toggle) 84 83 Revision 728 (von Dennis Heidsiek): 85 - Ist die Datei [...]\Anwendungsdaten\NEO2\NEO2.ini vorhanden, werden dort eventuell vonhandene Werte f�r die Globalen Schalter beim Start �bernommen 84 - Ist die Datei %APPDATA%\NEO2\NEO2.ini vorhanden, werden dort eventuell vorhandene Werte f�r die Globalen Schalter beim Start �bernommen 85 - �LangSTastaturStandardm��igEingeschaltet.ahk� wird nicht mehr unterst�tzt, weil sonst immer neu kompiliert werden muss 86 86 Revision 707 (von Dennis Heidsiek): 87 - Die Resourcen-Dateien (PNGs, ICOs) werden nun nach "Von Windows vorgegebenes TEMP Verzeichnis \NEO2\ extrahiert und nicht mehr in das Verzeichnis, in dem sich die EXE befindet87 - Die Resourcen-Dateien (PNGs, ICOs) werden nun nach "Von Windows vorgegebenes TEMP Verzeichnis"\NEO2\ extrahiert und nicht mehr in das Verzeichnis, in dem sich die EXE befindet 88 88 - Die doppelten franz�sischen Anf�hrungszeichen werden nun ebenfalls �ber SendUnicodeChar gesendet 89 89 Revision 694 (von Martin Roppelt): 90 - LangSTastatur auf F11 (Ebene 4)90 - LangSTastatur auf M4+F11 91 91 - Entwickler k�nnen durch das Erstellen einer Datei �LangSTastaturStandardm��igEingeschaltet.ahk� mit dem Inhalt �LangSTastatur := 1� diese standardm��ig aktivieren 92 92 - Mehrere DeadKeys aktualisiert (T*, Ebene 4 und T*, Ebene 5) … … 95 95 - (An/Aus) Icons an Favicon der neuen Homepage angepasst 96 96 Revision 645 (von Martin Roppelt): 97 - Ellipse zus�tzlich auf M3+x ;97 - Ellipse zus�tzlich auf M3+x 98 98 - Lang-s-Tastatur probeweise auf M4+Esc 99 99 Revision 640 (von Dennis Heidsiek): … … 102 102 - Lang-s-Tastatur kann nicht mehr durch einen Hotkey aktiviert werden 103 103 Revision 629 (von Martin Roppelt): 104 - Spitze Klammern (bra und ket) testweiseauf M5+8/9104 - Spitze Klammern (bra und ket) auf M5+8/9 105 105 Revision 624 (von Martin Roppelt): 106 106 - Lang-s-Tastatur (ein- und auszuschalten durch Mod4+�) 107 107 Revision 616 (von Dennis Heidsiek): 108 - Der nicht funktionierende Mod5-Lock-Fix wurde wieder entfernt, da er sogar neue Fehler produzierte .108 - Der nicht funktionierende Mod5-Lock-Fix wurde wieder entfernt, da er sogar neue Fehler produzierte 109 109 Revision 615 (von Dennis Heidsiek): 110 - Erfolgloser Versuch, den Mod4-Lock wiederherzustellen (durch eine Tilde vor den Scancodes der Bildschirmtastatur) .111 - Rechtschreibfehler korrigiert .112 - Zwei AHK-Links eingef�gt .110 - Erfolgloser Versuch, den Mod4-Lock wiederherzustellen (durch eine Tilde vor den Scancodes der Bildschirmtastatur) 111 - Rechtschreibfehler korrigiert 112 - Zwei AHK-Links eingef�gt 113 113 Revision 609 (von Dennis Heidsiek): 114 - Vorl�ufiger Abschluss der AHK-Modularisierung .115 - Bessere Testm�glichkeit �All.ahk� f�r AHK-Entwickler hinzugef�gt, bei der sich die Zeilenangaben in Fehlermeldungen auf die tats�chlichen Module und nicht auf das gro�e �vereinigte� Skript beziehen .114 - Vorl�ufiger Abschluss der AHK-Modularisierung 115 - Bessere Testm�glichkeit �All.ahk� f�r AHK-Entwickler hinzugef�gt, bei der sich die Zeilenangaben in Fehlermeldungen auf die tats�chlichen Module und nicht auf das gro�e �vereinigte� Skript beziehen 116 116 Revision 608 (von Martin Roppelt): 117 - Rechtschreibfehler korrigiert und Dateinamen aktualisiert und sortiert .117 - Rechtschreibfehler korrigiert und Dateinamen aktualisiert und sortiert 118 118 Revision 590 (von Dennis Heidsiek): 119 - Erste technische Vorarbeiten zur logischen Modularisierung des viel zu lange gewordenen AHK-Quellcodes .119 - Erste technische Vorarbeiten zur logischen Modularisierung des viel zu lange gewordenen AHK-Quellcodes 120 120 - Neue Batch-Datei Build-Update.bat zur einfachen Aktualisierung der EXE-Datei 121 121 Revision 583 (von Dennis Heidsiek): 122 - Kleinere Korrekturen (M od3+Numpad5, Mod5+Numpad5 und Mod3+Numpad9 stimmen wieder mit der Referenz �berein).122 - Kleinere Korrekturen (M3+NP5, M5+NP5 und M3+NP9 stimmen wieder mit der Referenz �berein) 123 123 Revision 580 (von Matthias Berg): 124 124 - Bildschirmtastatur jetzt mit Mod4+F* statt Strg+F*, dies deaktiviert jedoch leider den Mod4-Lock … … 127 127 Revision 568 (von Matthias Berg): 128 128 - Sonderzeichen, Umlaute, z und y durch ScanCodes ersetzt 129 * jetzt wird auch bei eingestelltem US Layout Neo verwendet .(z.B. f�r Chinesische InputMethodEditors)130 * rechter Mod3 geht noch nicht bei US Layout (weder ScanCode noch "\")129 * jetzt wird auch bei eingestelltem US Layout Neo verwendet (z.B. f�r Chinesische InputMethodEditors) 130 * rechter Mod3 geht noch nicht bei US-Layout (weder ScanCode noch "\") 131 131 Revision 567 (von Dennis Heidsiek): 132 - Aktivierter Mod4 Lock wird jetzt �ber die Rollen-LED des Keybord angezeigt (analog zu CapsLock), die NUM-LED beh�lt ihr bisheriges Verhalten132 - Aktivierter Mod4-Lock wird jetzt �ber die Rollen-LED des Keybord angezeigt (analog zu CapsLock), die Num-LED beh�lt ihr bisheriges Verhalten 133 133 - Neue Option im Skript: UseMod4Light 134 134 Revision 561 (von Matthias Berg): 135 - Ebene 4Tab verh�lt sich jetzt wie das andere Tab dank "goto neo_tab"135 - M4+Tab verh�lt sich jetzt wie das andere Tab dank "goto neo_tab" 136 136 Revision 560 (von Dennis Heidsiek): 137 137 - Neue Option im Skript: bildschirmTastaturEinbinden bindet die PNG-Bilder der Bildschirmtastur mit in die exe-Datei ein, so dass sich der Benutzer nur eine Datei herunterladen muss … … 148 148 * im Skript konfigurierbar 149 149 * Schaltet z.B. Qwertz Tasten aus, die es auf der 4. Ebene gibt (Return, Backspace,...) 150 * Kann auch Backspace und/oder Entfernen der 4. Ebene ausschalten (gut zum Lernen richtig zu schreiben)150 * Kann auch Backspace und/oder Entfernen der 4. Ebene ausschalten (gut zum Lernen, richtig zu schreiben) 151 151 - Bug aufgetaucht: Icons werden nicht mehr angezeigt 152 152 Revision 544 (von Stefan Mayer): … … 158 158 - nurEbenenFuenfUndSechs umbenannt in ahkTreiberKombi und auf Ebene 4 statt 5 und 6 ge�ndert 159 159 Revision 540 (von Matthias Berg): 160 - stark �berarbeitet um Wartbarkeit zu erh�hen und Redundanz zu ver ingern160 - stark �berarbeitet um Wartbarkeit zu erh�hen und Redundanz zu verringern 161 161 - nurEbenenFuenfUndSechs sollte nun auch auf Neo Treiber statt Qwertz laufen 162 162 * aber es muss noch jemand testen 163 163 * Problem: was kann man abfangen, wenn eine tote Taste gedr�ckt wird 164 164 - einHandNeo: 165 * An-/Ausschalten mit S TRG+Punkt165 * An-/Ausschalten mit Strg+Punkt 166 166 * Buchstaben der rechten Hand werden mit Space zur linken Hand 167 167 * Nebeneffekt: es gibt beim Festhalten von Space keine wiederholten Leerzeichen mehr 168 168 Revision 532 (von Matthias Berg): 169 169 - BildschirmTastatur 170 * aktiviert mit strg+F1 bis 7schaltet Keyboard ein oder aus171 * strg+F7 zeigt die zuletzt angezeigte Ebene an (und wieder aus).172 * strg+F8 schaltet AlwaysOnTop um170 * aktiviert mit Strg+F1 bis 7, schaltet Keyboard ein oder aus 171 * Strg+F7 zeigt die zuletzt angezeigte Ebene an (und wieder aus) 172 * Strg+F8 schaltet AlwaysOnTop um 173 173 Revision 529 (von Stefan Mayer): 174 174 - Icon wird automatisch geladen, falls .ico-Dateien im selbem Ordner 175 - in der .exe sind die .ico mitgespeichert und werden geladen175 - In der .exe sind die .ico mitgespeichert und werden geladen 176 176 Revision 528 (von Matthias Berg): 177 177 - Neo-Icon … … 179 179 (siehe globale Schalter) 180 180 - Mod3-Lock (nur wenn rechtes Mod3 zuerst gedr�ckt wird, andere L�sung f�hrte zum Caps-Bug) 181 - Mod4-Lock (nur wenn das linke Mod4 zuerst gedr�ckt wird, andere L�sung f�h te zum AltGr-Bug)181 - Mod4-Lock (nur wenn das linke Mod4 zuerst gedr�ckt wird, andere L�sung f�hrte zum AltGr-Bug) 182 182 - Ein paar falsche Zeichen korrigiert 183 183 Revision 527 (von Matthias Berg): 184 - AltGr Problem hoffentlich behoben185 - Umschalt+Mod4 Bug behoben184 - AltGr-Problem hoffentlich behoben 185 - Umschalt+Mod4-Bug behoben 186 186 Revision 526 (von Matthias Berg): 187 187 - Ebenen 1 bis 4 ausschalten per Umschalter siehe erste Codezeile nurEbenenFuenfUndSechs = 0 … … 200 200 - vertikale Ellipse eingebaut 201 201 - Umschalt+Umschalt f�r Capslock statt Mod3+Mod3 202 - bei Suspend wird jetzt wirklich togglesuspend aufgerufen (auch beim aktivieren per shift+pause)202 - bei Suspend wird jetzt wirklich togglesuspend aufgerufen (auch beim Aktivieren per shift+pause) 203 203 Revsion 490 (von Stefan Mayer): 204 204 - SUBSCRIPT von 0 bis 9 sowie (auf Ziffernblock) + und - … … 210 210 � r�mische Zahlen 211 211 � Ligaturen und Copyright 212 213 214 215 212 */ 216 213 217 214 218 215 219 220 221 /******************** 222 Verzeichnisse * 223 ********************* 216 /**************** 217 * Verzeichnisse * 218 ***************** 224 219 */ 225 220 ; Setzt den Pfad zu einem tempor�ren Verzeichnis … … 235 230 236 231 237 /****************** 238 Globale Schalter *239 ******************* 232 /******************* 233 * Globale Schalter * 234 ******************** 240 235 */ 241 236 … … 243 238 ; Syntaxhinweis: IniRead, Variable, InputFilename, Section, Key [, DefaultValue] 244 239 245 246 240 ; Sollen die Bilder f�r die Bildschirmtastatur in die compilierte EXE-Datei miteingebunden werden? (Nachteil: gr�ssere Dateigr�sse, Vorteil: Referenz f�r Anf�nger stets einfach verf�gbar) 247 241 bildschirmTastaturEinbinden := 1 … … 256 250 IniRead, lernModus, %ApplicationFolder%\NEO2.ini, Global, lernModus, 0 257 251 258 ; Aktivierter Mod4-Lock wird �ber die Rollen-LED des Keybord angezeigt (analog zu CapsLock)252 ; Soll aktivierter Mod4-Lock �ber die Rollen-LED des Keybord angezeigt werden (analog zu CapsLock)? 259 253 IniRead, UseMod4Light, %ApplicationFolder%\NEO2.ini, Global, UseMod4Light, 1 260 254 261 ; Soll Lang-s auf s, s auf � und � auf Mod3+�gelegt (bzw. vertauscht) werden?255 ; Soll Lang-s auf s, s auf � und � auf Lang-s gelegt (bzw. vertauscht) werden? 262 256 IniRead, LangSTastatur, %ApplicationFolder%\NEO2.ini, Global, LangSTastatur, 0 263 257 264 265 266 /************************* 267 Recourcen-Verwaltung * 268 ************************** 258 ; Sollen tote Tasten blind angezeigt werden? 259 IniRead, DeadCompose, %ApplicationFolder%\NEO2.ini, Global, DeadCompose, 0 260 261 ;Sollen Compose-Tasten blind angezeigt werden? 262 IniRead, DeadSilence, %ApplicationFolder%\NEO2.ini, Global, DeadSilence, 0 263 264 265 /*********************** 266 * Recourcen-Verwaltung * 267 ************************ 269 268 */ 270 269 271 272 270 if(FileExist("ResourceFolder") <> false) { 273 ; Versuche, alle m�glicherweise in die EXE eingebundenen Dateien zu extrahieren274 FileInstall, neo.ico, %ResourceFolder%\neo.ico, 1275 FileInstall, neo_disabled.ico, %ResourceFolder%\neo_disabled.ico, 1276 iconBenutzen = 1277 if (bildschirmTastaturEinbinden==1) {278 FileInstall, ebene1.png, %ResourceFolder%\ebene1.png, 1279 FileInstall, ebene2.png, %ResourceFolder%\ebene2.png, 1280 FileInstall, ebene3.png, %ResourceFolder%\ebene3.png, 1281 FileInstall, ebene4.png, %ResourceFolder%\ebene4.png, 1282 FileInstall, ebene5.png, %ResourceFolder%\ebene5.png, 1283 FileInstall, ebene6.png, %ResourceFolder%\ebene6.png, 1284 zeigeBildschirmTastatur = 1285 }271 ; Versuche, alle m�glicherweise in die EXE eingebundenen Dateien zu extrahieren 272 FileInstall, neo.ico, %ResourceFolder%\neo.ico, 1 273 FileInstall, neo_disabled.ico, %ResourceFolder%\neo_disabled.ico, 1 274 iconBenutzen = 1 275 if (bildschirmTastaturEinbinden==1) { 276 FileInstall, ebene1.png, %ResourceFolder%\ebene1.png, 1 277 FileInstall, ebene2.png, %ResourceFolder%\ebene2.png, 1 278 FileInstall, ebene3.png, %ResourceFolder%\ebene3.png, 1 279 FileInstall, ebene4.png, %ResourceFolder%\ebene4.png, 1 280 FileInstall, ebene5.png, %ResourceFolder%\ebene5.png, 1 281 FileInstall, ebene6.png, %ResourceFolder%\ebene6.png, 1 282 zeigeBildschirmTastatur = 1 283 } 286 284 } else { 287 MsgBox, "Das Verzeichnis %ResourceFolder% konnte nicht angelegt werden!" ; Diese Zeile dient nur der eventuellen Fehlersuche und sollte eigentlich niemals auftauchen.285 MsgBox, "Das Verzeichnis %ResourceFolder% konnte nicht angelegt werden!" ; Diese Zeile dient nur der eventuellen Fehlersuche und sollte eigentlich niemals auftauchen. 288 286 } 289 287 … … 295 293 296 294 297 /************************* 298 lernModus Konfiguration *299 nur relevant wenn *300 lernModus = 1 *301 Strg+Komma schaltet um *302 ************************** 295 /************************** 296 * lernModus Konfiguration * 297 * nur relevant wenn * 298 * lernModus = 1 * 299 * Strg+Komma schaltet um * 300 *************************** 303 301 */ 304 302 ; 0 = aus, 1 = an 305 306 303 307 304 ; die Nachfolgenden sind n�tzlich um sich die Qwertz-Tasten abzugew�hnen, da alle auf der 4. Ebene vorhanden. … … 320 317 lernModus_std_ZahlenReihe = 0 321 318 322 323 324 319 ; im folgenden kann man auch noch ein paar Tasten der 4. Ebene deaktivieren 325 320 ; n�tzlich um sich zu zwingen, richtig zu schreiben … … 327 322 lernModus_neo_Entf = 1 328 323 329 330 331 332 ; aus Noras script kopiert: 333 324 ; aus Noras Skript kopiert: 334 325 Process,Priority,,High 335 336 326 #usehook on 337 327 #singleinstance force … … 339 329 ; Quelltext kann einger�ckt werden, 340 330 ; msgbox ist trotzdem linksb�ndig 341 342 331 SetTitleMatchMode 2 343 332 SendMode Input 344 345 333 name = Neo 2.0 346 334 enable = Aktiviere %name% … … 357 345 if inputlocale <> 00000407 358 346 { 359 suspend360 regread, inputlocale, HKEY_LOCAL_MACHINE361 , SYSTEM\CurrentControlSet\Control\Keyboard Layouts\%inputlocale%362 , Layout Text363 msgbox, 48, Warnung!,364 (365 Nicht kompatibles Tastaturlayout:366 `t%inputlocale%367 `nDas deutsche QWERTZ muss als Standardlayout eingestellt368 sein, damit %name% wie erwartet funktioniert.369 `n�ndern Sie die Tastatureinstellung unter370 `tSystemsteuerung371 `t-> Regions- und Sprachoptionen372 `t-> Sprachen373 `t-> Details... `n374 )375 exitapp347 suspend 348 regread, inputlocale, HKEY_LOCAL_MACHINE 349 , SYSTEM\CurrentControlSet\Control\Keyboard Layouts\%inputlocale% 350 , Layout Text 351 msgbox, 48, Warnung!, 352 ( 353 Nicht kompatibles Tastaturlayout: 354 `t%inputlocale% 355 `nDas deutsche QWERTZ muss als Standardlayout eingestellt 356 sein, damit %name% wie erwartet funktioniert. 357 `n�ndern Sie die Tastatureinstellung unter 358 `tSystemsteuerung 359 `t-> Regions- und Sprachoptionen 360 `t-> Sprachen 361 `t-> Details... `n 362 ) 363 exitapp 376 364 } 377 378 365 379 366 … … 382 369 383 370 if (iconBenutzen) 384 menu, tray, icon, %ResourceFolder%\neo.ico,,1371 menu, tray, icon, %ResourceFolder%\neo.ico,,1 385 372 menu, tray, nostandard 386 373 menu, tray, add, �ffnen, open 387 menu, helpmenu, add, About, about388 menu, helpmenu, add, Autohotkey-Hilfe, help389 menu, helpmenu, add390 menu, helpmenu, add, http://&autohotkey.com/, autohotkey391 menu, helpmenu, add, http://www.neo-layout.org/, neo374 menu, helpmenu, add, About, about 375 menu, helpmenu, add, Autohotkey-Hilfe, help 376 menu, helpmenu, add 377 menu, helpmenu, add, http://&autohotkey.com/, autohotkey 378 menu, helpmenu, add, http://www.neo-layout.org/, neo 392 379 menu, tray, add, Hilfe, :helpmenu 393 380 menu, tray, add … … 404 391 405 392 /* 406 Variablen initialisieren393 Variablen initialisieren 407 394 */ 408 395 … … 412 399 PriorCompKey = "" 413 400 Ebene12 = 0 401 414 402 EbeneAktualisieren() 415 403 416 404 417 418 419 420 405 /* 421 EinHandNeo406 EinHandNeo 422 407 */ 423 408 spacepressed := 0 … … 456 441 457 442 458 459 443 ;Blinde/Sichtbare Tote Tasten 444 *F9:: 445 if (isMod4pressed()) 446 DeadSilence := not(DeadSilence) 447 else 448 send {blind}{F9} 449 return 450 451 ;Blinde/Sichtbare Compose 452 *F10:: 453 if (isMod4pressed()) 454 DeadCompose := not(DeadCompose) 455 else 456 send {blind}{F10} 457 return 458 459 ;Lang-s-Tastatur: 460 *F11:: 461 if (isMod4pressed()) 462 LangSTastatur := not(LangSTastatur) ; schaltet die Lang-s-Tastatur ein und aus 463 else 464 send {blind}{F11} 465 return 466 467 *Esc:: 468 if (isMod4pressed()) 469 reload 470 else 471 send {blind}{Esc} 472 return 460 473 /* 461 474 ------------------------------------------------------ … … 482 495 ; *VKA0SC02A:: 483 496 if (GetKeyState("VKA1SC136", "P") and GetKeyState("VKA0SC02A", "P")) 484 send {blind}{ capslock}497 send {blind}{CapsLock} 485 498 return 486 499 … … 1034 1047 Die eigentliche NEO-Belegung und der Hauptteil des AHK-Treibers. 1035 1048 1036 1037 Ablauf bei toten Tasten: 1038 1. Ebene Aktualisieren 1039 2. Abh�ngig von der Variablen "Ebene" Zeichen ausgeben und die Variable "PriorDeadKey" setzen 1040 1041 Ablauf bei "untoten" Tasten: 1042 1. Ebene Aktualisieren 1043 2. Abh�ngig von den Variablen "Ebene" und "PriorDeadKey" Zeichen ausgeben 1044 3. "PriorDeadKey" mit leerem String �berschreiben 1045 1046 ------------------------------------------------------ 1047 Reihe 1 1048 ------------------------------------------------------ 1049 Ablauf bei toten Tasten: 1050 1. Ebene Aktualisieren 1051 2. Abh�ngig von der Variablen "Ebene" Zeichen ausgeben und die Variable "PriorDeadKey" setzen 1052 1053 Ablauf bei "untoten" Tasten: 1054 1. Ebene Aktualisieren 1055 2. Abh�ngig von den Variablen "Ebene" und "PriorDeadKey" Zeichen ausgeben 1056 3. "PriorDeadKey" mit leerem String �berschreiben 1057 1058 Reihe 1 1049 1059 */ 1050 1060 1051 1061 1052 1062 neo_tot1: 1053 EbeneAktualisieren()1054 if (Ebene = 1)1055 {1056 deadUni(0x02C6) ; circumflex, tot1057 DeadKey := "c1"1058 }1059 else if (Ebene = 2)1060 {1061 deadUni(0x02C7) ; caron, tot1062 DeadKey := "c2"1063 }1064 else if (Ebene = 3)1065 {1066 deadUni(0x02D8) ; brevis1067 DeadKey := "c3"1068 }1069 else if (Ebene = 4)1070 {1071 deadUni(0x00B7) ; Mittenpunkt, tot1072 DeadKey := "c4"1073 }1074 else if (Ebene = 5)1075 {1076 deadAsc("-") ; querstrich, tot1077 DeadKey := "c5"1078 }1079 else if (Ebene = 6)1080 {1081 deadAsc(".") ; punkt darunter (colon)1082 DeadKey := "c6"1083 }1084 CompKey := PriorCompKey1063 EbeneAktualisieren() 1064 if (Ebene = 1) 1065 { 1066 deadUni(0x02C6) ; Zirkumflex, tot 1067 DeadKey := "c1" 1068 } 1069 else if (Ebene = 2) 1070 { 1071 deadUni(0x02C7) ; Caron, tot 1072 DeadKey := "c2" 1073 } 1074 else if (Ebene = 3) 1075 { 1076 deadUni(0x02D8) ; Brevis, tot 1077 DeadKey := "c3" 1078 } 1079 else if (Ebene = 4) 1080 { 1081 deadUni(0x00B7) ; Mittenpunkt, tot 1082 DeadKey := "c4" 1083 } 1084 else if (Ebene = 5) 1085 { 1086 deadAsc("-") ; Querstrich, tot 1087 DeadKey := "c5" 1088 } 1089 else if (Ebene = 6) 1090 { 1091 deadAsc(".") ; Punkt drunter (Colon), tot 1092 DeadKey := "c6" 1093 } 1094 CompKey := PriorCompKey 1085 1095 return 1086 1096 1087 1097 neo_1: 1088 EbeneAktualisieren()1089 if (Ebene = 1)1090 {1091 if !(CheckDeadUni("c1",0x00B9)1092 or CheckDeadUni("c5",0x2081)1093 or CheckComp3Uni("r_1",0x217A); r�misch xi1094 or CheckComp3Uni("R_1",0x216A)); r�misch XI1095 if (GetKeyState("CapsLock","T"))1096 send {blind}{Shift down}1{Shift up}1097 else if (not(lernModus) or lernModus_std_ZahlenReihe)1098 send {blind}11098 EbeneAktualisieren() 1099 if (Ebene = 1) 1100 { 1101 if !(CheckDeadUni("c1",0x00B9) 1102 or CheckDeadUni("c5",0x2081) 1103 or CheckComp3Uni("r_1",0x217A) ; r�misch xi 1104 or CheckComp3Uni("R_1",0x216A)) ; r�misch XI 1105 if (GetKeyState("CapsLock","T")) 1106 send {blind}{Shift down}1{Shift up} 1107 else if (not(lernModus) or lernModus_std_ZahlenReihe) 1108 send {blind}1 1099 1109 1100 1110 if (PriorDeadKey = "comp") … … 1118 1128 1119 1129 neo_2: 1120 EbeneAktualisieren() 1121 if (Ebene = 1) 1122 { 1123 if !(CheckDeadUni("c1",0x00B2) 1124 or CheckDeadUni("c5",0x2082) 1125 or CheckCompUni("r",0x2171) ; r�misch ii 1126 or CheckCompUni("R",0x2161) ; r�misch II 1127 or CheckComp3Uni("r_1",0x217B) ; r�misch xii 1128 or CheckComp3Uni("R_1",0x216B)) ; r�misch XII 1129 if (GetKeyState("CapsLock","T")) 1130 send {blind}{Shift down}2{Shift up} 1131 else if (not(lernModus) or lernModus_std_ZahlenReihe) 1132 send {blind}2 1133 1134 if (PriorDeadKey = "comp") 1135 CompKey := "2" 1136 } 1137 else if (Ebene = 2) 1138 SendUnicodeChar(0x2116) ; numero 1130 EbeneAktualisieren() 1131 if (Ebene = 1) 1132 { 1133 if !(CheckDeadUni("c1",0x00B2) 1134 or CheckDeadUni("c5",0x2082) 1135 or CheckCompUni("r",0x2171) ; r�misch ii 1136 or CheckCompUni("R",0x2161) ; r�misch II 1137 or CheckComp3Uni("r_1",0x217B) ; r�misch xii 1138 or CheckComp3Uni("R_1",0x216B)) ; r�misch XII 1139 if (GetKeyState("CapsLock","T")) 1140 send {blind}{Shift down}2{Shift up} 1141 else if (not(lernModus) or lernModus_std_ZahlenReihe) 1142 send {blind}2 1143 1144 if (PriorDeadKey = "comp") 1145 CompKey := "2" 1146 } 1147 else if (Ebene = 2) 1148 SendUnicodeChar(0x2116) ; numero 1149 else if (Ebene = 3) 1150 SendUnicodeChar(0x00B2) ; 2 Hochgestellte 1151 else if (Ebene = 4) 1152 SendUnicodeChar(0x2023) ; aufzaehlungspfeil 1153 else if (Ebene = 5) 1154 SendUnicodeChar(0x26A5) ; Piktogramm Zwitter 1155 else if (Ebene = 6) 1156 SendUnicodeChar(0x2228) ; Logisches Oder 1157 return 1158 1159 neo_3: 1160 EbeneAktualisieren() 1161 if (Ebene = 1) 1162 { 1163 if !(CheckDeadUni("c1",0x00B3) 1164 or CheckDeadUni("c5",0x2083) 1165 or CheckCompUni("1",0x2153) ; 1/3 1166 or CheckCompUni("2",0x2154) ; 2/3 1167 or CheckCompUni("r",0x2172) ; r�misch iii 1168 or CheckCompUni("R",0x2162)) ; r�misch III 1169 if (GetKeyState("CapsLock","T")) 1170 send {blind}{Shift down}3{Shift up} 1171 else if (not(lernModus) or lernModus_std_ZahlenReihe) 1172 send {blind}3 1173 1174 if (PriorDeadKey = "comp") 1175 CompKey := "3" 1176 } 1177 else if (Ebene = 2) 1178 send � 1179 else if (Ebene = 3) 1180 SendUnicodeChar(0x00B3) ; 3 Hochgestellte 1181 else if (Ebene = 4) 1182 { 1183 CompKey := PriorCompKey 1184 DeadKey := PriorDeadKey 1185 } ; leer 1186 else if (Ebene = 5) 1187 SendUnicodeChar(0x2642) ; Piktogramm Mann 1188 else if (Ebene = 6) 1189 SendUnicodeChar(0x2227) ; Logisches Und 1190 return 1191 1192 neo_4: 1193 EbeneAktualisieren() 1194 if (Ebene = 1) 1195 { 1196 if !(CheckDeadUni("c1",0x2074) 1197 or CheckDeadUni("c5",0x2084) 1198 or CheckCompUni("r",0x2173) ; r�misch iv 1199 or CheckCompUni("R",0x2163)) ; r�misch IV 1200 if (GetKeyState("CapsLock","T")) 1201 send {blind}{Shift down}4{Shift up} 1202 else if (not(lernModus) or lernModus_std_ZahlenReihe) 1203 send {blind}4 1204 1205 if (PriorDeadKey = "comp") 1206 CompKey := "4" 1207 } 1208 else if (Ebene = 2) 1209 SendUnicodeChar(0x00BB) ; �, Double guillemot right 1139 1210 else if (Ebene = 3) 1140 SendUnicodeChar(0x00B2) ; 2 Hochgestellte 1141 else if (Ebene = 4) 1142 SendUnicodeChar(0x2023) ; aufzaehlungspfeil 1143 else if (Ebene = 5) 1144 SendUnicodeChar(0x26A5) ; Piktogramm Zwitter 1145 else if (Ebene = 6) 1146 SendUnicodeChar(0x2228) ; Logisches Oder 1147 return 1148 1149 neo_3: 1150 EbeneAktualisieren() 1151 if (Ebene = 1) 1152 { 1153 if !(CheckDeadUni("c1",0x00B3) 1154 or CheckDeadUni("c5",0x2083) 1155 or CheckCompUni("1",0x2153) ; 1/3 1156 or CheckCompUni("2",0x2154) ; 2/3 1157 or CheckCompUni("r",0x2172) ; r�misch iii 1158 or CheckCompUni("R",0x2162)) ; r�misch III 1159 if (GetKeyState("CapsLock","T")) 1160 send {blind}{Shift down}3{Shift up} 1161 else if (not(lernModus) or lernModus_std_ZahlenReihe) 1162 send {blind}3 1163 1164 if (PriorDeadKey = "comp") 1165 CompKey := "3" 1166 } 1167 else if (Ebene = 2) 1168 send � 1169 else if (Ebene = 3) 1170 SendUnicodeChar(0x00B3) ; 3 Hochgestellte 1171 else if (Ebene = 4) 1172 { 1173 CompKey := PriorCompKey 1174 DeadKey := PriorDeadKey 1175 } ; leer 1176 else if (Ebene = 5) 1177 SendUnicodeChar(0x2642) ; Piktogramm Mann 1178 else if (Ebene = 6) 1179 SendUnicodeChar(0x2227) ; Logisches Und 1180 return 1181 1182 neo_4: 1183 EbeneAktualisieren() 1184 if (Ebene = 1) 1185 { 1186 if !(CheckDeadUni("c1",0x2074) 1187 or CheckDeadUni("c5",0x2084) 1188 or CheckCompUni("r",0x2173) ; r�misch iv 1189 or CheckCompUni("R",0x2163)) ; r�misch IV 1190 if (GetKeyState("CapsLock","T")) 1191 send {blind}{Shift down}4{Shift up} 1192 else if (not(lernModus) or lernModus_std_ZahlenReihe) 1193 send {blind}4 1194 1195 if (PriorDeadKey = "comp") 1196 CompKey := "4" 1197 } 1198 else if (Ebene = 2) 1199 SendUnicodeChar(0x00BB) ; �, Double guillemot right 1200 else if (Ebene = 3) 1201 Send {blind}� ; Single guillemot right 1202 else if (Ebene = 4) 1203 Send {blind}{PgUp} ; Prev 1204 else if (Ebene = 5) 1205 SendUnicodeChar(0x2113) ; Script small L 1206 else if (Ebene = 6) 1207 SendUnicodeChar(0x22A5) ; Senkrecht 1211 Send {blind}� ; Single guillemot right 1212 else if (Ebene = 4) 1213 Send {blind}{PgUp} ; Prev 1214 else if (Ebene = 5) 1215 SendUnicodeChar(0x2113) ; Script small L 1216 else if (Ebene = 6) 1217 SendUnicodeChar(0x22A5) ; Senkrecht 1208 1218 return 1209 1219 1210 1220 neo_5: 1211 EbeneAktualisieren()1212 if (Ebene = 1)1213 {1214 if !(CheckDeadUni("c1",0x2075)1215 or CheckDeadUni("c5",0x2085)1216 or CheckCompUni("1",0x2155); 1/51217 or CheckCompUni("2",0x2156); 2/51218 or CheckCompUni("3",0x2157); 3/51219 or CheckCompUni("4",0x2158); 4/51220 or CheckCompUni("r",0x2174); r�misch v1221 or CheckCompUni("R",0x2164)); r�misch V1222 if (GetKeyState("CapsLock","T"))1223 send {blind}{Shift down}5{Shift up}1224 else if (not(lernModus) or lernModus_std_ZahlenReihe)1225 send {blind}51226 1227 if (PriorDeadKey = "comp")1228 CompKey := "5"1229 }1230 else if (Ebene = 2)1231 SendUnicodeChar(0x00AB) ; �,Double guillemot left1232 else if (Ebene = 3)1233 Send {blind}�; Single guillemot left1234 else if (Ebene = 4)1235 {1236 CompKey := PriorCompKey1237 DeadKey := PriorDeadKey1238 } ; leer1239 else if (Ebene = 5)1240 SendUnicodeChar(0x2020) ; Kreuz (Dagger)1241 else if (Ebene = 6)1242 SendUnicodeChar(0x2221) ; Winkel1221 EbeneAktualisieren() 1222 if (Ebene = 1) 1223 { 1224 if !(CheckDeadUni("c1",0x2075) 1225 or CheckDeadUni("c5",0x2085) 1226 or CheckCompUni("1",0x2155) ; 1/5 1227 or CheckCompUni("2",0x2156) ; 2/5 1228 or CheckCompUni("3",0x2157) ; 3/5 1229 or CheckCompUni("4",0x2158) ; 4/5 1230 or CheckCompUni("r",0x2174) ; r�misch v 1231 or CheckCompUni("R",0x2164)) ; r�misch V 1232 if (GetKeyState("CapsLock","T")) 1233 send {blind}{Shift down}5{Shift up} 1234 else if (not(lernModus) or lernModus_std_ZahlenReihe) 1235 send {blind}5 1236 1237 if (PriorDeadKey = "comp") 1238 CompKey := "5" 1239 } 1240 else if (Ebene = 2) 1241 SendUnicodeChar(0x00AB) ; Double guillemot left 1242 else if (Ebene = 3) 1243 Send {blind}� ; Single guillemot left 1244 else if (Ebene = 4) 1245 { 1246 CompKey := PriorCompKey 1247 DeadKey := PriorDeadKey 1248 } ; leer 1249 else if (Ebene = 5) 1250 SendUnicodeChar(0x2020) ; Kreuz (Dagger) 1251 else if (Ebene = 6) 1252 SendUnicodeChar(0x2221) ; Winkel 1243 1253 return 1244 1254 1245 1255 neo_6: 1246 EbeneAktualisieren()1247 if (Ebene = 1)1248 {1249 if !(CheckDeadUni("c1",0x2076)1250 or CheckDeadUni("c5",0x2086)1251 or CheckCompUni("1",0x2159); 1/61252 or CheckCompUni("5",0x215A); 5/61253 or CheckCompUni("r",0x2175); r�misch vi1254 or CheckCompUni("R",0x2165)); r�misch VI1255 if (GetKeyState("CapsLock","T"))1256 send {blind}{Shift down}6{Shift up}1257 else if (not(lernModus) or lernModus_std_ZahlenReihe)1258 send {blind}61259 1260 if (PriorDeadKey = "comp")1261 CompKey := "6"1262 }1263 else if (Ebene = 2)1264 send �1265 else if (Ebene = 3)1266 send {blind}�1267 else if (Ebene = 4)1268 send {blind}�1269 else if (Ebene = 5)1270 {1271 CompKey := PriorCompKey1272 DeadKey := PriorDeadKey1273 } ; leer1274 else if (Ebene = 6)1275 SendUnicodeChar(0x2225) ; parallel1256 EbeneAktualisieren() 1257 if (Ebene = 1) 1258 { 1259 if !(CheckDeadUni("c1",0x2076) 1260 or CheckDeadUni("c5",0x2086) 1261 or CheckCompUni("1",0x2159) ; 1/6 1262 or CheckCompUni("5",0x215A) ; 5/6 1263 or CheckCompUni("r",0x2175) ; r�misch vi 1264 or CheckCompUni("R",0x2165)) ; r�misch VI 1265 if (GetKeyState("CapsLock","T")) 1266 send {blind}{Shift down}6{Shift up} 1267 else if (not(lernModus) or lernModus_std_ZahlenReihe) 1268 send {blind}6 1269 1270 if (PriorDeadKey = "comp") 1271 CompKey := "6" 1272 } 1273 else if (Ebene = 2) 1274 send � 1275 else if (Ebene = 3) 1276 send {blind}� 1277 else if (Ebene = 4) 1278 send {blind}� 1279 else if (Ebene = 5) 1280 { 1281 CompKey := PriorCompKey 1282 DeadKey := PriorDeadKey 1283 } ; leer 1284 else if (Ebene = 6) 1285 SendUnicodeChar(0x2225) ; parallel 1276 1286 return 1277 1287 1278 1288 neo_7: 1279 EbeneAktualisieren()1280 if (Ebene = 1)1281 {1282 if !(CheckDeadUni("c1",0x2077)1283 or CheckDeadUni("c5",0x2087)1284 or CheckCompUni("r",0x2176); r�misch vii1285 or CheckCompUni("R",0x2166)); r�misch VII1286 if (GetKeyState("CapsLock","T"))1287 send {blind}{Shift down}7{Shift up}1288 else if (not(lernModus) or lernModus_std_ZahlenReihe)1289 send {blind}71290 1291 if (PriorDeadKey = "comp")1292 CompKey := "7"1293 }1294 else if (Ebene = 2)1295 send $1296 else if (Ebene = 3)1297 send {blind}�1298 else if (Ebene = 4)1299 send {blind}�1300 else if (Ebene = 5)1301 SendUnicodeChar(0x03BA) ; greek small letter kappa1302 else if (Ebene = 6)1303 SendUnicodeChar(0x2209) ; nicht Element von1289 EbeneAktualisieren() 1290 if (Ebene = 1) 1291 { 1292 if !(CheckDeadUni("c1",0x2077) 1293 or CheckDeadUni("c5",0x2087) 1294 or CheckCompUni("r",0x2176) ; r�misch vii 1295 or CheckCompUni("R",0x2166)) ; r�misch VII 1296 if (GetKeyState("CapsLock","T")) 1297 send {blind}{Shift down}7{Shift up} 1298 else if (not(lernModus) or lernModus_std_ZahlenReihe) 1299 send {blind}7 1300 1301 if (PriorDeadKey = "comp") 1302 CompKey := "7" 1303 } 1304 else if (Ebene = 2) 1305 send $ 1306 else if (Ebene = 3) 1307 send {blind}� 1308 else if (Ebene = 4) 1309 send {blind}� 1310 else if (Ebene = 5) 1311 SendUnicodeChar(0x03BA) ; greek small letter kappa 1312 else if (Ebene = 6) 1313 SendUnicodeChar(0x2209) ; nicht Element von 1304 1314 return 1305 1315 1306 1316 neo_8: 1307 EbeneAktualisieren()1308 if (Ebene = 1)1309 {1310 if !(CheckDeadUni("c1",0x2078)1311 or CheckDeadUni("c5",0x2088)1312 or CheckCompUni("1",0x215B); 1/81313 or CheckCompUni("3",0x215C); 3/81314 or CheckCompUni("5",0x215D); 5/81315 or CheckCompUni("7",0x215E); 7/81316 or CheckCompUni("r",0x2177); r�misch viii1317 or CheckCompUni("R",0x2167)); r�misch VIII1318 if (GetKeyState("CapsLock","T"))1319 send {blind}{Shift down}8{Shift up}1320 else if (not(lernModus) or lernModus_std_ZahlenReihe)1321 send {blind}81322 1323 if (PriorDeadKey = "comp")1324 CompKey := "8"1325 }1326 else if (Ebene = 2)1327 send �1328 else if (Ebene = 3)1329 send {blind}�1330 else if (Ebene = 4)1331 Send {blind}{NumpadDiv}1332 else if (Ebene = 5)1333 SendUnicodeChar(0x27E8) ;bra (�ffnende spitze klammer)1334 else if (Ebene = 6)1335 SendUnicodeChar(0x2204) ; es existiert nicht1317 EbeneAktualisieren() 1318 if (Ebene = 1) 1319 { 1320 if !(CheckDeadUni("c1",0x2078) 1321 or CheckDeadUni("c5",0x2088) 1322 or CheckCompUni("1",0x215B) ; 1/8 1323 or CheckCompUni("3",0x215C) ; 3/8 1324 or CheckCompUni("5",0x215D) ; 5/8 1325 or CheckCompUni("7",0x215E) ; 7/8 1326 or CheckCompUni("r",0x2177) ; r�misch viii 1327 or CheckCompUni("R",0x2167)) ; r�misch VIII 1328 if (GetKeyState("CapsLock","T")) 1329 send {blind}{Shift down}8{Shift up} 1330 else if (not(lernModus) or lernModus_std_ZahlenReihe) 1331 send {blind}8 1332 1333 if (PriorDeadKey = "comp") 1334 CompKey := "8" 1335 } 1336 else if (Ebene = 2) 1337 send � 1338 else if (Ebene = 3) 1339 send {blind}� 1340 else if (Ebene = 4) 1341 Send {blind}{NumpadDiv} 1342 else if (Ebene = 5) 1343 SendUnicodeChar(0x27E8) ;bra (�ffnende spitze klammer) 1344 else if (Ebene = 6) 1345 SendUnicodeChar(0x2204) ; es existiert nicht 1336 1346 return 1337 1347 1338 1348 neo_9: 1339 EbeneAktualisieren()1340 if (Ebene = 1)1341 {1342 if !(CheckDeadUni("c1",0x2079)1343 or CheckDeadUni("c5",0x2089)1344 or CheckCompUni("r",0x2178); r�misch ix1345 or CheckCompUni("R",0x2168)); r�misch IX1346 if (GetKeyState("CapsLock","T"))1347 send {blind}{Shift down}9{Shift up}1348 else if (not(lernModus) or lernModus_std_ZahlenReihe)1349 send {blind}91350 1351 if (PriorDeadKey = "comp")1352 CompKey := "9"1353 }1354 else if (Ebene = 2)1355 send �1356 else if (Ebene = 3)1357 send {blind}�1358 else if (Ebene = 4)1359 Send {blind}{NumpadMult}1360 else if (Ebene = 5)1361 SendUnicodeChar(0x27E9) ;ket (schlie�ende spitze klammer)1362 else if (Ebene = 6)1363 SendUnicodeChar(0x2226) ; nicht parallel1349 EbeneAktualisieren() 1350 if (Ebene = 1) 1351 { 1352 if !(CheckDeadUni("c1",0x2079) 1353 or CheckDeadUni("c5",0x2089) 1354 or CheckCompUni("r",0x2178) ; r�misch ix 1355 or CheckCompUni("R",0x2168)) ; r�misch IX 1356 if (GetKeyState("CapsLock","T")) 1357 send {blind}{Shift down}9{Shift up} 1358 else if (not(lernModus) or lernModus_std_ZahlenReihe) 1359 send {blind}9 1360 1361 if (PriorDeadKey = "comp") 1362 CompKey := "9" 1363 } 1364 else if (Ebene = 2) 1365 send � 1366 else if (Ebene = 3) 1367 send {blind}� 1368 else if (Ebene = 4) 1369 Send {blind}{NumpadMult} 1370 else if (Ebene = 5) 1371 SendUnicodeChar(0x27E9) ;ket (schlie�ende spitze klammer) 1372 else if (Ebene = 6) 1373 SendUnicodeChar(0x2226) ; nicht parallel 1364 1374 return 1365 1375 1366 1376 neo_0: 1367 EbeneAktualisieren()1368 if (Ebene = 1)1369 {1370 if !(CheckDeadUni("c1",0x2070)1371 or CheckDeadUni("c5",0x2080)1372 or CheckComp3Uni("r_1",0x2179); r�misch x1373 or CheckComp3Uni("R_1",0x2169)); r�misch X1374 if (GetKeyState("CapsLock","T"))1375 send {blind}{Shift down}0{Shift up}1376 else if (not(lernModus) or lernModus_std_ZahlenReihe)1377 send {blind}01377 EbeneAktualisieren() 1378 if (Ebene = 1) 1379 { 1380 if !(CheckDeadUni("c1",0x2070) 1381 or CheckDeadUni("c5",0x2080) 1382 or CheckComp3Uni("r_1",0x2179) ; r�misch x 1383 or CheckComp3Uni("R_1",0x2169)) ; r�misch X 1384 if (GetKeyState("CapsLock","T")) 1385 send {blind}{Shift down}0{Shift up} 1386 else if (not(lernModus) or lernModus_std_ZahlenReihe) 1387 send {blind}0 1378 1388 1379 1389 if (PriorDeadKey = "comp") … … 1396 1406 1397 1407 neo_strich: 1398 EbeneAktualisieren() 1399 if (Ebene = 1) 1400 if (GetKeyState("CapsLock","T")) 1401 send {blind}{Shift down}-{Shift up} 1402 else 1403 send {blind}- ; Bindestrich-Minus 1404 else if (Ebene = 2) 1405 SendUnicodeChar(0x2013) ; Gedankenstrich 1406 else if (Ebene = 3) 1407 SendUnicodeChar(0x2014) ; Englischer Gedankenstrich (Geviertstrich) 1408 else if (Ebene = 4) 1409 { 1408 EbeneAktualisieren() 1409 if (Ebene = 1) 1410 if (GetKeyState("CapsLock","T")) 1411 send {blind}{Shift down}-{Shift up} 1412 else 1413 send {blind}- ; Bindestrich-Minus 1414 else if (Ebene = 2) 1415 SendUnicodeChar(0x2013) ; Gedankenstrich 1416 else if (Ebene = 3) 1417 SendUnicodeChar(0x2014) ; Englischer Gedankenstrich (Geviertstrich) 1418 else if (Ebene = 4) 1419 { 1420 CompKey := PriorCompKey 1421 DeadKey := PriorDeadKey 1422 } ; leer 1423 else if (Ebene = 5) 1424 SendUnicodeChar(0x2011) ; gesch�tzter Bindestrich (Bindestrich ohne Zeilenumbruch) 1425 else if (Ebene = 6) 1426 SendUnicodeChar(0x00AD) ; weicher Bindestrich 1427 return 1428 1429 neo_tot2: 1430 EbeneAktualisieren() 1431 if (Ebene = 1) 1432 { 1433 deadAsc("{�}{space}") ; Akut, tot 1434 DeadKey := "a1" 1435 } 1436 else if (Ebene = 2) 1437 { 1438 deadAsc("``{space}") ; Gravis, tot 1439 DeadKey := "a2" 1440 } 1441 else if (Ebene = 3) 1442 { 1443 deadAsc("�") ; Cedilla, tot 1444 DeadKey := "a3" 1445 } 1446 else if (Ebene = 4) 1447 { 1448 deadUni(0x02D9) ; Punkt obendr�ber 1449 DeadKey := "a4" 1450 } 1451 else if (Ebene = 5) 1452 { 1453 deadUni(0x02DB) ; Ogonek 1454 DeadKey := "a5" 1455 } 1456 else if (Ebene = 6) 1457 { 1458 deadUni(0x02DA) ; Ring obendrauf 1459 DeadKey := "a6" 1460 } 1461 CompKey := PriorCompKey 1462 return 1463 1464 1465 /* 1466 1467 Reihe 2 1468 1469 */ 1470 1471 neo_x: 1472 EbeneAktualisieren() 1473 if (Ebene12) 1474 OutputChar("x","X") 1475 else if (Ebene = 3) 1476 SendUnicodeChar(0x2026) ;Ellipse 1477 else if (Ebene = 5) 1478 SendUnicodeChar(0x03BE) ;xi 1479 else if (Ebene = 6) 1480 SendUnicodeChar(0x039E) ; Xi 1481 return 1482 1483 1484 neo_v: 1485 EbeneAktualisieren() 1486 if (Ebene12 and !(CheckDeadUni12("c6",0x1E7F,0x1E7E))) 1487 OutputChar("v","V") 1488 else if (Ebene = 3) 1489 send {blind}_ 1490 else if (Ebene = 4) 1491 if (not(lernModus) or lernModus_neo_Backspace) 1492 Send {blind}{Backspace} 1493 else 1494 { 1410 1495 CompKey := PriorCompKey 1411 1496 DeadKey := PriorDeadKey 1412 } ; leer 1413 else if (Ebene = 5) 1414 SendUnicodeChar(0x2011) ; gesch�tzter Bindestrich (Bindestrich ohne Zeilenumbruch) 1415 else if (Ebene = 6) 1416 SendUnicodeChar(0x00AD) ; weicher Bindestrich 1417 return 1418 1419 neo_tot2: 1420 EbeneAktualisieren() 1421 if (Ebene = 1) 1422 { 1423 deadAsc("{�}{space}") ; akut, tot 1424 DeadKey := "a1" 1425 } 1426 else if (Ebene = 2) 1427 { 1428 deadAsc("``{space}") 1429 DeadKey := "a2" 1430 } 1431 else if (Ebene = 3) 1432 { 1433 deadAsc("�") ; cedilla 1434 DeadKey := "a3" 1435 } 1436 else if (Ebene = 4) 1437 { 1438 deadUni(0x02D9) ; punkt oben dr�ber 1439 DeadKey := "a4" 1440 } 1441 else if (Ebene = 5) 1442 { 1443 deadUni(0x02DB) ; ogonek 1444 DeadKey := "a5" 1445 } 1446 else if (Ebene = 6) 1447 { 1448 deadUni(0x02DA) ; ring obendrauf 1449 DeadKey := "a6" 1450 } 1451 CompKey := PriorCompKey 1452 return 1453 1454 1455 /* 1456 ------------------------------------------------------ 1457 Reihe 2 1458 ------------------------------------------------------ 1459 */ 1460 1461 neo_x: 1462 EbeneAktualisieren() 1463 if (Ebene12) 1464 OutputChar("x","X") 1465 else if (Ebene = 3) 1466 SendUnicodeChar(0x2026) ;Ellipse 1467 else if (Ebene = 5) 1468 SendUnicodeChar(0x03BE) ;xi 1469 else if (Ebene = 6) 1470 SendUnicodeChar(0x039E) ; Xi 1471 return 1472 1473 1474 neo_v: 1475 EbeneAktualisieren() 1476 if (Ebene12 and !(CheckDeadUni12("c6",0x1E7F,0x1E7E))) 1477 OutputChar("v","V") 1478 else if (Ebene = 3) 1479 send {blind}_ 1480 else if (Ebene = 4) 1481 if (not(lernModus) or lernModus_neo_Backspace) 1482 Send {blind}{Backspace} 1483 else 1484 { 1485 CompKey := PriorCompKey 1486 DeadKey := PriorDeadKey 1487 } ; leer 1488 else if (Ebene = 6) 1489 SendUnicodeChar(0x2259) ; estimates 1497 } ; leer 1498 else if (Ebene = 6) 1499 SendUnicodeChar(0x2259) ; estimates 1490 1500 return 1491 1501 … … 1493 1503 1494 1504 neo_l: 1495 EbeneAktualisieren()1496 if (Ebene12 and !(CheckDeadUni12("a1",0x013A,0x0139)1497 or CheckDeadUni12("a3",0x013C,0x013B)1498 or CheckDeadUni12("c2",0x013E,0x013D)1499 or CheckDeadUni12("c4",0x0140,0x013F)1500 or CheckDeadUni12("c6",0x1E37,0x1E36)1501 or CheckDeadUni12("t4",0x0142,0x0141)))1502 OutputChar("l","L")1503 else if (Ebene = 3)1504 send {blind}[1505 else if (Ebene = 4)1506 Send {Blind}{Up}1507 else if (Ebene = 5)1508 SendUnicodeChar(0x03BB) ; lambda1509 else if (Ebene = 6)1510 SendUnicodeChar(0x039B) ; Lambda1505 EbeneAktualisieren() 1506 if (Ebene12 and !(CheckDeadUni12("a1",0x013A,0x0139) 1507 or CheckDeadUni12("a3",0x013C,0x013B) 1508 or CheckDeadUni12("c2",0x013E,0x013D) 1509 or CheckDeadUni12("c4",0x0140,0x013F) 1510 or CheckDeadUni12("c6",0x1E37,0x1E36) 1511 or CheckDeadUni12("t4",0x0142,0x0141))) 1512 OutputChar("l","L") 1513 else if (Ebene = 3) 1514 send {blind}[ 1515 else if (Ebene = 4) 1516 Send {Blind}{Up} 1517 else if (Ebene = 5) 1518 SendUnicodeChar(0x03BB) ; lambda 1519 else if (Ebene = 6) 1520 SendUnicodeChar(0x039B) ; Lambda 1511 1521 return 1512 1522 1513 1523 1514 1524 neo_c: 1515 EbeneAktualisieren()1516 if (Ebene12 and !(CheckDeadUni12("a1",0x0107,0x0106)1517 or CheckDeadUni12("a3",0x00E7,0x00E6)1518 or CheckDeadUni12("a4",0x010B,0x010A)1519 or CheckDeadUni12("c1",0x0109,0x0108)1520 or CheckDeadUni12("c2",0x010D,0x010C)1521 or CheckCompAsc12("o","�","�")1522 or CheckCompAsc12("O","�","�")))1523 OutputChar("c","C")1524 else if (Ebene = 3)1525 send {blind}]1526 else if (Ebene = 4)1527 if (not(lernModus) or lernModus_neo_Entf)1528 Send {blind}{Del}1529 else1530 {1531 CompKey := PriorCompKey1532 DeadKey := PriorDeadKey1533 } ; leer1534 else if (Ebene = 5)1535 SendUnicodeChar(0x03C7) ;chi1536 else if (Ebene = 6)1537 SendUnicodeChar(0x2102) ; C (Komplexe Zahlen)1525 EbeneAktualisieren() 1526 if (Ebene12 and !(CheckDeadUni12("a1",0x0107,0x0106) 1527 or CheckDeadUni12("a3",0x00E7,0x00E6) 1528 or CheckDeadUni12("a4",0x010B,0x010A) 1529 or CheckDeadUni12("c1",0x0109,0x0108) 1530 or CheckDeadUni12("c2",0x010D,0x010C) 1531 or CheckCompAsc12("o","�","�") 1532 or CheckCompAsc12("O","�","�"))) 1533 OutputChar("c","C") 1534 else if (Ebene = 3) 1535 send {blind}] 1536 else if (Ebene = 4) 1537 if (not(lernModus) or lernModus_neo_Entf) 1538 Send {blind}{Del} 1539 else 1540 { 1541 CompKey := PriorCompKey 1542 DeadKey := PriorDeadKey 1543 } ; leer 1544 else if (Ebene = 5) 1545 SendUnicodeChar(0x03C7) ;chi 1546 else if (Ebene = 6) 1547 SendUnicodeChar(0x2102) ; C (Komplexe Zahlen) 1538 1548 return 1539 1549 1540 1550 neo_w: 1541 EbeneAktualisieren()1542 if (Ebene12 and !(CheckDeadUni12("c1",0x0175,0x0174)))1543 OutputChar("w","W")1544 else if (Ebene = 3)1545 SendUnicodeChar(0x005E) ; untotes ^ - Unicode-Name: CIRCUMFLEX ACCENT1546 ;send {^}{space} ; Funktioniert nicht unter Java-Programmen1547 else if (Ebene = 4)1548 Send {blind}{Insert}1549 else if (Ebene = 5)1550 SendUnicodeChar(0x03C9) ; omega1551 else if (Ebene = 6)1552 SendUnicodeChar(0x03A9) ; Omega1551 EbeneAktualisieren() 1552 if (Ebene12 and !(CheckDeadUni12("c1",0x0175,0x0174))) 1553 OutputChar("w","W") 1554 else if (Ebene = 3) 1555 SendUnicodeChar(0x005E) ; untotes ^ - Unicode-Name: CIRCUMFLEX ACCENT 1556 ;send {^}{space} ; Funktioniert nicht unter Java-Programmen 1557 else if (Ebene = 4) 1558 Send {blind}{Insert} 1559 else if (Ebene = 5) 1560 SendUnicodeChar(0x03C9) ; omega 1561 else if (Ebene = 6) 1562 SendUnicodeChar(0x03A9) ; Omega 1553 1563 return 1554 1564 1555 1565 neo_k: 1556 EbeneAktualisieren()1557 if (Ebene12 and !(CheckDeadUni12("a3",0x0137,0x0136)1558 or CheckDeadUni12("c6",0x1E33,0x1E32)))1559 OutputChar("k","K")1560 else if (Ebene = 3)1561 send {blind}{!}1562 else if (Ebene = 4)1563 Send �1564 else if (Ebene = 5)1565 SendUnicodeChar(0x03F0) ;kappa symbol (varkappa)1566 else if (Ebene = 6)1567 SendUnicodeChar(0x221A) ; Wurzel1566 EbeneAktualisieren() 1567 if (Ebene12 and !(CheckDeadUni12("a3",0x0137,0x0136) 1568 or CheckDeadUni12("c6",0x1E33,0x1E32))) 1569 OutputChar("k","K") 1570 else if (Ebene = 3) 1571 send {blind}{!} 1572 else if (Ebene = 4) 1573 Send � 1574 else if (Ebene = 5) 1575 SendUnicodeChar(0x03F0) ;kappa symbol (varkappa) 1576 else if (Ebene = 6) 1577 SendUnicodeChar(0x221A) ; Wurzel 1568 1578 return 1569 1579 1570 1580 neo_h: 1571 EbeneAktualisieren()1572 if (Ebene12 and !(CheckDeadUni12("a4",0x1E23,0x1E22)1573 or CheckDeadUni12("c1",0x0125,0x0124)1574 or CheckDeadUni12("c5",0x0127,0x0126)1575 or CheckDeadUni12("c6",0x1E25,0x1E24)))1576 OutputChar("h","H")1577 else if ((Ebene = 3) and !(CheckDeadUni("c5",0x2264))) ; kleiner gleich1578 send {blind}<1579 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2077)1580 or CheckDeadUni("c5",0x2087)))1581 Send {blind}{NumPad7}1582 else if (Ebene = 5)1583 SendUnicodeChar(0x03C8) ;psi1584 else if (Ebene = 6)1585 SendUnicodeChar(0x03A8) ; Psi1581 EbeneAktualisieren() 1582 if (Ebene12 and !(CheckDeadUni12("a4",0x1E23,0x1E22) 1583 or CheckDeadUni12("c1",0x0125,0x0124) 1584 or CheckDeadUni12("c5",0x0127,0x0126) 1585 or CheckDeadUni12("c6",0x1E25,0x1E24))) 1586 OutputChar("h","H") 1587 else if ((Ebene = 3) and !(CheckDeadUni("c5",0x2264))) ; kleiner gleich 1588 send {blind}< 1589 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2077) 1590 or CheckDeadUni("c5",0x2087))) 1591 Send {blind}{NumPad7} 1592 else if (Ebene = 5) 1593 SendUnicodeChar(0x03C8) ;psi 1594 else if (Ebene = 6) 1595 SendUnicodeChar(0x03A8) ; Psi 1586 1596 return 1587 1597 1588 1598 neo_g: 1589 EbeneAktualisieren()1590 if (Ebene12 and !(CheckDeadUni12("a3",0x0123,0x0122)1591 or CheckDeadUni12("a4",0x0121,0x0120)1592 or CheckDeadUni12("c1",0x011D,0x011C)1593 or CheckDeadUni12("c3",0x011F,0x011E)))1594 OutputChar("g","G")1595 else if ((Ebene = 3) and !(CheckDeadUni("c5",0x2265))) ; gr��er gleich1596 send {blind}>1597 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2078)1598 or CheckDeadUni("c5",0x2088)))1599 Send {blind}{NumPad8}1600 else if (Ebene = 5)1601 SendUnicodeChar(0x03B3) ;gamma1602 else if (Ebene = 6)1603 SendUnicodeChar(0x0393) ; Gamma1599 EbeneAktualisieren() 1600 if (Ebene12 and !(CheckDeadUni12("a3",0x0123,0x0122) 1601 or CheckDeadUni12("a4",0x0121,0x0120) 1602 or CheckDeadUni12("c1",0x011D,0x011C) 1603 or CheckDeadUni12("c3",0x011F,0x011E))) 1604 OutputChar("g","G") 1605 else if ((Ebene = 3) and !(CheckDeadUni("c5",0x2265))) ; gr��er gleich 1606 send {blind}> 1607 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2078) 1608 or CheckDeadUni("c5",0x2088))) 1609 Send {blind}{NumPad8} 1610 else if (Ebene = 5) 1611 SendUnicodeChar(0x03B3) ;gamma 1612 else if (Ebene = 6) 1613 SendUnicodeChar(0x0393) ; Gamma 1604 1614 return 1605 1615 1606 1616 neo_f: 1607 EbeneAktualisieren()1608 if (Ebene12 and !(CheckDeadUni12("a4",0x1E1F,0x1E1E)1609 or CheckDeadUni12("t4",0x0192,0x0191)))1610 OutputChar("f","F")1611 else if ((Ebene = 3) and !(CheckDeadUni("a6",0x2257); ring equal to1612 or CheckDeadUni("c1",0x2259); entspricht1613 or CheckDeadUni("c2",0x225A); EQUIANGULAR TO1614 or CheckDeadUni("c5",0x2261); identisch1615 or CheckDeadUni("t1",0x2245); ungef�hr gleich1616 or CheckDeadUni("t4",0x2260))) ; ungleich1617 send {blind}`=1618 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2079)1619 or CheckDeadUni("c5",0x2089)))1620 Send {blind}{NumPad9}1621 else if (Ebene = 5)1622 SendUnicodeChar(0x03C6) ; phi1623 else if (Ebene = 6)1624 SendUnicodeChar(0x03A6) ; Phi1617 EbeneAktualisieren() 1618 if (Ebene12 and !(CheckDeadUni12("a4",0x1E1F,0x1E1E) 1619 or CheckDeadUni12("t4",0x0192,0x0191))) 1620 OutputChar("f","F") 1621 else if ((Ebene = 3) and !(CheckDeadUni("a6",0x2257) ; ring equal to 1622 or CheckDeadUni("c1",0x2259) ; entspricht 1623 or CheckDeadUni("c2",0x225A) ; EQUIANGULAR TO 1624 or CheckDeadUni("c5",0x2261) ; identisch 1625 or CheckDeadUni("t1",0x2245) ; ungef�hr gleich 1626 or CheckDeadUni("t4",0x2260))) ; ungleich 1627 send {blind}`= 1628 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2079) 1629 or CheckDeadUni("c5",0x2089))) 1630 Send {blind}{NumPad9} 1631 else if (Ebene = 5) 1632 SendUnicodeChar(0x03C6) ; phi 1633 else if (Ebene = 6) 1634 SendUnicodeChar(0x03A6) ; Phi 1625 1635 return 1626 1636 … … 1641 1651 1642 1652 neo_sz: 1643 EbeneAktualisieren() 1644 if (Ebene = 1) 1645 if (GetKeyState("CapsLock","T")) 1646 SendUnicodeChar(0x1E9E) ; verssal-� 1647 else if (LangSTastatur = 1) 1648 send {blind}s 1653 EbeneAktualisieren() 1654 if (Ebene = 1) 1655 if (GetKeyState("CapsLock","T")) 1656 SendUnicodeChar(0x1E9E) ; versal-� 1657 else if (LangSTastatur = 1) 1658 send {blind}s 1659 else 1660 send � 1661 else if (Ebene = 2) 1662 if (GetKeyState("CapsLock","T")) 1663 if (LangSTastatur = 1) 1664 send {blind}s 1649 1665 else 1650 send � 1651 else if (Ebene = 2) 1652 if (GetKeyState("CapsLock","T")) 1653 if (LangSTastatur = 1) 1666 send � 1667 else 1668 SendUnicodeChar(0x1E9E) ; versal-� 1669 else if (Ebene = 3) 1670 if (LangSTastatur = 1) 1671 send � 1672 else 1673 SendUnicodeChar(0x017F) ; langes s 1674 else if (Ebene = 5) 1675 SendUnicodeChar(0x03C2) ; varsigma 1676 else if (Ebene = 6) 1677 SendUnicodeChar(0x2218) ; Verkn�pfungsoperator 1678 return 1679 1680 1681 neo_tot3: 1682 EbeneAktualisieren() 1683 if (Ebene = 1) 1684 { 1685 deadUni(0x02DC) ;Tilde, tot 1686 DeadKey := "t1" 1687 } 1688 else if (Ebene = 2) 1689 { 1690 deadUni(0x00AF) ; Macron, tot 1691 DeadKey := "t2" 1692 } 1693 else if (Ebene = 3) 1694 { 1695 deadUni(0x00A8) ; Di�rese 1696 DeadKey := "t3" 1697 } 1698 else if (Ebene = 4) 1699 { 1700 deadUni(0x002F) ; Schr�gstrich, tot 1701 DeadKey := "t4" 1702 } 1703 else if (Ebene = 5) 1704 { 1705 deadUni(0x02DD) ;Doppelakut 1706 DeadKey := "t5" 1707 } 1708 else if (Ebene = 6) 1709 { 1710 deadUni(0x02CF) ; Komma drunter, tot 1711 DeadKey := "t6" 1712 } 1713 1714 return 1715 1716 1717 /* 1718 1719 Reihe 3 1720 1721 */ 1722 1723 neo_u: 1724 EbeneAktualisieren() 1725 if (Ebene12 and !(CheckDeadUni12("a1",0x00FA,0x00DA) 1726 or CheckDeadUni12("a2",0x00F9,0x00D9) 1727 or CheckDeadUni12("a5",0x0173,0x0172) 1728 or CheckDeadUni12("a6",0x016F,0x016E) 1729 or CheckDeadUni12("c1",0x00FB,0x00DB) 1730 or CheckDeadUni12("c2",0x01D4,0x01D3) 1731 or CheckDeadUni12("c3",0x016D,0x016C) 1732 or CheckDeadUni12("t1",0x0169,0x0168) 1733 or CheckDeadUni12("t2",0x016B,0x016A) 1734 or CheckDeadAsc12("t3","�","�") 1735 or CheckDeadUni12("t5",0x0171,0x0170))) 1736 OutputChar("u","U") 1737 else if (Ebene = 3) 1738 send {blind}\ 1739 else if (Ebene = 4) 1740 Send {blind}{Home} 1741 else if (Ebene = 5) 1742 { 1743 CompKey := PriorCompKey 1744 DeadKey := PriorDeadKey 1745 } ; leer 1746 else if (Ebene = 6) 1747 SendUnicodeChar(0x222E) ; contour integral 1748 return 1749 1750 neo_i: 1751 EbeneAktualisieren() 1752 if (Ebene12 and !(CheckDeadUni12("a1",0x00ED,0x00CD) 1753 or CheckDeadUni12("a2",0x00EC,0x00CC) 1754 or CheckDeadUni12("a4",0x012F,0x012E) 1755 or CheckDeadUni12("a5",0x0131,0x0130) 1756 or CheckDeadUni12("c1",0x00EE,0x00CE) 1757 or CheckDeadUni12("c2",0x01D0,0x01CF) 1758 or CheckDeadUni12("c3",0x012D,0x012C) 1759 or CheckDeadUni12("t1",0x0129,0x0128) 1760 or CheckDeadUni12("t2",0x012B,0x012A) 1761 or CheckDeadAsc12("t3","�","�"))) 1762 OutputChar("i","I") 1763 else if (Ebene = 3) 1764 send {blind}`/ 1765 else if (Ebene = 4) 1766 Send {Blind}{Left} 1767 else if (Ebene = 5 ) 1768 SendUnicodeChar(0x03B9) ; iota 1769 else if (Ebene = 6) 1770 SendUnicodeChar(0x222B) ; integral 1771 return 1772 1773 neo_a: 1774 EbeneAktualisieren() 1775 if (Ebene12 and !(CheckDeadUni12("a1",0x00E1,0x00C1) 1776 or CheckDeadUni12("a2",0x00E0,0x00C0) 1777 or CheckDeadUni12("a5",0x0105,0x0104) 1778 or CheckDeadAsc12("a6","�","�") 1779 or CheckDeadUni12("c1",0x00E2,0x00C2) 1780 or CheckDeadUni12("c2",0x01CE,0x01CD) 1781 or CheckDeadUni12("c3",0x0103,0x0102) 1782 or CheckDeadUni12("t1",0x00E3,0x00C3) 1783 or CheckDeadUni12("t2",0x0101,0x0100) 1784 or CheckDeadAsc12("t3","�","�"))) 1785 OutputChar("a","A") 1786 else if (Ebene = 3) 1787 send {blind}{{} 1788 else if (Ebene = 4) 1789 Send {Blind}{Down} 1790 else if (Ebene = 5) 1791 SendUnicodeChar(0x03B1) ;alpha 1792 else if (Ebene = 6) 1793 SendUnicodeChar(0x2200) ;f�r alle 1794 return 1795 1796 neo_e: 1797 EbeneAktualisieren() 1798 if (Ebene12 and !(CheckDeadUni12("a1",0x00E9,0x00C9) 1799 or CheckDeadUni12("a2",0x00E8,0x00C8) 1800 or CheckDeadUni12("a4",0x0117,0x0116) 1801 or CheckDeadUni12("a5",0x0119,0x0118) 1802 or CheckDeadUni12("c1",0x00EA,0x00CA) 1803 or CheckDeadUni12("c2",0x011B,0x011A) 1804 or CheckDeadUni12("c3",0x0115,0x0114) 1805 or CheckDeadUni12("t2",0x0113,0x0112) 1806 or CheckDeadAsc12("t3","�","�") 1807 or CheckCompAsc12("a","�","�") 1808 or CheckCompAsc12("A","�","�") 1809 or CheckCompAsc12("o","�","�") 1810 or CheckCompAsc12("O","�","�"))) 1811 OutputChar("e","E") 1812 else if (Ebene = 3) ; { 1813 send {blind}{}} 1814 else if (Ebene = 4) 1815 Send {Blind}{Right} 1816 else if (Ebene = 5) 1817 SendUnicodeChar(0x03B5) ;epsilon 1818 else if (Ebene = 6) 1819 SendUnicodeChar(0x2203) ;es existiert 1820 return 1821 1822 neo_o: 1823 EbeneAktualisieren() 1824 if (Ebene12 and !(CheckDeadUni12("a1",0x00F3,0x00D3) 1825 or CheckDeadUni12("a2",0x00F2,0x00D2) 1826 or CheckDeadUni12("a5",0x01EB,0x01EA) 1827 or CheckDeadUni12("c1",0x00F4,0x00D4) 1828 or CheckDeadUni12("c2",0x01D2,0x01D1) 1829 or CheckDeadUni12("c3",0x014F,0x014E) 1830 or CheckDeadUni12("t1",0x00F5,0x00D5) 1831 or CheckDeadUni12("t2",0x014D,0x014C) 1832 or CheckDeadAsc12("t3","�","�") 1833 or CheckDeadUni12("t4",0x00F8,0x00D8) 1834 or CheckDeadUni12("t5",0x0151,0x0150))) 1835 OutputChar("o","O") 1836 else if (Ebene = 3) 1837 send {blind}* 1838 else if (Ebene = 4) 1839 Send {blind}{End} 1840 else if (Ebene = 5) 1841 SendUnicodeChar(0x03BF) ; omicron 1842 else if (Ebene = 6) 1843 SendUnicodeChar(0x2208) ; element of 1844 return 1845 1846 neo_s: 1847 EbeneAktualisieren() 1848 if (Ebene12 and !(CheckDeadUni12("a1",0x015B,0x015A) 1849 or CheckDeadUni12("a3",0x015F,0x015E) 1850 or CheckDeadUni12("a4",0x1E61,0x1E60) 1851 or CheckDeadUni12("c1",0x015D,0x015C) 1852 or CheckDeadUni12("c2",0x0161,0x0160) 1853 or CheckDeadUni12("c6",0x1E63,0x1A62))) 1854 if (Ebene = 1) 1855 { 1856 if LangSTastatur 1857 if (GetKeyState("CapsLock","T")) 1654 1858 send {blind}s 1655 else 1656 send � 1657 else 1658 SendUnicodeChar(0x1E9E) ; versal-� 1659 else if (Ebene = 3) 1660 if (LangSTastatur = 1) 1661 send � 1662 else 1663 SendUnicodeChar(0x017F) ; langes s 1664 else if (Ebene = 5) 1665 SendUnicodeChar(0x03C2) ; varsigma 1666 else if (Ebene = 6) 1667 SendUnicodeChar(0x2218) ; Verkn�pfungsoperator 1668 return 1669 1670 1671 neo_tot3: 1672 EbeneAktualisieren() 1673 if (Ebene = 1) 1674 { 1675 deadUni(0x02DC) ; tilde, tot 1676 DeadKey := "t1" 1677 } 1678 else if (Ebene = 2) 1679 { 1680 deadUni(0x00AF) ; macron, tot 1681 DeadKey := "t2" 1682 } 1683 else if (Ebene = 3) 1684 { 1685 deadUni(0x00A8) ; diaerese 1686 DeadKey := "t3" 1687 } 1688 else if (Ebene = 4) 1689 { 1690 deadUni(0x002F) ; Schr�gstrich, tot 1691 DeadKey := "t4" 1692 } 1693 else if (Ebene = 5) 1694 { 1695 deadUni(0x02DD) ;doppelakut 1696 DeadKey := "t5" 1697 } 1698 else if (Ebene = 6) 1699 { 1700 deadUni(0x02CF) ; komma drunter, tot 1701 DeadKey := "t6" 1702 } 1703 1704 return 1705 1706 1707 /* 1708 ------------------------------------------------------ 1709 Reihe 3 1710 ------------------------------------------------------ 1711 */ 1712 1713 neo_u: 1714 EbeneAktualisieren() 1715 if (Ebene12 and !(CheckDeadUni12("a1",0x00FA,0x00DA) 1716 or CheckDeadUni12("a2",0x00F9,0x00D9) 1717 or CheckDeadUni12("a5",0x0173,0x0172) 1718 or CheckDeadUni12("a6",0x016F,0x016E) 1719 or CheckDeadUni12("c1",0x00FB,0x00DB) 1720 or CheckDeadUni12("c2",0x01D4,0x01D3) 1721 or CheckDeadUni12("c3",0x016D,0x016C) 1722 or CheckDeadUni12("t1",0x0169,0x0168) 1723 or CheckDeadUni12("t2",0x016B,0x016A) 1724 or CheckDeadAsc12("t3","�","�") 1725 or CheckDeadUni12("t5",0x0171,0x0170))) 1726 OutputChar("u","U") 1727 else if (Ebene = 3) 1728 send {blind}\ 1729 else if (Ebene = 4) 1730 Send {blind}{Home} 1731 else if (Ebene = 5) 1732 { 1733 CompKey := PriorCompKey 1734 DeadKey := PriorDeadKey 1735 } ; leer 1736 else if (Ebene = 6) 1737 SendUnicodeChar(0x222E) ; contour integral 1738 return 1739 1740 neo_i: 1741 EbeneAktualisieren() 1742 if (Ebene12 and !(CheckDeadUni12("a1",0x00ED,0x00CD) 1743 or CheckDeadUni12("a2",0x00EC,0x00CC) 1744 or CheckDeadUni12("a4",0x012F,0x012E) 1745 or CheckDeadUni12("a5",0x0131,0x0130) 1746 or CheckDeadUni12("c1",0x00EE,0x00CE) 1747 or CheckDeadUni12("c2",0x01D0,0x01CF) 1748 or CheckDeadUni12("c3",0x012D,0x012C) 1749 or CheckDeadUni12("t1",0x0129,0x0128) 1750 or CheckDeadUni12("t2",0x012B,0x012A) 1751 or CheckDeadAsc12("t3","�","�"))) 1752 OutputChar("i","I") 1753 else if (Ebene = 3) 1754 send {blind}`/ 1755 else if (Ebene = 4) 1756 Send {Blind}{Left} 1757 else if (Ebene = 5 ) 1758 SendUnicodeChar(0x03B9) ; iota 1759 else if (Ebene = 6) 1760 SendUnicodeChar(0x222B) ; integral 1761 return 1762 1763 neo_a: 1764 EbeneAktualisieren() 1765 if (Ebene12 and !(CheckDeadUni12("a1",0x00E1,0x00C1) 1766 or CheckDeadUni12("a2",0x00E0,0x00C0) 1767 or CheckDeadUni12("a5",0x0105,0x0104) 1768 or CheckDeadAsc12("a6","�","�") 1769 or CheckDeadUni12("c1",0x00E2,0x00C2) 1770 or CheckDeadUni12("c2",0x01CE,0x01CD) 1771 or CheckDeadUni12("c3",0x0103,0x0102) 1772 or CheckDeadUni12("t1",0x00E3,0x00C3) 1773 or CheckDeadUni12("t2",0x0101,0x0100) 1774 or CheckDeadAsc12("t3","�","�"))) 1775 OutputChar("a","A") 1776 else if (Ebene = 3) 1777 send {blind}{{} ; } 1778 else if (Ebene = 4) 1779 Send {Blind}{Down} 1780 else if (Ebene = 5) 1781 SendUnicodeChar(0x03B1) ;alpha 1782 else if (Ebene = 6) 1783 SendUnicodeChar(0x2200) ;fuer alle 1784 return 1785 1786 neo_e: 1787 EbeneAktualisieren() 1788 if (Ebene12 and !(CheckDeadUni12("a1",0x00E9,0x00C9) 1789 or CheckDeadUni12("a2",0x00E8,0x00C8) 1790 or CheckDeadUni12("a4",0x0117,0x0116) 1791 or CheckDeadUni12("a5",0x0119,0x0118) 1792 or CheckDeadUni12("c1",0x00EA,0x00CA) 1793 or CheckDeadUni12("c2",0x011B,0x011A) 1794 or CheckDeadUni12("c3",0x0115,0x0114) 1795 or CheckDeadUni12("t2",0x0113,0x0112) 1796 or CheckDeadAsc12("t3","�","�") 1797 or CheckCompAsc12("a","�","�") 1798 or CheckCompAsc12("A","�","�") 1799 or CheckCompAsc12("o","�","�") 1800 or CheckCompAsc12("O","�","�"))) 1801 OutputChar("e","E") 1802 else if (Ebene = 3) ; { 1803 send {blind}{}} 1804 else if (Ebene = 4) 1805 Send {Blind}{Right} 1806 else if (Ebene = 5) 1807 SendUnicodeChar(0x03B5) ;epsilon 1808 else if (Ebene = 6) 1809 SendUnicodeChar(0x2203) ;es existiert 1810 return 1811 1812 neo_o: 1813 EbeneAktualisieren() 1814 if (Ebene12 and !(CheckDeadUni12("a1",0x00F3,0x00D3) 1815 or CheckDeadUni12("a2",0x00F2,0x00D2) 1816 or CheckDeadUni12("a5",0x01EB,0x01EA) 1817 or CheckDeadUni12("c1",0x00F4,0x00D4) 1818 or CheckDeadUni12("c2",0x01D2,0x01D1) 1819 or CheckDeadUni12("c3",0x014F,0x014E) 1820 or CheckDeadUni12("t1",0x00F5,0x00D5) 1821 or CheckDeadUni12("t2",0x014D,0x014C) 1822 or CheckDeadAsc12("t3","�","�") 1823 or CheckDeadUni12("t4",0x00F8,0x00D8) 1824 or CheckDeadUni12("t5",0x0151,0x0150))) 1825 OutputChar("o","O") 1826 else if (Ebene = 3) 1827 send {blind}* 1828 else if (Ebene = 4) 1829 Send {blind}{End} 1830 else if (Ebene = 5) 1831 SendUnicodeChar(0x03BF) ; omicron 1832 else if (Ebene = 6) 1833 SendUnicodeChar(0x2208) ; element of 1834 return 1835 1836 neo_s: 1837 EbeneAktualisieren() 1838 if (Ebene12 and !(CheckDeadUni12("a1",0x015B,0x015A) 1839 or CheckDeadUni12("a3",0x015F,0x015E) 1840 or CheckDeadUni12("a4",0x1E61,0x1E60) 1841 or CheckDeadUni12("c1",0x015D,0x015C) 1842 or CheckDeadUni12("c2",0x0161,0x0160) 1843 or CheckDeadUni12("c6",0x1E63,0x1A62))) 1844 if (LangSTastatur = 1) 1845 if (GetKeyState("CapsLock","T") xor (Ebene = 1)) 1846 SendUnicodeChar(0x017F) ; langes s 1847 else 1848 OutputChar("s","S") 1849 else 1850 OutputChar("s","S") 1851 else if (Ebene = 3) 1852 send {blind}? 1853 else if (Ebene = 4) 1854 Send � 1855 else if (Ebene = 5) 1856 SendUnicodeChar(0x03C3) ;sigma 1857 else if (Ebene = 6) 1858 SendUnicodeChar(0x03A3) ; Sigma 1859 else 1860 SendUnicodeChar(0x017F) ;langes S 1861 else 1862 send {blind}s 1863 if (PriorDeadKey = "comp") 1864 CompKey := "s" 1865 } 1866 else if (Ebene = 2) 1867 { 1868 if LangSTastatur 1869 if (GetKeyState("CapsLock","T")) 1870 SendUnicodeChar(0x017F) ;langes S 1871 else 1872 send {blind}S 1873 else 1874 send {blind}S 1875 if (PriorDeadKey = "comp") 1876 CompKey := "S" 1877 } 1878 else if (Ebene = 3) 1879 send {blind}? 1880 else if (Ebene = 4) 1881 Send � 1882 else if (Ebene = 5) 1883 SendUnicodeChar(0x03C3) ;sigma 1884 else if (Ebene = 6) 1885 SendUnicodeChar(0x03A3) ; Sigma 1859 1886 return 1860 1887 1861 1888 neo_n: 1862 EbeneAktualisieren()1863 if (Ebene12 and !(CheckDeadUni12("a1",0x0144,0x0143)1864 or CheckDeadUni12("a3",0x0146,0x0145)1865 or CheckDeadUni12("a4",0x1E45,0x1E44)1866 or CheckDeadUni12("c2",0x0148,0x0147)1867 or CheckDeadUni12("t1",0x00F1,0x00D1)))1868 OutputChar("n","N")1869 else if (Ebene = 3)1870 send {blind}(; )1871 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2074)1872 or CheckDeadUni("c5",0x2084)))1873 Send {blind}{NumPad4}1874 else if (Ebene = 5)1875 SendUnicodeChar(0x03BD) ; nu1876 else if (Ebene = 6)1877 SendUnicodeChar(0x2115) ; N (nat�rliche Zahlen)1889 EbeneAktualisieren() 1890 if (Ebene12 and !(CheckDeadUni12("a1",0x0144,0x0143) 1891 or CheckDeadUni12("a3",0x0146,0x0145) 1892 or CheckDeadUni12("a4",0x1E45,0x1E44) 1893 or CheckDeadUni12("c2",0x0148,0x0147) 1894 or CheckDeadUni12("t1",0x00F1,0x00D1))) 1895 OutputChar("n","N") 1896 else if (Ebene = 3) 1897 send {blind}( ; ) 1898 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2074) 1899 or CheckDeadUni("c5",0x2084))) 1900 Send {blind}{NumPad4} 1901 else if (Ebene = 5) 1902 SendUnicodeChar(0x03BD) ; nu 1903 else if (Ebene = 6) 1904 SendUnicodeChar(0x2115) ; N (nat�rliche Zahlen) 1878 1905 return 1879 1906 1880 1907 neo_r: 1881 EbeneAktualisieren()1882 if (Ebene12 and !(CheckDeadUni12("a1",0x0155,0x0154)1883 or CheckDeadUni12("a3",0x0157,0x0156)1884 or CheckDeadUni12("a4",0x0E59,0x0E58)1885 or CheckDeadUni12("c2",0x0159,0x0158)1886 or CheckDeadUni12("c6",0x1E5B,0x1E5A)1887 or CheckCompAsc12("o","�","�")1888 or CheckCompAsc12("O","�","�")))1889 OutputChar("r","R")1890 else if (Ebene = 3);(1891 send {blind})1892 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2075)1893 or CheckDeadUni("c5",0x2085)))1894 Send {blind}{NumPad5}1895 else if (Ebene = 5)1896 SendUnicodeChar(0x03F1) ; rho symbol (varrho)1897 else if (Ebene = 6)1898 SendUnicodeChar(0x211D) ; R (reelle Zahlen)1908 EbeneAktualisieren() 1909 if (Ebene12 and !(CheckDeadUni12("a1",0x0155,0x0154) 1910 or CheckDeadUni12("a3",0x0157,0x0156) 1911 or CheckDeadUni12("a4",0x0E59,0x0E58) 1912 or CheckDeadUni12("c2",0x0159,0x0158) 1913 or CheckDeadUni12("c6",0x1E5B,0x1E5A) 1914 or CheckCompAsc12("o","�","�") 1915 or CheckCompAsc12("O","�","�"))) 1916 OutputChar("r","R") 1917 else if (Ebene = 3) ;( 1918 send {blind}) 1919 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2075) 1920 or CheckDeadUni("c5",0x2085))) 1921 Send {blind}{NumPad5} 1922 else if (Ebene = 5) 1923 SendUnicodeChar(0x03F1) ; rho symbol (varrho) 1924 else if (Ebene = 6) 1925 SendUnicodeChar(0x211D) ; R (reelle Zahlen) 1899 1926 return 1900 1927 1901 1928 neo_t: 1902 EbeneAktualisieren()1903 if (Ebene12 and !(CheckDeadUni12("a3",0x0163,0x0162)1904 or CheckDeadUni12("a4",0x1E6B,0x1E6A)1905 or CheckDeadUni12("c2",0x0165,0x0164)1906 or CheckDeadUni12("c5",0x0167,0x0166)1907 or CheckDeadUni12("c6",0x1E6D,0x1E6C)))1908 OutputChar("t","T")1909 else if (Ebene = 3)1910 send {blind}- ; Bis1911 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2076)1912 or CheckDeadUni("c5",0x2086)))1913 Send {blind}{NumPad6}1914 else if (Ebene = 5)1915 SendUnicodeChar(0x03C4) ; tau1916 else if (Ebene = 6)1917 SendUnicodeChar(0x2202 ) ; partielle Ableitung1929 EbeneAktualisieren() 1930 if (Ebene12 and !(CheckDeadUni12("a3",0x0163,0x0162) 1931 or CheckDeadUni12("a4",0x1E6B,0x1E6A) 1932 or CheckDeadUni12("c2",0x0165,0x0164) 1933 or CheckDeadUni12("c5",0x0167,0x0166) 1934 or CheckDeadUni12("c6",0x1E6D,0x1E6C))) 1935 OutputChar("t","T") 1936 else if (Ebene = 3) 1937 send {blind}- ; Bis 1938 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x2076) 1939 or CheckDeadUni("c5",0x2086))) 1940 Send {blind}{NumPad6} 1941 else if (Ebene = 5) 1942 SendUnicodeChar(0x03C4) ; tau 1943 else if (Ebene = 6) 1944 SendUnicodeChar(0x2202 ) ; partielle Ableitung 1918 1945 return 1919 1946 … … 1937 1964 1938 1965 neo_y: 1939 EbeneAktualisieren()1940 if (Ebene12 and !(CheckDeadUni12("a1",0x00FD,0x00DD)1941 or CheckDeadUni12("c1",0x0177,0x0176)1942 or CheckDeadAsc12("t3","�",�)))1943 OutputChar("y","Y")1944 else if (Ebene = 3)1945 send {blind}@1946 else if (Ebene = 4)1947 Send {blind}.1948 else if (Ebene = 5)1949 SendUnicodeChar(0x03C5) ; upsilon1950 else if (Ebene = 6)1951 SendUnicodeChar(0x2207) ; nabla1966 EbeneAktualisieren() 1967 if (Ebene12 and !(CheckDeadUni12("a1",0x00FD,0x00DD) 1968 or CheckDeadUni12("c1",0x0177,0x0176) 1969 or CheckDeadAsc12("t3","�",�))) 1970 OutputChar("y","Y") 1971 else if (Ebene = 3) 1972 send {blind}@ 1973 else if (Ebene = 4) 1974 Send {blind}. 1975 else if (Ebene = 5) 1976 SendUnicodeChar(0x03C5) ; upsilon 1977 else if (Ebene = 6) 1978 SendUnicodeChar(0x2207) ; nabla 1952 1979 return 1953 1980 1954 1981 /* 1955 ------------------------------------------------------ 1956 Reihe 41957 ------------------------------------------------------ 1982 1983 Reihe 4 1984 1958 1985 */ 1959 1986 1960 1987 neo_�: 1961 EbeneAktualisieren()1962 if (Ebene12 and !(CheckDeadUni12("a1",0x01D8,0x01D7)1963 or CheckDeadUni12("a2",0x01DC,0x01DB)1964 or CheckDeadUni12("c2",0x01DA,0x01D9)1965 or CheckDeadUni12("t2",0x01D6,0x01D5)))1966 OutputChar("�","�")1967 else if (Ebene = 3)1968 send {blind}{#}1969 else if (Ebene = 4)1970 Send {blind}{Esc}1971 else if (Ebene = 5)1972 {1973 DeadKey := PriorDeadKey1974 CompKey := PriorCompKey1975 } ; leer1976 else if (Ebene = 6)1977 SendUnicodeChar(0x221D) ; proportional1988 EbeneAktualisieren() 1989 if (Ebene12 and !(CheckDeadUni12("a1",0x01D8,0x01D7) 1990 or CheckDeadUni12("a2",0x01DC,0x01DB) 1991 or CheckDeadUni12("c2",0x01DA,0x01D9) 1992 or CheckDeadUni12("t2",0x01D6,0x01D5))) 1993 OutputChar("�","�") 1994 else if (Ebene = 3) 1995 send {#} 1996 else if (Ebene = 4) 1997 Send {blind}{Esc} 1998 else if (Ebene = 5) 1999 { 2000 DeadKey := PriorDeadKey 2001 CompKey := PriorCompKey 2002 } ; leer 2003 else if (Ebene = 6) 2004 SendUnicodeChar(0x221D) ; proportional 1978 2005 return 1979 2006 1980 2007 neo_�: 1981 EbeneAktualisieren()1982 if (Ebene12 and !(CheckDeadUni12("t2",0x022B,0x022A)))1983 OutputChar("�","�")1984 else if (Ebene = 3)1985 send {blind}$1986 else if (Ebene = 4)1987 send {blind}{Tab}1988 else if (Ebene = 5)1989 {1990 DeadKey := PriorDeadKey1991 CompKey := PriorCompKey1992 } ; leer1993 else if (Ebene = 6)1994 SendUnicodeChar(0x2111) ; Fraktur I2008 EbeneAktualisieren() 2009 if (Ebene12 and !(CheckDeadUni12("t2",0x022B,0x022A))) 2010 OutputChar("�","�") 2011 else if (Ebene = 3) 2012 send {blind}$ 2013 else if (Ebene = 4) 2014 send {blind}{Tab} 2015 else if (Ebene = 5) 2016 { 2017 DeadKey := PriorDeadKey 2018 CompKey := PriorCompKey 2019 } ; leer 2020 else if (Ebene = 6) 2021 SendUnicodeChar(0x2111) ; Fraktur I 1995 2022 return 1996 2023 1997 2024 neo_�: 1998 EbeneAktualisieren()1999 if (Ebene12 and !(CheckDeadUni12("t2",0x01DF,0x01DE)))2000 OutputChar("�","�")2001 else if (Ebene = 3)2002 send {blind}|2003 else if (Ebene = 4)2004 Send {blind}{PgDn}; Next2005 else if (Ebene = 5)2006 SendUnicodeChar(0x03B7) ; eta2007 else if (Ebene = 6)2008 SendUnicodeChar(0x211C) ; altes R2025 EbeneAktualisieren() 2026 if (Ebene12 and !(CheckDeadUni12("t2",0x01DF,0x01DE))) 2027 OutputChar("�","�") 2028 else if (Ebene = 3) 2029 send {blind}| 2030 else if (Ebene = 4) 2031 Send {blind}{PgDn} ; Next 2032 else if (Ebene = 5) 2033 SendUnicodeChar(0x03B7) ; eta 2034 else if (Ebene = 6) 2035 SendUnicodeChar(0x211C) ; altes R 2009 2036 return 2010 2037 2011 2038 neo_p: 2012 EbeneAktualisieren()2013 if (Ebene12 and !(CheckDeadUni12("a4",0x1E57,0x1E56)))2014 OutputChar("p","P")2015 else if ((Ebene = 3) and !(CheckDeadUni("t1",0x2248)))2016 send {blind}~2017 else if (Ebene = 4)2018 Send {blind}{Enter}2019 else if (Ebene = 5)2020 SendUnicodeChar(0x03C0) ;pi2021 else if (Ebene = 6)2022 SendUnicodeChar(0x03A0) ; Pi2039 EbeneAktualisieren() 2040 if (Ebene12 and !(CheckDeadUni12("a4",0x1E57,0x1E56))) 2041 OutputChar("p","P") 2042 else if ((Ebene = 3) and !(CheckDeadUni("t1",0x2248))) 2043 send {blind}~ 2044 else if (Ebene = 4) 2045 Send {blind}{Enter} 2046 else if (Ebene = 5) 2047 SendUnicodeChar(0x03C0) ;pi 2048 else if (Ebene = 6) 2049 SendUnicodeChar(0x03A0) ; Pi 2023 2050 return 2024 2051 2025 2052 neo_z: 2026 EbeneAktualisieren()2027 if (Ebene12 and !(CheckDeadUni12("a1",0x017A,0x0179)2028 or CheckDeadUni12("a4",0x017C,0x017B)2029 or CheckDeadUni12("c2",0x017E,0x017D)2030 or CheckDeadUni12("c6",0x1E93,0x1E92)))2031 OutputChar("z","Z")2032 else if (Ebene = 3)2033 send ``{space} ; untot2034 else if (Ebene = 4)2035 {2036 DeadKey := PriorDeadKey2037 CompKey := PriorCompKey2038 } ; leer2039 else if (Ebene = 5)2040 SendUnicodeChar(0x03B6) ;zeta2041 else if (Ebene = 6)2042 SendUnicodeChar(0x2124) ; Z (ganze Zahlen)2053 EbeneAktualisieren() 2054 if (Ebene12 and !(CheckDeadUni12("a1",0x017A,0x0179) 2055 or CheckDeadUni12("a4",0x017C,0x017B) 2056 or CheckDeadUni12("c2",0x017E,0x017D) 2057 or CheckDeadUni12("c6",0x1E93,0x1E92))) 2058 OutputChar("z","Z") 2059 else if (Ebene = 3) 2060 send ``{space} ; untot 2061 else if (Ebene = 4) 2062 { 2063 DeadKey := PriorDeadKey 2064 CompKey := PriorCompKey 2065 } ; leer 2066 else if (Ebene = 5) 2067 SendUnicodeChar(0x03B6) ;zeta 2068 else if (Ebene = 6) 2069 SendUnicodeChar(0x2124) ; Z (ganze Zahlen) 2043 2070 return 2044 2071 2045 2072 neo_b: 2046 EbeneAktualisieren()2047 if (Ebene12 and !(CheckDeadUni12("a4",0x1E03,0x1E02)))2048 OutputChar("b","B")2049 else if (Ebene = 3)2050 send {blind}{+}2051 else if (Ebene = 4)2052 send {blind}:2053 else if (Ebene = 5)2054 SendUnicodeChar(0x03B2) ; beta2055 else if (Ebene = 6)2056 SendUnicodeChar(0x21D2) ; Doppel-Pfeil rechts2073 EbeneAktualisieren() 2074 if (Ebene12 and !(CheckDeadUni12("a4",0x1E03,0x1E02))) 2075 OutputChar("b","B") 2076 else if (Ebene = 3) 2077 send {blind}{+} 2078 else if (Ebene = 4) 2079 send {blind}: 2080 else if (Ebene = 5) 2081 SendUnicodeChar(0x03B2) ; beta 2082 else if (Ebene = 6) 2083 SendUnicodeChar(0x21D2) ; Doppel-Pfeil rechts 2057 2084 return 2058 2085 2059 2086 neo_m: 2060 EbeneAktualisieren()2061 if (Ebene12 and !(CheckDeadUni12("a4",0x1E41,0x1E40)2062 or CheckDeadUni12("c6",0x1E43,0x1E42)2063 or CheckCompUni12("t",0x2122,0x2122); TM2064 or CheckCompUni12("T",0x2122,0x2122); TM2065 or CheckCompUni12("s",0x2120,0x2120); SM2066 or CheckCompUni12("S",0x2120,0x2120))); SM2067 2068 OutputChar("m","M")2069 else if (Ebene = 3)2070 send {blind}`%2071 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x00B9)2072 or CheckDeadUni("c5",0x2081)))2073 Send {blind}{NumPad1}2074 else if (Ebene = 5)2075 SendUnicodeChar(0x03BC) ; griechisch mu, micro w�re 0x00B52076 else if (Ebene = 6)2077 SendUnicodeChar(0x21D4) ; doppelter Doppelpfeil (genau dann wenn)2087 EbeneAktualisieren() 2088 if (Ebene12 and !(CheckDeadUni12("a4",0x1E41,0x1E40) 2089 or CheckDeadUni12("c6",0x1E43,0x1E42) 2090 or CheckCompUni12("t",0x2122,0x2122) ; TM 2091 or CheckCompUni12("T",0x2122,0x2122) ; TM 2092 or CheckCompUni12("s",0x2120,0x2120) ; SM 2093 or CheckCompUni12("S",0x2120,0x2120))) ; SM 2094 2095 OutputChar("m","M") 2096 else if (Ebene = 3) 2097 send {blind}`% 2098 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x00B9) 2099 or CheckDeadUni("c5",0x2081))) 2100 Send {blind}{NumPad1} 2101 else if (Ebene = 5) 2102 SendUnicodeChar(0x03BC) ; griechisch mu, micro w�re 0x00B5 2103 else if (Ebene = 6) 2104 SendUnicodeChar(0x21D4) ; doppelter Doppelpfeil (genau dann wenn) 2078 2105 return 2079 2106 2080 2107 neo_komma: 2081 EbeneAktualisieren() 2082 if (Ebene = 1) 2083 if (GetKeyState("CapsLock","T")) 2084 send {blind}{Shift down},{Shift up} 2108 EbeneAktualisieren() 2109 if (Ebene = 1) 2110 if (GetKeyState("CapsLock","T")) 2111 send {blind}{Shift down},{Shift up} 2112 else 2113 send {blind}, 2114 else if (Ebene = 2) 2115 SendUnicodeChar(0x22EE) ; vertikale ellipse 2116 else if (Ebene = 3) 2117 send {blind}" 2118 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x00B2) 2119 or CheckDeadUni("c5",0x2082))) 2120 Send {blind}{NumPad2} 2121 else if (Ebene = 5) 2122 SendUnicodeChar(0x03C1) ; rho 2123 else if (Ebene = 6) 2124 SendUnicodeChar(0x21D0) ; Doppelpfeil links 2125 return 2126 2127 neo_punkt: 2128 EbeneAktualisieren() 2129 if (Ebene = 1) 2130 if (GetKeyState("CapsLock","T")) 2131 send {blind}{Shift down}.{Shift up} 2132 else 2133 &nb
