Changeset 746 for windows/autohotkey/neo20.ahk
- Timestamp:
- 08/12/08 02:03:21 (5 years ago)
- Files:
-
- 1 modified
-
windows/autohotkey/neo20.ahk (modified) (38 diffs)
Legend:
- Unmodified
- Added
- Removed
-
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 send {blind}. 2134 else if (Ebene = 2) 2135 SendUnicodeChar(0x2026) ; ellipse 2136 else if (Ebene = 3) 2137 send {blind}' 2138 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x00B3) 2139 or CheckDeadUni("c5",0x2083))) 2140 Send {blind}{NumPad3} 2141 else if (Ebene = 5) 2142 SendUnicodeChar(0x03D1) ; theta symbol (vartheta) 2143 else if (Ebene = 6) 2144 SendUnicodeChar(0x0398) ; Theta 2145 return 2146 2147 2148 neo_j: 2149 EbeneAktualisieren() 2150 if (Ebene12 and !(CheckDeadUni12("c1",0x0135,0x0134) 2151 or CheckDeadUni12("c2",0x01F0,"") 2152 or CheckCompUni12("i",0x0133,"") ; ij 2153 or CheckCompUni12("I","",0x0132) ; IJ 2154 or CheckCompUni12("l",0x01C9,"") ; lj 2155 or CheckCompUni12("L",0x01C8,0x01C7) ; Lj/LJ 2156 or CheckCompUni12("n",0x01CC,"") ; nj 2157 or CheckCompUni12("N",0x01CB,0x01CA))) ; Nj/NJ 2158 OutputChar("j","J") 2159 else if (Ebene = 3) 2160 send {blind}`; 2161 else if (Ebene = 4) 2162 Send {blind}`; 2163 else if (Ebene = 5) 2164 SendUnicodeChar(0x03B8) ; theta 2165 else if (Ebene = 6) 2166 SendUnicodeChar(0x2261) ; identisch 2167 return 2168 2169 /* 2170 2171 Numpad 2172 2173 2174 folgende Tasten verhalten sich bei ein- und ausgeschaltetem 2175 NumLock gleich: 2176 */ 2177 2178 neo_NumpadDiv: 2179 EbeneAktualisieren() 2180 if ((Ebene = 1) or (Ebene = 2)) 2181 send {blind}{NumpadDiv} 2182 else if (Ebene = 3) 2183 send {blind}� 2184 else if ((Ebene = 4) or (Ebene = 5)) 2185 SendUnicodeChar(0x2215) ; slash 2186 return 2187 2188 neo_NumpadMult: 2189 EbeneAktualisieren() 2190 if ((Ebene = 1) or (Ebene = 2)) 2191 send {blind}{NumpadMult} 2192 else if (Ebene = 3) 2193 send {blind}� 2194 else if ((Ebene = 4) or (Ebene = 5)) 2195 SendUnicodeChar(0x22C5) ; cdot 2196 return 2197 2198 neo_NumpadSub: 2199 EbeneAktualisieren() 2200 if (((Ebene = 1) or (Ebene = 2)) and !(CheckDeadUni("c1",0x207B) 2201 or CheckDeadUni("c5",0x208B))) 2202 send {blind}{NumpadSub} 2203 else if (Ebene = 3) 2204 SendUnicodeChar(0x2212) ; echtes minus 2205 return 2206 2207 neo_NumpadAdd: 2208 EbeneAktualisieren() 2209 if (((Ebene = 1) or (Ebene = 2)) and !(CheckDeadUni("c1",0x207A) 2210 or CheckDeadUni("c5",0x208A))) 2211 send {blind}{NumpadAdd} 2212 else if (Ebene = 3) 2213 send {blind}� 2214 else if ((Ebene = 4) or (Ebene = 5)) 2215 SendUnicodeChar(0x2213) ; -+ 2216 return 2217 2218 neo_NumpadEnter: 2219 EbeneAktualisieren() 2220 if ((Ebene = 1) or (Ebene = 2)) 2221 send {blind}{NumpadEnter} 2222 else if (Ebene = 3) 2223 SendUnicodeChar(0x2260) ; neq 2224 else if ((Ebene = 4) or (Ebene = 5)) 2225 SendUnicodeChar(0x2248) ; approx 2226 return 2227 2228 /* 2229 folgende Tasten verhalten sich bei ein- und ausgeschaltetem NumLock 2230 unterschiedlich 2231 */ 2232 2233 2234 2235 neo_Numpad7: 2236 EbeneAktualisieren() 2237 if ((Ebene = 1) and (NumLock = 0)) 2238 send {blind}{NumpadHome} 2239 else if ((Ebene = 2) and (NumLock = 1)) 2240 send {blind}{Shift up}{NumpadHome}{Shift down} 2241 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 2242 { 2243 if (Ebene = 1) 2244 send {blind}{Numpad7} 2245 else 2246 send {blind){Shift up}{Numpad7}{Shift down} 2247 2248 if (PriorDeadKey = "comp") 2249 CompKey := "Num_7" 2250 } 2251 else if (Ebene = 3) 2252 SendUnicodeChar(0x2195) ; Hoch-Runter-Pfeil 2253 else if ((Ebene = 4) or (Ebene = 5)) 2254 SendUnicodeChar(0x226A) ; ll 2255 return 2256 2257 neo_Numpad8: 2258 EbeneAktualisieren() 2259 if ((Ebene = 1) and (NumLock = 0)) 2260 send {blind}{NumpadUp} 2261 else if ((Ebene = 2) and (NumLock = 1)) 2262 send {blind}{Shift up}{NumpadUp}{Shift down} 2263 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 2264 { 2265 if !(CheckCompUni("Num_1",0x215B) ; 1/8 2266 or CheckCompUni("1",0x215B) ; 1/8 2267 or CheckCompUni("Num_3",0x215C) ; 3/8 2268 or CheckCompUni("3",0x215C) ; 3/8 2269 or CheckCompUni("Num_5",0x215D) ; 3/8 2270 or CheckCompUni("5",0x215D) ; 5/8 2271 or CheckCompUni("Num_7",0x215E) ; 7/8 2272 or CheckCompUni("7",0x215E)) ; 7/8 2273 if (Ebene = 1) 2274 send {blind}{Numpad8} 2085 2275 else 2086 send {blind}, 2087 else if (Ebene = 2) 2088 SendUnicodeChar(0x22EE) ; vertikale ellipse 2089 else if (Ebene = 3) 2090 send {blind}" 2091 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x00B2) 2092 or CheckDeadUni("c5",0x2082))) 2093 Send {blind}{NumPad2} 2094 else if (Ebene = 5) 2095 SendUnicodeChar(0x03C1) ; rho 2096 else if (Ebene = 6) 2097 SendUnicodeChar(0x21D0) ; Doppelpfeil links 2098 return 2099 2100 neo_punkt: 2101 EbeneAktualisieren() 2102 if (Ebene = 1) 2103 if (GetKeyState("CapsLock","T")) 2104 send {blind}{Shift down}.{Shift up} 2276 send {blind){Shift up}{Numpad8}{Shift down} 2277 2278 if (PriorDeadKey = "comp") 2279 CompKey := "Num_8" 2280 } 2281 else if (Ebene = 3) 2282 SendUnicodeChar(0x2191) ; uparrow 2283 else if ((Ebene = 4) or (Ebene = 5)) 2284 SendUnicodeChar(0x2229) ; intersection 2285 return 2286 2287 neo_Numpad9: 2288 EbeneAktualisieren() 2289 if ((Ebene = 1) and (NumLock = 0)) 2290 send {blind}{NumpadPgUp} 2291 else if ((Ebene = 2) and (NumLock = 1)) 2292 send {blind}{Shift up}{NumpadPgUp}{Shift down} 2293 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 2294 { 2295 if (Ebene = 1) 2296 send {blind}{Numpad9} 2297 else 2298 send {blind){Shift up}{Numpad9}{Shift down} 2299 2300 if (PriorDeadKey = "comp") 2301 CompKey := "Num_9" 2302 } 2303 else if (Ebene = 3) 2304 SendUnicodeChar(0x2297) ; Tensorprodukt ; Vektor in die Ebene zeigend 2305 else if ((Ebene = 4) or (Ebene = 5)) 2306 SendUnicodeChar(0x226B) ; gg 2307 return 2308 2309 2310 2311 neo_Numpad4: 2312 EbeneAktualisieren() 2313 if ((Ebene = 1) and (NumLock = 0)) 2314 send {blind}{NumpadLeft} 2315 else if ((Ebene = 2) and (NumLock = 1)) 2316 send {blind}{Shift up}{NumpadLeft}{Shift down} 2317 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 2318 { 2319 if !(CheckCompUni("Num_1",0x00BC) ; 1/4 2320 or CheckCompUni("1",0x00BE) ; 1/4 2321 or CheckCompUni("Num_3",0x00BE) ; 3/4 2322 or CheckCompUni("3",0x00BE)) ; 3/4 2323 if (Ebene = 1) 2324 send {blind}{Numpad4} 2105 2325 else 2106 send {blind}. 2107 else if (Ebene = 2) 2108 SendUnicodeChar(0x2026) ; ellipse 2109 else if (Ebene = 3) 2110 send {blind}' 2111 else if ((Ebene = 4) and !(CheckDeadUni("c1",0x00B3) 2112 or CheckDeadUni("c5",0x2083))) 2113 Send {blind}{NumPad3} 2114 else if (Ebene = 5) 2115 SendUnicodeChar(0x03D1) ; theta symbol (vartheta) 2116 else if (Ebene = 6) 2117 SendUnicodeChar(0x0398) ; Theta 2118 return 2119 2120 2121 neo_j: 2122 EbeneAktualisieren() 2123 if (Ebene12 and !(CheckDeadUni12("c1",0x0135,0x0134) 2124 or CheckDeadUni12("c2",0x01F0,"") 2125 or CheckCompUni12("i",0x0133,"") ; ij 2126 or CheckCompUni12("I","",0x0132) ; IJ 2127 or CheckCompUni12("l",0x01C9,"") ; lj 2128 or CheckCompUni12("L",0x01C8,0x01C7) ; Lj/LJ 2129 or CheckCompUni12("n",0x01CC,"") ; nj 2130 or CheckCompUni12("N",0x01CB,0x01CA))) ; Nj/NJ 2131 OutputChar("j","J") 2132 else if (Ebene = 3) 2133 send {blind}`; 2134 else if (Ebene = 4) 2135 Send {blind}`; 2136 else if (Ebene = 5) 2137 SendUnicodeChar(0x03B8) ; theta 2138 else if (Ebene = 6) 2139 SendUnicodeChar(0x2261) ; identisch 2140 return 2326 send {blind){Shift up}{Numpad4}{Shift down} 2327 2328 if (PriorDeadKey = "comp") 2329 CompKey := "Num_4" 2330 } 2331 else if (Ebene = 3) 2332 SendUnicodeChar(0x2190) ; leftarrow 2333 else if ((Ebene = 4) or (Ebene = 5)) 2334 SendUnicodeChar(0x2282) ; subset of 2335 return 2336 2337 neo_Numpad5: 2338 EbeneAktualisieren() 2339 if ((Ebene = 1) and (NumLock = 0)) 2340 send {blind}{NumpadClear} 2341 else if ((Ebene = 2) and (NumLock = 1)) 2342 send {blind}{Shift up}{NumpadClear}{Shift down} 2343 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 2344 { 2345 if !(CheckCompUni("Num_1",0x2155) ; 1/5 2346 or CheckCompUni("1",0x2155) ; 1/5 2347 or CheckCompUni("Num_2",0x2156) ; 2/5 2348 or CheckCompUni("2",0x2156) ; 2/5 2349 or CheckCompUni("Num_3",0x2157) ; 3/5 2350 or CheckCompUni("3",0x2157) ; 3/5 2351 or CheckCompUni("Num_4",0x2158) ; 4/5 2352 or CheckCompUni("4",0x2158)) ; 4/5 2353 if (Ebene = 1) 2354 send {blind}{Numpad5} 2355 else 2356 send {blind){Shift up}{Numpad5}{Shift down} 2357 2358 if (PriorDeadKey = "comp") 2359 CompKey := "Num_5" 2360 } 2361 else if (Ebene = 3) 2362 SendUnicodeChar(0x221E) ; INFINITY 2363 else if ((Ebene = 4) or (Ebene = 5)) 2364 SendUnicodeChar(0x220B) ; enth�lt das Element 2365 return 2366 2367 neo_Numpad6: 2368 EbeneAktualisieren() 2369 if ((Ebene = 1) and (NumLock = 0)) 2370 send {blind}{NumpadRight} 2371 else if ((Ebene = 2) and (NumLock = 1)) 2372 send {blind}{Shift up}{NumpadRight}{Shift down} 2373 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 2374 { 2375 if !(CheckCompUni("Num_1",0x2159) ; 1/6 2376 or CheckCompUni("1",0x2159) ; 1/6 2377 or CheckCompUni("Num_5",0x215A) ; 5/6 2378 or CheckCompUni("5",0x215A)) ; 5/6 2379 if (Ebene = 1) 2380 send {blind}{Numpad6} 2381 else 2382 send {blind){Shift up}{Numpad6}{Shift down} 2383 2384 if (PriorDeadKey = "comp") 2385 CompKey := "Num_6" 2386 } 2387 else if (Ebene = 3) 2388 SendUnicodeChar(0x2192) ; rightarrow 2389 else if ((Ebene = 4) or (Ebene = 5)) 2390 SendUnicodeChar(0x2283) ; superset of 2391 return 2392 2393 neo_Numpad1: 2394 EbeneAktualisieren() 2395 if ((Ebene = 1) and (NumLock = 0)) 2396 send {blind}{NumpadEnd} 2397 else if ((Ebene = 2) and (NumLock = 1)) 2398 send {blind}{Shift up}{NumpadEnd}{Shift down} 2399 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 2400 { 2401 if (Ebene = 1) 2402 send {blind}{Numpad1} 2403 else 2404 send {blind){Shift up}{Numpad1}{Shift down} 2405 2406 if (PriorDeadKey = "comp") 2407 CompKey := "Num_1" 2408 } 2409 else if (Ebene = 3) 2410 SendUnicodeChar(0x2194) ; Links-Rechts-Pfeil 2411 else if ((Ebene = 4) or (Ebene = 5)) 2412 SendUnicodeChar(0x2264) ; leq 2413 return 2414 2415 neo_Numpad2: 2416 EbeneAktualisieren() 2417 if ((Ebene = 1) and (NumLock = 0)) 2418 send {blind}{NumpadDown} 2419 else if ((Ebene = 2) and (NumLock = 1)) 2420 send {blind}{Shift up}{NumpadDown}{Shift down} 2421 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 2422 { 2423 if !(CheckCompUni("Num_1",0x00BD) ; 1/2 2424 or CheckCompUni("1",0x00BD)) ; 1/2 2425 if (Ebene = 1) 2426 send {blind}{Numpad2} 2427 else 2428 send {blind){Shift up}{Numpad2}{Shift down} 2429 2430 if (PriorDeadKey = "comp") 2431 CompKey := "Num_2" 2432 } 2433 else if (Ebene = 3) 2434 SendUnicodeChar(0x2193) ; downarrow 2435 else if ((Ebene = 4) or (Ebene = 5)) 2436 SendUnicodeChar(0x222A) ; vereinigt 2437 return 2438 2439 neo_Numpad3: 2440 EbeneAktualisieren() 2441 if ((Ebene = 1) and (NumLock = 0)) 2442 send {blind}{NumpadPgDn} 2443 else if ((Ebene = 2) and (NumLock = 1)) 2444 send {blind}{Shift up}{NumpadPgDn}{Shift down} 2445 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 2446 { 2447 if !(CheckCompUni("Num_1",0x2153) ; 1/3 2448 or CheckCompUni("1",0x2154) ; 1/3 2449 or CheckCompUni("Num_2",0x2154) ; 2/3 2450 or CheckCompUni("2",0x2154)) ; 2/3 2451 if (Ebene = 1) 2452 send {blind}{Numpad3} 2453 else 2454 send {blind){Shift up}{Numpad3}{Shift down} 2455 2456 if (PriorDeadKey = "comp") 2457 CompKey := "Num_3" 2458 } 2459 else if (Ebene = 3) 2460 SendUnicodeChar(0x21CC) ; RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON 2461 else if ((Ebene = 4) or (Ebene = 5)) 2462 SendUnicodeChar(0x2265) ; geq 2463 return 2464 2465 neo_Numpad0: 2466 EbeneAktualisieren() 2467 if ((Ebene = 1) and (NumLock = 0)) 2468 send {blind}{NumpadIns} 2469 else if ((Ebene = 2) and (NumLock = 1)) 2470 send {blind}{Shift up}{NumpadIns}{Shift down} 2471 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 2472 { 2473 if (Ebene = 1) 2474 send {blind}{Numpad0} 2475 else 2476 send {blind){Shift up}{Numpad0}{Shift down} 2477 2478 if (PriorDeadKey = "comp") 2479 CompKey := "Num_0" 2480 } 2481 else if (Ebene = 3) 2482 send {blind}`% 2483 else if ((Ebene = 4) or (Ebene = 5)) 2484 send � 2485 return 2486 2487 neo_NumpadDot: 2488 EbeneAktualisieren() 2489 if ((Ebene = 1) and (NumLock = 0)) 2490 send {blind}{NumpadDel} 2491 else if ((Ebene = 2) and (NumLock = 1)) 2492 send {blind}{Shift up}{NumpadDel}{Shift down} 2493 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 2494 if (Ebene = 1) 2495 send {blind}{NumpadDot} 2496 else 2497 send {blind){Shift up}{NumpadDot}{Shift down} 2498 else if (Ebene = 3) 2499 send {blind}. 2500 else if ((Ebene = 4) or (Ebene = 5)) 2501 send `, 2502 return 2503 2141 2504 2142 2505 /* 2143 ------------------------------------------------------ 2144 Numpad 2145 ------------------------------------------------------ 2146 2147 folgende Tasten verhalten sich bei ein- und ausgeschaltetem 2148 NumLock gleich: 2149 */ 2150 2151 neo_NumpadDiv: 2152 EbeneAktualisieren() 2153 if ((Ebene = 1) or (Ebene = 2)) 2154 send {blind}{NumpadDiv} 2155 else if (Ebene = 3) 2156 send {blind}� 2157 else if ((Ebene = 4) or (Ebene = 5)) 2158 SendUnicodeChar(0x2215) ; slash 2159 return 2160 2161 neo_NumpadMult: 2162 EbeneAktualisieren() 2163 if ((Ebene = 1) or (Ebene = 2)) 2164 send {blind}{NumpadMult} 2165 else if (Ebene = 3) 2166 send {blind}� 2167 else if ((Ebene = 4) or (Ebene = 5)) 2168 SendUnicodeChar(0x22C5) ; cdot 2169 return 2170 2171 neo_NumpadSub: 2172 EbeneAktualisieren() 2173 if (((Ebene = 1) or (Ebene = 2)) and !(CheckDeadUni("c1",0x207B) 2174 or CheckDeadUni("c5",0x208B))) 2175 send {blind}{NumpadSub} 2176 else if (Ebene = 3) 2177 SendUnicodeChar(0x2212) ; echtes minus 2178 return 2179 2180 neo_NumpadAdd: 2181 EbeneAktualisieren() 2182 if (((Ebene = 1) or (Ebene = 2)) and !(CheckDeadUni("c1",0x207A) 2183 or CheckDeadUni("c5",0x208A))) 2184 send {blind}{NumpadAdd} 2185 else if (Ebene = 3) 2186 send {blind}� 2187 else if ((Ebene = 4) or (Ebene = 5)) 2188 SendUnicodeChar(0x2213) ; -+ 2189 return 2190 2191 neo_NumpadEnter: 2192 EbeneAktualisieren() 2193 if ((Ebene = 1) or (Ebene = 2)) 2194 send {blind}{NumpadEnter} 2195 else if (Ebene = 3) 2196 SendUnicodeChar(0x2260) ; neq 2197 else if ((Ebene = 4) or (Ebene = 5)) 2198 SendUnicodeChar(0x2248) ; approx 2199 return 2200 2201 /* 2202 folgende Tasten verhalten sich bei ein- und ausgeschaltetem NumLock 2203 unterschiedlich 2204 */ 2205 2206 2207 2208 neo_Numpad7: 2209 EbeneAktualisieren() 2210 if ((Ebene = 1) and (NumLock = 0)) 2211 send {blind}{NumpadHome} 2212 else if ((Ebene = 2) and (NumLock = 1)) 2213 send {blind}{Shift up}{NumpadHome}{Shift down} 2214 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 2215 { 2216 if (Ebene = 1) 2217 send {blind}{Numpad7} 2218 else 2219 send {blind){Shift up}{Numpad7}{Shift down} 2220 2221 if (PriorDeadKey = "comp") 2222 CompKey := "Num_7" 2223 } 2224 else if (Ebene = 3) 2225 SendUnicodeChar(0x2195) ; Hoch-Runter-Pfeil 2226 else if ((Ebene = 4) or (Ebene = 5)) 2227 SendUnicodeChar(0x226A) ; ll 2228 return 2229 2230 neo_Numpad8: 2231 EbeneAktualisieren() 2232 if ((Ebene = 1) and (NumLock = 0)) 2233 send {blind}{NumpadUp} 2234 else if ((Ebene = 2) and (NumLock = 1)) 2235 send {blind}{Shift up}{NumpadUp}{Shift down} 2236 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 2237 { 2238 if !(CheckCompUni("Num_1",0x215B) ; 1/8 2239 or CheckCompUni("1",0x215B) ; 1/8 2240 or CheckCompUni("Num_3",0x215C) ; 3/8 2241 or CheckCompUni("3",0x215C) ; 3/8 2242 or CheckCompUni("Num_5",0x215D) ; 3/8 2243 or CheckCompUni("5",0x215D) ; 5/8 2244 or CheckCompUni("Num_7",0x215E) ; 7/8 2245 or CheckCompUni("7",0x215E)) ; 7/8 2246 if (Ebene = 1) 2247 send {blind}{Numpad8} 2248 else 2249 send {blind){Shift up}{Numpad8}{Shift down} 2250 2251 if (PriorDeadKey = "comp") 2252 CompKey := "Num_8" 2253 } 2254 else if (Ebene = 3) 2255 SendUnicodeChar(0x2191) ; uparrow 2256 else if ((Ebene = 4) or (Ebene = 5)) 2257 SendUnicodeChar(0x2229) ; intersection 2258 return 2259 2260 neo_Numpad9: 2261 EbeneAktualisieren() 2262 if ((Ebene = 1) and (NumLock = 0)) 2263 send {blind}{NumpadPgUp} 2264 else if ((Ebene = 2) and (NumLock = 1)) 2265 send {blind}{Shift up}{NumpadPgUp}{Shift down} 2266 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 2267 { 2268 if (Ebene = 1) 2269 send {blind}{Numpad9} 2270 else 2271 send {blind){Shift up}{Numpad9}{Shift down} 2272 2273 if (PriorDeadKey = "comp") 2274 CompKey := "Num_9" 2275 } 2276 else if (Ebene = 3) 2277 SendUnicodeChar(0x2297) ; Tensorprodukt ; Vektor in die Ebene zeigend 2278 else if ((Ebene = 4) or (Ebene = 5)) 2279 SendUnicodeChar(0x226B) ; gg 2280 return 2281 2282 2283 2284 neo_Numpad4: 2285 EbeneAktualisieren() 2286 if ((Ebene = 1) and (NumLock = 0)) 2287 send {blind}{NumpadLeft} 2288 else if ((Ebene = 2) and (NumLock = 1)) 2289 send {blind}{Shift up}{NumpadLeft}{Shift down} 2290 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 2291 { 2292 if !(CheckCompUni("Num_1",0x00BC) ; 1/4 2293 or CheckCompUni("1",0x00BE) ; 1/4 2294 or CheckCompUni("Num_3",0x00BE) ; 3/4 2295 or CheckCompUni("3",0x00BE)) ; 3/4 2296 if (Ebene = 1) 2297 send {blind}{Numpad4} 2298 else 2299 send {blind){Shift up}{Numpad4}{Shift down} 2300 2301 if (PriorDeadKey = "comp") 2302 CompKey := "Num_4" 2303 } 2304 else if (Ebene = 3) 2305 SendUnicodeChar(0x2190) ; leftarrow 2306 else if ((Ebene = 4) or (Ebene = 5)) 2307 SendUnicodeChar(0x2282) ; subset of 2308 return 2309 2310 neo_Numpad5: 2311 EbeneAktualisieren() 2312 if ((Ebene = 1) and (NumLock = 0)) 2313 send {blind}{NumpadClear} 2314 else if ((Ebene = 2) and (NumLock = 1)) 2315 send {blind}{Shift up}{NumpadClear}{Shift down} 2316 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 2317 { 2318 if !(CheckCompUni("Num_1",0x2155) ; 1/5 2319 or CheckCompUni("1",0x2155) ; 1/5 2320 or CheckCompUni("Num_2",0x2156) ; 2/5 2321 or CheckCompUni("2",0x2156) ; 2/5 2322 or CheckCompUni("Num_3",0x2157) ; 3/5 2323 or CheckCompUni("3",0x2157) ; 3/5 2324 or CheckCompUni("Num_4",0x2158) ; 4/5 2325 or CheckCompUni("4",0x2158)) ; 4/5 2326 if (Ebene = 1) 2327 send {blind}{Numpad5} 2328 else 2329 send {blind){Shift up}{Numpad5}{Shift down} 2330 2331 if (PriorDeadKey = "comp") 2332 CompKey := "Num_5" 2333 } 2334 else if (Ebene = 3) 2335 SendUnicodeChar(0x221E) ; INFINITY 2336 else if ((Ebene = 4) or (Ebene = 5)) 2337 SendUnicodeChar(0x220B) ; enth�lt das Element 2338 return 2339 2340 neo_Numpad6: 2341 EbeneAktualisieren() 2342 if ((Ebene = 1) and (NumLock = 0)) 2343 send {blind}{NumpadRight} 2344 else if ((Ebene = 2) and (NumLock = 1)) 2345 send {blind}{Shift up}{NumpadRight}{Shift down} 2346 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 2347 { 2348 if !(CheckCompUni("Num_1",0x2159) ; 1/6 2349 or CheckCompUni("1",0x2159) ; 1/6 2350 or CheckCompUni("Num_5",0x215A) ; 5/6 2351 or CheckCompUni("5",0x215A)) ; 5/6 2352 if (Ebene = 1) 2353 send {blind}{Numpad6} 2354 else 2355 send {blind){Shift up}{Numpad6}{Shift down} 2356 2357 if (PriorDeadKey = "comp") 2358 CompKey := "Num_6" 2359 } 2360 else if (Ebene = 3) 2361 SendUnicodeChar(0x2192) ; rightarrow 2362 else if ((Ebene = 4) or (Ebene = 5)) 2363 SendUnicodeChar(0x2283) ; superset of 2364 return 2365 2366 neo_Numpad1: 2367 EbeneAktualisieren() 2368 if ((Ebene = 1) and (NumLock = 0)) 2369 send {blind}{NumpadEnd} 2370 else if ((Ebene = 2) and (NumLock = 1)) 2371 send {blind}{Shift up}{NumpadEnd}{Shift down} 2372 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 2373 { 2374 if (Ebene = 1) 2375 send {blind}{Numpad1} 2376 else 2377 send {blind){Shift up}{Numpad1}{Shift down} 2378 2379 if (PriorDeadKey = "comp") 2380 CompKey := "Num_1" 2381 } 2382 else if (Ebene = 3) 2383 SendUnicodeChar(0x2194) ; Links-Rechts-Pfeil 2384 else if ((Ebene = 4) or (Ebene = 5)) 2385 SendUnicodeChar(0x2264) ; leq 2386 return 2387 2388 neo_Numpad2: 2389 EbeneAktualisieren() 2390 if ((Ebene = 1) and (NumLock = 0)) 2391 send {blind}{NumpadDown} 2392 else if ((Ebene = 2) and (NumLock = 1)) 2393 send {blind}{Shift up}{NumpadDown}{Shift down} 2394 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 2395 { 2396 if !(CheckCompUni("Num_1",0x00BD) ; 1/2 2397 or CheckCompUni("1",0x00BD)) ; 1/2 2398 if (Ebene = 1) 2399 send {blind}{Numpad2} 2400 else 2401 send {blind){Shift up}{Numpad2}{Shift down} 2402 2403 if (PriorDeadKey = "comp") 2404 CompKey := "Num_2" 2405 } 2406 else if (Ebene = 3) 2407 SendUnicodeChar(0x2193) ; downarrow 2408 else if ((Ebene = 4) or (Ebene = 5)) 2409 SendUnicodeChar(0x222A) ; vereinigt 2410 return 2411 2412 neo_Numpad3: 2413 EbeneAktualisieren() 2414 if ((Ebene = 1) and (NumLock = 0)) 2415 send {blind}{NumpadPgDn} 2416 else if ((Ebene = 2) and (NumLock = 1)) 2417 send {blind}{Shift up}{NumpadPgDn}{Shift down} 2418 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 2419 { 2420 if !(CheckCompUni("Num_1",0x2153) ; 1/3 2421 or CheckCompUni("1",0x2154) ; 1/3 2422 or CheckCompUni("Num_2",0x2154) ; 2/3 2423 or CheckCompUni("2",0x2154)) ; 2/3 2424 if (Ebene = 1) 2425 send {blind}{Numpad3} 2426 else 2427 send {blind){Shift up}{Numpad3}{Shift down} 2428 2429 if (PriorDeadKey = "comp") 2430 CompKey := "Num_3" 2431 } 2432 else if (Ebene = 3) 2433 SendUnicodeChar(0x21CC) ; RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON 2434 else if ((Ebene = 4) or (Ebene = 5)) 2435 SendUnicodeChar(0x2265) ; geq 2436 return 2437 2438 neo_Numpad0: 2439 EbeneAktualisieren() 2440 if ((Ebene = 1) and (NumLock = 0)) 2441 send {blind}{NumpadIns} 2442 else if ((Ebene = 2) and (NumLock = 1)) 2443 send {blind}{Shift up}{NumpadIns}{Shift down} 2444 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 2445 { 2446 if (Ebene = 1) 2447 send {blind}{Numpad0} 2448 else 2449 send {blind){Shift up}{Numpad0}{Shift down} 2450 2451 if (PriorDeadKey = "comp") 2452 CompKey := "Num_0" 2453 } 2454 else if (Ebene = 3) 2455 send {blind}`% 2456 else if ((Ebene = 4) or (Ebene = 5)) 2457 send � 2458 return 2459 2460 neo_NumpadDot: 2461 EbeneAktualisieren() 2462 if ((Ebene = 1) and (NumLock = 0)) 2463 send {blind}{NumpadDel} 2464 else if ((Ebene = 2) and (NumLock = 1)) 2465 send {blind}{Shift up}{NumpadDel}{Shift down} 2466 else if (((Ebene = 1) and (NumLock = 1)) or ((Ebene = 2) and (NumLock = 0))) 2467 if (Ebene = 1) 2468 send {blind}{NumpadDot} 2469 else 2470 send {blind){Shift up}{NumpadDot}{Shift down} 2471 else if (Ebene = 3) 2472 send {blind}. 2473 else if ((Ebene = 4) or (Ebene = 5)) 2474 send `, 2475 return 2476 2477 2478 /* 2479 ------------------------------------------------------ 2480 Sondertasten 2481 ------------------------------------------------------ 2506 2507 Sondertasten 2508 2482 2509 */ 2483 2510 *space:: 2484 if ((einHandNeo))2485 spacepressed := 12486 else2487 goto neo_SpaceUp2511 if ((einHandNeo)) 2512 spacepressed := 1 2513 else 2514 goto neo_SpaceUp 2488 2515 return 2489 2516 2490 2517 *space up:: 2491 if ((einHandNeo))2492 {2493 if ((keypressed))2494 {2495 keypressed := 02496 spacepressed := 02497 }2498 else2499 {2500 goto neo_SpaceUp2501 }2502 }2503 else2504 { } ;do nothing2505 return 2518 if ((einHandNeo)) 2519 { 2520 if ((keypressed)) 2521 { 2522 keypressed := 0 2523 spacepressed := 0 2524 } 2525 else 2526 { 2527 goto neo_SpaceUp 2528 } 2529 } 2530 else 2531 { } ;do nothing 2532 return 2506 2533 2507 2534 neo_SpaceUp: 2508 EbeneAktualisieren() 2509 if ((Ebene = 1) and !(CheckComp3Uni("r_1",0x2170) ; r�misch i 2510 or CheckComp3Uni("R_1",0x2160))) ; r�misch I 2511 Send {blind}{Space} 2512 else if ((Ebene = 2) or (Ebene = 3)) 2513 Send {blind}{Space} 2514 else if (Ebene = 4) 2515 if (PriorDeadKey = "c1") ; circumflex 2516 BSSendUnicodeChar(0x2070) 2517 else if (PriorDeadKey = "c5") ; toter - 2518 BSSendUnicodeChar(0x2080) 2519 else 2520 Send {blind}{NumPad0} 2521 else if (Ebene = 5) 2522 SendUnicodeChar(0x00A0) ; gesch�tztes Leerzeichen 2523 else if (Ebene = 6) 2524 SendUnicodeChar(0x202F) ; schmales Leerzeichen 2525 DeadKey := "" CompKey := "" 2526 spacepressed := 0 2527 keypressed := 0 2535 EbeneAktualisieren() 2536 if ((Ebene = 1) and !(CheckComp3Uni("r_1",0x2170) ; r�misch i 2537 or CheckComp3Uni("R_1",0x2160))) ; r�misch I 2538 Send {blind}{Space} 2539 else if ((Ebene = 2) or (Ebene = 3)) 2540 Send {blind}{Space} 2541 else if (Ebene = 4 and !(CheckDeadUni("c1",0x2070) 2542 or CheckDeadUni("c5",0x2080))) 2543 Send {blind}{NumPad0} 2544 else if (Ebene = 5) 2545 SendUnicodeChar(0x00A0) ; gesch�tztes Leerzeichen 2546 else if (Ebene = 6) 2547 SendUnicodeChar(0x202F) ; schmales Leerzeichen 2548 DeadKey := "" CompKey := "" 2549 spacepressed := 0 2550 keypressed := 0 2528 2551 return 2529 2552 2530 2553 /* 2531 Folgende Tasten sind nur aufgef�hrt, um PriorDeadKey zu leeren.2532 Irgendwie sieht das noch nicht sch�n aus. Vielleicht l�sst sich dieses2533 Problem irgendwie eleganter l�sen...2534 2535 Nachtrag:2536 Weil es mit Alt+Tab Probleme gab, wird hier jetzt erstmal rumgeflickschustert,2537 bis eine allgemeinere L�sung gefunden wurde.2554 Folgende Tasten sind nur aufgef�hrt, um PriorDeadKey zu leeren. 2555 Irgendwie sieht das noch nicht sch�n aus. Vielleicht l�sst sich dieses 2556 Problem irgendwie eleganter l�sen... 2557 2558 Nachtrag: 2559 Weil es mit Alt+Tab Probleme gab, wird hier jetzt erstmal rumgeflickschustert, 2560 bis eine allgemeinere L�sung gefunden wurde. 2538 2561 */ 2539 2562 2540 2563 *Enter:: 2541 if (not(lernModus) or lernModus_std_Return)2542 {2543 send {Blind}{Enter}2544 DeadKey := ""CompKey := ""2545 }2564 if (not(lernModus) or lernModus_std_Return) 2565 { 2566 send {Blind}{Enter} 2567 DeadKey := "" CompKey := "" 2568 } 2546 2569 return 2547 2570 2548 2571 *Backspace:: 2549 if (not(lernModus) or lernModus_std_Backspace)2550 {2551 send {Blind}{Backspace}2552 DeadKey := ""CompKey := ""2553 }2572 if (not(lernModus) or lernModus_std_Backspace) 2573 { 2574 send {Blind}{Backspace} 2575 DeadKey := "" CompKey := "" 2576 } 2554 2577 return 2555 2578 2556 2579 *Del:: 2557 if (not(lernModus) or lernModus_std_Entf)2558 send {Blind}{Del}2580 if (not(lernModus) or lernModus_std_Entf) 2581 send {Blind}{Del} 2559 2582 return 2560 2583 2561 2584 *Ins:: 2562 if (not(lernModus) or lernModus_std_Einf) 2563 send {Blind}{Ins} 2564 return 2565 2566 2567 2585 if (not(lernModus) or lernModus_std_Einf) 2586 send {Blind}{Ins} 2587 return 2568 2588 2569 2589 … … 2573 2593 2574 2594 neo_tab: 2575 if (IsMod3Pressed()) ;# 2576 { 2577 #Include *i %a_scriptdir%\ComposeLaunch.ahk 2578 #Include *i %a_scriptdir%\Source\ComposeLaunch.ahk 2579 DeadKey := "comp" 2580 CompKey := "" 2581 } 2582 else 2583 { 2584 send {blind}{Tab} 2585 DeadKey := "" 2586 CompKey := "" 2587 } 2595 if (IsMod3Pressed()) ;# 2596 { 2597 DeadKey := "comp" 2598 CompKey := "" 2599 } 2600 else 2601 { 2602 send {blind}{Tab} 2603 DeadKey := "" 2604 CompKey := "" 2605 } 2588 2606 return 2589 2607 2590 2608 *Home:: 2591 if (not(lernModus) or lernModus_std_Pos1)2592 {2593 send {Blind}{Home}2594 DeadKey := ""CompKey := ""2595 }2609 if (not(lernModus) or lernModus_std_Pos1) 2610 { 2611 send {Blind}{Home} 2612 DeadKey := "" CompKey := "" 2613 } 2596 2614 return 2597 2615 2598 2616 *End:: 2599 if (not(lernModus) or lernModus_std_Ende)2600 {2601 send {Blind}{End}2602 DeadKey := ""CompKey := ""2603 }2617 if (not(lernModus) or lernModus_std_Ende) 2618 { 2619 send {Blind}{End} 2620 DeadKey := "" CompKey := "" 2621 } 2604 2622 return 2605 2623 2606 2624 *PgUp:: 2607 if (not(lernModus) or lernModus_std_PgUp)2608 {2609 send {Blind}{PgUp}2610 DeadKey := ""CompKey := ""2611 }2625 if (not(lernModus) or lernModus_std_PgUp) 2626 { 2627 send {Blind}{PgUp} 2628 DeadKey := "" CompKey := "" 2629 } 2612 2630 return 2613 2631 2614 2632 *PgDn:: 2615 if (not(lernModus) or lernModus_std_PgDn)2616 {2617 send {Blind}{PgDn}2618 DeadKey := ""CompKey := ""2619 }2633 if (not(lernModus) or lernModus_std_PgDn) 2634 { 2635 send {Blind}{PgDn} 2636 DeadKey := "" CompKey := "" 2637 } 2620 2638 return 2621 2639 2622 2640 *Up:: 2623 if (not(lernModus) or lernModus_std_Hoch)2624 {2625 send {Blind}{Up}2626 DeadKey := ""CompKey := ""2627 }2641 if (not(lernModus) or lernModus_std_Hoch) 2642 { 2643 send {Blind}{Up} 2644 DeadKey := "" CompKey := "" 2645 } 2628 2646 return 2629 2647 2630 2648 *Down:: 2631 if (not(lernModus) or lernModus_std_Runter)2632 {2633 send {Blind}{Down}2634 DeadKey := ""CompKey := ""2635 }2649 if (not(lernModus) or lernModus_std_Runter) 2650 { 2651 send {Blind}{Down} 2652 DeadKey := "" CompKey := "" 2653 } 2636 2654 return 2637 2655 2638 2656 *Left:: 2639 if (not(lernModus) or lernModus_std_Links)2640 {2641 send {Blind}{Left}2642 DeadKey := ""CompKey := ""2643 }2657 if (not(lernModus) or lernModus_std_Links) 2658 { 2659 send {Blind}{Left} 2660 DeadKey := "" CompKey := "" 2661 } 2644 2662 return 2645 2663 2646 2664 *Right:: 2647 if (not(lernModus) or lernModus_std_Rechts)2648 {2649 send {Blind}{Right}2650 DeadKey := ""CompKey := ""2651 }2665 if (not(lernModus) or lernModus_std_Rechts) 2666 { 2667 send {Blind}{Right} 2668 DeadKey := "" CompKey := "" 2669 } 2652 2670 return 2653 2671 … … 2780 2798 2781 2799 /* 2782 ------------------------------------------------------ 2783 Funktionen 2784 ------------------------------------------------------ 2800 Funktionen 2785 2801 */ 2786 2802 … … 2800 2816 CompKey := "" 2801 2817 Ebene12 := 0 2818 Ebene7 := 0 2819 Ebene8 := 0 2802 2820 Modstate := IsShiftPressed() . IsMod3Pressed() . IsMod4Pressed() 2803 2821 … … 2821 2839 Ebene = 6 ; Ebene 6: Mod3+Mod4 2822 2840 else if (Modstate = "101") 2841 { 2823 2842 Ebene = 4 ; Ebene 7: Shift+Mod4 impliziert Ebene 4 2843 Ebene7 = 1 2844 } 2824 2845 else if (Modstate = "111") 2846 { 2825 2847 Ebene = 6 ; Ebene 8: Shift+Mod3+Mod4 impliziert Ebene 6 2848 Ebene8 = 1 2849 } 2826 2850 2827 2851 Ebene12 := ((Ebene = 1) or (Ebene = 2)) … … 2832 2856 NumLock = 0 2833 2857 } 2834 2835 2858 2836 2859 … … 2930 2953 } 2931 2954 2932 DeadSilence = 02933 2934 2955 deadAsc(val) 2935 2956 { … … 3036 3057 return 0 3037 3058 } 3038 3039 DeadCompose = 03040 3059 3041 3060 compAsc(val) … … 3197 3216 CompKey := c 3198 3217 } 3199 3200 ;Tote/Untote Tasten3201 *F9::3202 if (isMod4pressed())3203 DeadSilence := not(DeadSilence)3204 else3205 send {blind}{F9}3206 return3207 3208 ;Tote/Untote Compose3209 *F10::3210 if (isMod4pressed())3211 DeadCompose := not(DeadCompose)3212 else3213 send {blind}{F10}3214 return3215 3216 ;Lang-s-Tastatur:3217 *F11::3218 if (isMod4pressed())3219 LangSTastatur := not(LangSTastatur) ; schaltet die Lang-s-Tastatur ein und aus3220 else3221 send {blind}{F11}3222 return3223 3218 3224 3219
