Changeset 2407

Show
Ignore:
Timestamp:
10/06/11 11:23:05 (20 months ago)
Author:
mösi
Message:

• Das Skript ist jetzt mit dem neuen AutoHotkey_L Unicode kompatibel, aber nur mehr bedingt mit dem alten AHK oder dem AutoHotkey_L ANSI.
• Die Dynamische BST (M3+F3) reagiert jetzt nicht nur auf Compose, sondern auch auf Ebene 5/6.

Location:
windows/neo-vars/src
Files:
18 modified

Legend:

Unmodified
Added
Removed
  • windows/neo-vars/src/neo20-all.ahk

    r2303 r2407  
     1; -*- encoding: utf-8 -*- 
     2 
    13SetWorkingDir, %A_ScriptDir% 
    24#include %A_ScriptDir%\ 
     
    1416#include    source\keydefinitions.ahk 
    1517 
    16 ; Shortcuts, um die Zeichen wieder sauber zur Applikation bringen zu knnen 
     18; Shortcuts, um die Zeichen wieder sauber zur Applikation bringen zu können 
    1719#include    source\performance.ahk 
    1820#include    source\shortcuts.ahk 
    1921 
    20 ; Good-old AHK-Skripts, enthalten die ersten Key-Hooks fr Mod-Tasten 
     22; Good-old AHK-Skripts, enthalten die ersten Key-Hooks für Mod-Tasten 
    2123; Achtung: Hinter dem ersten Keyboard-Hook werden keine globalen Variablen 
    2224; mehr gesetzt! 
  • windows/neo-vars/src/source/compose-gen.ahk

    r2298 r2407  
    18001800    char := asc(SubStr(str,1,1)) 
    18011801    str  := SubStr(str,2) 
    1802     if (char < 0x80) 
     1802    if (A_IsUnicode) { 
     1803      if ((char < 0xDC00) or (char >= 0xE000)) 
     1804        result .= "U" . SubStr("000000" . Substr(char, 3), -5) 
     1805      else { 
     1806        ; unwrap surrogates 
     1807        char2 := asc(Substr(str,1,1)) 
     1808        str   := SubStr(str,2) 
     1809        result .= "U" . SubStr("000000" . SubStr(((char & 0x3FF) << 12) + (char2 & 0x3FF), 3), -5) 
     1810      } 
     1811    } 
     1812    else if (char < 0x80) 
    18031813      result .= "U" . SubStr("000000" . SubStr(char,3),-5) 
    18041814    else if (char < 0xC0) { 
  • windows/neo-vars/src/source/compose.generated.ahk

    r2300 r2407  
    1 CompRevision := "2231" 
     1; -*- encoding: utf-8 -*- 
     2 
     3CompRevision := "2354" 
    24 
    35LoadDefaultCompose() { 
  • windows/neo-vars/src/source/einhandneo.ahk

    r2240 r2407  
    1 ; ��� 
     1; -*- encoding: utf-8 -*- 
    22 
    33IniRead,einHandNeo,%ini%,Global,einHandNeo,0 
     
    1515    CharProc___EH1() 
    1616    if (zeigeModusBox) 
    17       TrayTip,NEO-Einhandmodus,Der NEO-Einhand-Modus wurde aktiviert. Zum Deaktivieren Mod3+F10 drcken.,10,1 
     17      TrayTip,NEO-Einhandmodus,Der NEO-Einhand-Modus wurde aktiviert. Zum Deaktivieren Mod3+F10 drücken.,10,1 
    1818  } else { 
    1919    CharProc___EH0() 
     
    3838  TKEH_VK39SC00A := "VK34SC005" ; 9 -> 4 
    3939  TKEH_VK30SC00B := "VK33SC004" ; 0 -> 3 
    40   TKEH_VKDBSC00C := "VK32SC003" ; -> 2 
     40  TKEH_VKDBSC00C := "VK32SC003" ; ß -> 2 
    4141  TKEH_VKDDSC00D := "VK31SC002" ; tot2 -> 1 
    4242  ; Reihe 2 
     
    4646  TKEH_VK4FSC018 := "VK57SC011" ; f -> v 
    4747  TKEH_VK50SC019 := "VK51SC010" ; q -> x 
    48   TKEH_VKBASC01A := "tab"       ; -> tab 
     48  TKEH_VKBASC01A := "tab"       ; ß -> tab 
    4949  TKEH_VKBBSC01B := "VKDCSC029" ; tot3 -> tot1 
    5050  ; Reihe 3 
     
    5757  TKEH_VK4ESC031 := "VK42SC030" ; b -> z 
    5858  TKEH_VK4DSC032 := "VK56SC02F" ; m -> p 
    59   TKEH_VKBCSC033 := "VK43SC02E" ; , ->  
    60   TKEH_VKBESC034 := "VK58SC02D" ; . ->  
    61   TKEH_VKBDSC035 := "VK59SC02C" ; j ->  
     59  TKEH_VKBCSC033 := "VK43SC02E" ; , -> ä 
     60  TKEH_VKBESC034 := "VK58SC02D" ; . -> ö 
     61  TKEH_VKBDSC035 := "VK59SC02C" ; j -> ü 
    6262  ; Modify Space 
    6363  ED1("space","P__EHSd") 
     
    8484  TKEH_VK39SC00A := "" ; 9 
    8585  TKEH_VK30SC00B := "" ; 0 
    86   TKEH_VKDBSC00C := "" ;  
     86  TKEH_VKDBSC00C := "" ; ß 
    8787  TKEH_VKDDSC00D := "" ; tot2 
    8888  ; Reihe 2 
     
    9292  TKEH_VK4FSC018 := "" ; f 
    9393  TKEH_VK50SC019 := "" ; q 
    94   TKEH_VKBASC01A := "" ;  
     94  TKEH_VKBASC01A := "" ; ß 
    9595  TKEH_VKBBSC01B := "" ; tot3 
    9696  ; Reihe 3 
     
    115115CharProc__EHSd() { 
    116116  global 
    117   ; Space im Einhandmodus gedrckt 
     117  ; Space im Einhandmodus gedrückt 
    118118  PRspace := "P__EHSu" 
    119119  if (!EHSpacePressed) { 
  • windows/neo-vars/src/source/initialize.ahk

    r2403 r2407  
     1; -*- encoding: utf-8 -*- 
     2 
    13if (A_IsCompiled) { 
    24; Revisionsinformation bereits verfügbar 
     
    6769    `nDas deutsche QWERTZ muss als Standardlayout eingestellt   
    6870    sein, damit %name% wie erwartet funktioniert.    
    69     `nndern Sie die Tastatureinstellung unter  
     71    `nÄndern Sie die Tastatureinstellung unter  
    7072    `tSystemsteuerung    
    7173    `t-> Regions- und Sprachoptionen    
  • windows/neo-vars/src/source/keyboardleds.ahk

    r1917 r2407  
     1; -*- encoding: utf-8 -*- 
     2 
    13UpdateOldLEDS() { 
    24  global 
  • windows/neo-vars/src/source/keyhooks.ahk

    r2356 r2407  
    1 ; Wir m�ssen F24 nicht hooken, aber bei einem Restart hat AHK den Bug, 
    2 ; dass manchmal der erste Hook ausgef�hrt wird, als w�re diese Taste 
    3 ; gedr�ckt worden. Da F24 auf den wenigsten Tastaturen vorkommt und daher f�r 
    4 ; NEO uninteressant ist, kehren wir einfach wieder zur�ck. 
     1; -*- encoding: utf-8 -*- 
     2 
     3; Wir müssen F24 nicht hooken, aber bei einem Restart hat AHK den Bug, 
     4; dass manchmal der erste Hook ausgeführt wird, als wäre diese Taste 
     5; gedrückt worden. Da F24 auf den wenigsten Tastaturen vorkommt und daher für 
     6; NEO uninteressant ist, kehren wir einfach wieder zurück. 
    57~F24::return 
    68 
  • windows/neo-vars/src/source/langstastatur.ahk

    r1917 r2407  
     1; -*- encoding: utf-8 -*- 
     2 
    13IniRead,LangSTastatur,%ini%,Global,LangSTastatur,0 
    24If (LangSTastatur) 
     
    1214    CharProc__LnS1() 
    1315    if (zeigeModusBox) 
    14       TrayTip,Lang-S-Tastatur,Die Lang-S-Belegungsvariante wurde aktiviert. Zum Deaktivieren`, Mod3+F11 drcken.,10,1 
     16      TrayTip,Lang-S-Tastatur,Die Lang-S-Belegungsvariante wurde aktiviert. Zum Deaktivieren`, Mod3+F11 drücken.,10,1 
    1517  } else { 
    1618    CharProc__LnS0() 
     
    2325  global 
    2426  ; Lange-s-Tastatur aktivieren 
    25   ED("VKBASC01A",1,"U000073","U001E9E","U0000DF",""       ,"U0003C2","U002218") ;  
     27  ED("VKBASC01A",1,"U000073","U001E9E","U0000DF",""       ,"U0003C2","U002218") ; ß 
    2628  ED("VK48SC023",1,"U00017F","U000053","U00003F","U0000BF","U0003C3","U0003A3") ; s 
    2729  NEONumLockLEDState := "On" 
     
    3234  global 
    3335  ; Lange-s-Tastatur deaktivieren 
    34   ED("VKBASC01A",1,"U0000DF","U001E9E","U00017F",""       ,"U0003C2","U002218") ;  
     36  ED("VKBASC01A",1,"U0000DF","U001E9E","U00017F",""       ,"U0003C2","U002218") ; ß 
    3537  ED("VK48SC023",1,"U000073","U000053","U00003F","U0000BF","U0003C3","U0003A3") ; s 
    3638  NEONumLockLEDState := "Off" 
    3739  UpdateNEOLEDS() 
    3840  if (zeigeModusBox) 
    39     TrayTip,Lange-s-Tastatur,Die Lange-s-Belegungsvariante wurde aktiviert. Zum Deaktivieren`, Mod3+F11 drcken.,10,1 
     41    TrayTip,Lange-s-Tastatur,Die Lange-s-Belegungsvariante wurde aktiviert. Zum Deaktivieren`, Mod3+F11 drücken.,10,1 
    4042} 
    4143 
  • windows/neo-vars/src/source/lernmodus.ahk

    r1788 r2407  
    1 ; die Nachfolgenden sind n�tzlich um sich die Qwertz-Tasten abzugew�hnen, da alle auf der 4. Ebene vorhanden. 
     1; -*- encoding: utf-8 -*- 
     2 
     3; die Nachfolgenden sind nützlich um sich die Qwertz-Tasten abzugewöhnen, da alle auf der 4. Ebene vorhanden. 
    24lernModus_std_Return := 0 
    35lernModus_std_Backspace := 0 
     
    2931    CharProc___LM1() 
    3032    if (zeigeModusBox) 
    31       TrayTip,NEO-Lernmodus,NEO-Lernmodus wurde aktiviert. Zum Deaktivieren`, Mod3+F9 drcken.,10,1 
     33      TrayTip,NEO-Lernmodus,NEO-Lernmodus wurde aktiviert. Zum Deaktivieren`, Mod3+F9 drücken.,10,1 
    3234  } else { 
    3335    CharProc___LM0() 
  • windows/neo-vars/src/source/levelfunctions.ahk

    r2297 r2407  
     1; -*- encoding: utf-8 -*- 
     2 
    13NEOEbeneAktualisieren() { 
    24  global 
     
    1618  ; isShiftPressed   01010101010101010101010101010101 
    1719 
    18   EbeneNC := SubStr("12123535444466664444353512126666",ModPos,1) ; Fr normale Tasten (reagieren nicht auf CapsLock) 
    19   EbeneC  := SubStr("12213535444466664444353512216666",ModPos,1) ; Fr Buchstaben     (reagieren       auf CapsLock) 
     20  EbeneNC := SubStr("12123535444466664444353512126666",ModPos,1) ; Für normale Tasten (reagieren nicht auf CapsLock) 
     21  EbeneC  := SubStr("12213535444466664444353512216666",ModPos,1) ; Für Buchstaben     (reagieren       auf CapsLock) 
    2022  Ebene7  := SubStr("00000000010100000101000000000000",ModPos,1) 
    2123  Ebene8  := SubStr("00000000000001010000000000000101",ModPos,1) 
     
    9193    } 
    9294    if (zeigeLockBox) 
    93       TrayTip,Mod4-Feststellung,Um Mod4 wieder zu l�sen`, dr�cke beide Mod4-Tasten gleichzeitig!,3,1 
     95      TrayTip,Mod4-Feststellung,Um Mod4 wieder zu lösen`, drücke beide Mod4-Tasten gleichzeitig!,3,1 
    9496  } 
    9597} 
  • windows/neo-vars/src/source/makecompose.ahk

    r2298 r2407  
    11; -*- encoding:utf-8 -*- 
    2 ; AHK versteht zwar kein utf-8, aber so lässt sich’s doch leichter eingeben. 
    3  
    42 
    53DefineXKBSym(name,val) { 
     
    19811979 
    19821980FileDelete,%OutputFile% 
    1983 FileAppend,CompRevision := "%CompRevision%"`r`n`r`nLoadDefaultCompose() {`r`n  global`r`n`r`n, %OutputFile%    ; } 
     1981FileAppend,`; -*- encoding: utf-8 -*-`r`n`r`nCompRevision := "%CompRevision%"`r`n`r`nLoadDefaultCompose() {`r`n  global`r`n`r`n, %OutputFile%    ; } 
    19841982 
    19851983loop %Numpars% { 
  • windows/neo-vars/src/source/nordtast.ahk

    r2405 r2407  
    1111    CharProcNordT1() 
    1212    if (zeigeModusBox) 
    13       TrayTip,NordTast-Belegungsvariante,Die Belegungsvariante NT wurde aktiviert. Zum Umschalten`, Mod3+F12 druecken.,10,1 
     13      TrayTip,NordTast-Belegungsvariante,Die Belegungsvariante NT wurde aktiviert. Zum Umschalten`, Mod3+F12 drücken.,10,1 
    1414  } else if (isNordTast == 1) { 
    1515    isNordTast := 2 
    1616    CharProcNordT2() 
    1717    if (zeigeModusBox) 
    18       TrayTip,NordTast-Belegungsvariante,Die Belegungsvariante AdNW wurde aktiviert. Zum Umschalten`, Mod3+F12 druecken.,10,1 
     18      TrayTip,NordTast-Belegungsvariante,Die Belegungsvariante AdNW wurde aktiviert. Zum Umschalten`, Mod3+F12 drücken.,10,1 
    1919  } else if (isNordTast == 2) { 
    2020    isNordTast := 3 
    2121    CharProcNordT3() 
    2222    if (zeigeModusBox) 
    23       TrayTip,NordTast-Belegungsvariante,Die Belegungsvariante DIEgO wurde aktiviert. Zum Umschalten`, Mod3+F12 druecken.,10,1 
     23      TrayTip,NordTast-Belegungsvariante,Die Belegungsvariante DIEgO wurde aktiviert. Zum Umschalten`, Mod3+F12 drücken.,10,1 
    2424  } else { 
    2525    isNordTast := 0 
  • windows/neo-vars/src/source/performance.ahk

    r1251 r2407  
     1; -*- encoding: utf-8 -*- 
     2 
    13#MaxThreadsPerHotKey 1 
    24Thread,Interrupt,-1,-1 
  • windows/neo-vars/src/source/resources.ahk

    r1866 r2407  
     1; -*- encoding: utf-8 -*- 
     2 
    13EnvGet, WindowsEnvTempFolder, TEMP 
    24ResourceFolder = %WindowsEnvTempFolder%\Neo2 
  • windows/neo-vars/src/source/screenkeyboard.ahk

    r2402 r2407  
    2424  global 
    2525  if (useDBST) { 
    26     if (!useBST and (Comp != "")) { 
     26    if (!useBST and ((Comp != "") or (EbeneC == 5) or (EbeneC == 6))) { 
    2727      useBST := 1 
    2828      BSTLastComp := "" 
    2929      CharProc__BST1() 
     30    } else if (useBST and ((Comp == "") and (EbeneC != 5) and (EbeneC != 6))) { 
     31      useBST := 0 
     32      BSTLastComp := "" 
     33      CharProc__BST0() 
    3034    } 
    3135  } 
     
    3640           or (EbeneNC != BSTLastEbeneNC))) 
    3741    BSTUpdate() 
    38   if (useDBST) { 
    39     if (useBST and (Comp == "")) { 
    40       useBST := 0 
    41       BSTLastComp := "" 
    42       CharProc__BST0() 
    43     } 
    44   } 
    4542} 
    4643 
     
    163160  if (useDBST) { 
    164161    if (zeigeModusBox) 
    165       TrayTip,Dynamische Bildschirmtastatur,Die dynamische Bildschirmtastatur wurde aktiviert. Zum Deaktivieren`, Mod3+F3 druecken.,10,1 
     162      TrayTip,Dynamische Bildschirmtastatur,Die dynamische Bildschirmtastatur wurde aktiviert. Zum Deaktivieren`, Mod3+F3 drücken.,10,1 
    166163  } else { 
    167164    if (zeigeModusBox) 
     
    178175BSTOnSize() { 
    179176  global 
    180   Gui, Show, % "y" . yposition . " w" . A_GuiWidth . " h" . A_GuiWidth*199/729 . " NoActivate", Neo-Bildschirmtastatur 
    181   Gui, Font, % "s" . A_GuiWidth*12/729 . " bold", % UniFontName 
     177  Gui, Show, % "Y" . yposition . " W" . A_GuiWidth . " H" . Round(A_GuiWidth*199/729,0) . " NoActivate", Neo-Bildschirmtastatur 
     178  Gui, Font, % "s" . Round(A_GuiWidth*12/729,0) . " bold", % UniFontName 
    182179  loop,parse,GuiKeyList,`, 
    183180  { 
    184181    GuiPhysKey := A_LoopField 
    185182    GuiControl,Font,GuiKey%GuiPhysKey% 
    186     GuiControl,Move,GuiKey%GuiPhysKey%, % "x" . GuiPosx%GuiPhysKey%*A_GuiWidth/729 . " y" . GuiPosy%GuiPhysKey%*A_GuiWidth/729 . " w" . 38*A_GuiWidth/729 . " h" . 38*A_GuiWidth/729 
     183    GuiControl,Move,GuiKey%GuiPhysKey%, % "x" . Round(GuiPosx%GuiPhysKey%*A_GuiWidth/729,0) . " y" . Round(GuiPosy%GuiPhysKey%*A_GuiWidth/729,0) . " w" . Round(38*A_GuiWidth/729,0) . " h" . Round(38*A_GuiWidth/729,0) 
    187184  } 
    188185  GuiControl,,Picture0, % "*w" . A_GuiWidth . " *h-1 " . ResourceFolder . "\ebene0.png" 
  • windows/neo-vars/src/source/shortcuts.ahk

    r1903 r2407  
     1; -*- encoding: utf-8 -*- 
     2 
    13/* SHORTCUTS 
    2    Da in diesem AHK-Skript s�mtliche Tastendr�cke zur weiteren Verarbeitung 
    3    in Unicode- und Spezialzeichen umgewandelt werden, m�ssen sie f�r eine 
    4    effiziente Tasten-Ausgabe, wo m�glich, zur�ck gewandelt werden. Dazu 
     4   Da in diesem AHK-Skript sämtliche Tastendrücke zur weiteren Verarbeitung 
     5   in Unicode- und Spezialzeichen umgewandelt werden, müssen sie für eine 
     6   effiziente Tasten-Ausgabe, wo möglich, zurück gewandelt werden. Dazu 
    57   dienen Shortcuts: Soll beispielsweise das Unicode-Zeichen U0061 (kleines 
    68   a) ausgegeben werden, muss dieses durch "send {a}" ersetzt werden. Die 
    7    daf�r notwendigen R�ckwandlungskonstanten werden hier, teilweise 
     9   dafür notwendigen Rückwandlungskonstanten werden hier, teilweise 
    810   automatisiert, definiert und im entsprechenden Unterprogramm zur Anwendung 
    911   gebracht. 
    1012*/ 
    1113 
    12 ; ###### Shortcuts fr alle ASCII-Zeichen (0x21 bis 0x7E) 
     14; ###### Shortcuts für alle ASCII-Zeichen (0x21 bis 0x7E) 
    1315SetFormat, integer, hex 
    1416char := 0x21 
     
    3032 
    3133/**** die folgenden Shortcuts ersetzen die automatische Wahl entsprechender 
    32  **** down- und up-Sendezeichen, da die Zeichenerzeugung entweder aufwndiger 
     34 **** down- und up-Sendezeichen, da die Zeichenerzeugung entweder aufwändiger 
    3335 **** ist (wie bei den diversen toten Zeichen) oder schlicht mit AHK nicht 
    34  **** geht (wie das Key-Repeat der schlieenden Klammer). 
     36 **** geht (wie das Key-Repeat der schließenden Klammer). 
    3537*/ 
    3638DNCSU00007D := "{}}"                 ; "{} down}" geht nicht, warum auch immer 
     
    124126 
    125127/* 
    126   Jetzt noch ein paar Versch�nerungsabk�rzungen 
     128  Jetzt noch ein paar Verschönerungsabkürzungen 
    127129*/ 
    128130CBS____M2 := "Shift+" 
     
    138140CBT__grav := "Gravis" 
    139141CBT__cedi := "Cedille" 
    140 CBT__abdt := "Punkt darber" 
     142CBT__abdt := "Punkt darüber" 
    141143CBT__ogon := "Ogonek" 
    142144CBT__cflx := "Zircumflex" 
     
    148150CBT__drss := "Trema" 
    149151CBT__dbac := "Doppelakut" 
    150 CBT__strk := "Schrgstrich" 
     152CBT__strk := "Schrägstrich" 
    151153 
    152154CBU00005E := "^" 
    153155CBU000060 := "``" 
    154 CBU0000B4 := "" 
     156CBU0000B4 := "´" 
    155157CBCP1VK90SC145 := "Ntab" 
  • windows/neo-vars/src/source/tray.ahk

    r2303 r2407  
     1; -*- encoding: utf-8 -*- 
     2 
    13TrayAktivieren() { 
    24  global 
    35  menu,tray,icon,%ResourceFolder%\neo_enabled.ico,,1 
    46  menu,tray,nostandard 
    5   menu,tray,add,ffnen,open 
     7  menu,tray,add,Öffnen,open 
    68    menu,helpmenu,add,About,about 
    79    menu,helpmenu,add,Autohotkey-Hilfe,help 
     
    9395  ( 
    9496  %name%  
    95   `nDas Neo-Layout ersetzt das bliche deutsche  
     97  `nDas Neo-Layout ersetzt das übliche deutsche  
    9698  Tastaturlayout mit der Alternative Neo,  
    9799  beschrieben auf http://neo-layout.org/.  
    98   `nDazu sind keine Administratorrechte ntig.  
     100  `nDazu sind keine Administratorrechte nötig.  
    99101  `nWenn Autohotkey aktiviert ist, werden alle Tastendrucke  
    100   abgefangen und statt dessen eine bersetzung weitergeschickt.  
    101   `nDies geschieht transparent fr den Anwender,  
     102  abgefangen und statt dessen eine Übersetzung weitergeschickt.  
     103  `nDies geschieht transparent für den Anwender,  
    102104  es muss nichts installiert werden.  
    103   `nDie Zeichen�bersetzung kann leicht �ber das Icon im  
     105  `nDie Zeichenübersetzung kann leicht über das Icon im  
    104106  Systemtray deaktiviert werden.  `n 
    105107  ) 
  • windows/neo-vars/src/source/varsfunctions.ahk

    r2240 r2407  
     1; -*- encoding: utf-8 -*- 
     2 
    13#NoEnv 
    24 
     
    4850    CompNew := PP%PhysKey%           ; Von Tastaturwiederholung 
    4951  else 
    50     CompNew := Comp . char           ; Hngen wir mal das neue Zeichen zum Compositum an 
    51  
    52   if (CD%CompNew% != "") {           ; Compose hat getroffen: wird geschickt, Compose gelscht 
     52    CompNew := Comp . char           ; H�ngen wir mal das neue Zeichen zum Compositum an 
     53 
     54  if (CD%CompNew% != "") {           ; Compose hat getroffen: wird geschickt, Compose gel�scht 
    5355    tosend := CD%CompNew% 
    5456    PP%PhysKey% := CompNew 
     
    6062  } else if (CF%Comp% != "") { 
    6163    tosend := CF%Comp% 
    62     if (PR%PhysKey% != "") {         ; Eventuell vergessenen Key-Release aufrumen 
     64    if (PR%PhysKey% != "") {         ; Eventuell vergessenen Key-Release aufr�umen 
    6365      CharOutUp(PR%PhysKey%) 
    6466      PR%PhysKey% := "" 
     
    9193 
    9294  if (strlen(tosend) > 7) {          ; Ausgabe mehrerer Zeichen 
    93     if (PR%PhysKey% != "") {         ; Eventuell vergessenen Key-Release aufrumen 
     95    if (PR%PhysKey% != "") {         ; Eventuell vergessenen Key-Release aufr�umen 
    9496      CharOutUp(PR%PhysKey%) 
    9597      PR%PhysKey% := ""