NumLock-Bug behoben.

This commit is contained in:
martin_r 2008-08-21 21:35:48 +00:00
parent 030f71e5fb
commit e642e82c95
13 changed files with 1822 additions and 2419 deletions

View File

@ -1,4 +1,4 @@
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
ACHTUNG:
Damit alles ordentlich dargestellt wird, muss man für die Darstellung z. B. im
Texteditor eine dicktengleiche Schrift einstellen!
@ -157,7 +157,7 @@ Siehe auch http://de.wikipedia.org/wiki/Dezimaltrennzeichen
│ ↘3 ♫ │U ⇱ ∮│I ⇠ ∫│A ⇣ ∀│E ⇢ ∃│O ⇲ ∈│S ¿ Σ│N 4 │R 5 │T 6 ∂│D , Δ│Y . ∇│↘3 │ ↲ │
│ │u \ │i / ι│a { α│e } ε│o * ο│s ? σ│n ( ν│r ) ϱ│t - τ│d : δ│y @ υ│ │ │
├──────┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴─────┴─────┤
│Cps_Lk│↙4 │Ü ⌧ ∝│Ö ⇥ ℑ│Ä ⇟ │P ↲ Π│Z │B : ⇐│M 1 ⇔│ 2 ⇒│ 3 Θ│J ; ≡│ Caps_Lock │
│Cps_Lk│↙4 │Ü ⌧ ∝│Ö ⇥ ℑ│Ä ⇟ │P ↲ Π│Z │B : ⇐│M 1 ⇔│ 2 ⇒│ 3 Θ│J ; ≡│ Caps_Lock │
│Umsch │4Lock│ü # │ö $ │ä | η│p ~ π│z ` ζ│b + β│m % µ│, " ρ│. ' ϑ│j ; θ│ Umschalt │
├──────┼─────┴┬────┴─┬───┴─────┴─────┴─────┴─────┴─────┴────┬┴─────┼─────┴┬──────┬──────┤
│ Strg │ Fen- │ Alt │ Leerz.␣ 0 schmal.Lz.¦ │↙4 │ Fen- │ Menu │ Strg │
@ -247,44 +247,46 @@ Um die Vielseitigkeit und Funktionsfähigkeit der NEOTastatur zu gewährleist
sollten für alle Elemente auf dem Keypad wenn möglch die KP_Variante verwendet werden!
=== Legende Ziffernblock ===
┌─────┐ 1 … 1. Ebene (kein Mod)
│ 2 4 │ 2 … 2. Ebene (Umschalt)
│ 1 3 │ 3 … 3. Ebene (Mod3)
└─────┘ 4 … 5. Ebene (Mod3+Umschalt)
┌───────┐ 1 … 1. Ebene (kein Mod)
│ 2 4 6 │ 2 … 2. Ebene (Umschalt)
│ 1 3 5 │ 3 … 3. Ebene (Mod3)
└───────┘ 4 … 4. Ebene (Mod4)
5 … 5. Ebene (Mod3+Umschalt) (z.Zt. noch nicht belegt)
6 … 6. Ebene (Mod3+Mod4) (z.Zt. noch nicht belegt)
=== Rechenzeichen ===
┬─────┬ 1 … ASCII-Schrägstrich
│ 2 … ASCII-Schrägstrich
│ / ÷ │ 3 … Geteiltzeichen (U+00F7 DIVISION SIGN)
┼─────┼ 4 … Geteiltstrich (U+2215 DIVISION SLASH)
┬───────┬ 1 … ASCII-Schrägstrich
/ │ 2 … ASCII-Schrägstrich
│ / ÷ │ 3 … Geteiltzeichen (U+00F7 DIVISION SIGN)
┼───────┼ 4 … Geteiltstrich (U+2215 DIVISION SLASH)
┬─────┬ 1 … ASCII-Malzeichen
│ 2 … ASCII-Malzeichen
│ * × │ 3 … Malkreuz (U+00D7 MULTIPLICATION SIGN)
┼─────┼ 4 … Malpunkt (U+2219 BULLET OPERATOR)
┬───────┬ 1 … ASCII-Malzeichen
* × │ 2 … ASCII-Malzeichen
│ * ∙ │ 3 … Malpunkt (U+2219 BULLET OPERATOR)
┼───────┼ 4 … Malkreuz (U+00D7 MULTIPLICATION SIGN)
┬─────┐ 1 … ASCII-Minus
│ │ 2 … ASCII-Minus
│ - │ 3 … Minuszeichen (U+2212 MINUS SIGN)
┼─────┤
┬───────┐ 1 … ASCII-Minus
- │ 2 … ASCII-Minus
│ - │ 3 … Minuszeichen (U+2212 MINUS SIGN)
┼─────── 4 … Minuszeichen (U+2212 MINUS SIGN)
=== Alle Ebenen Ziffernblock ===
┌─────┬─────┬─────┬─────┐
│ ≠ ⍓ │ /frc│ * × │ - │ ⍓ turns on/off the keyboard mouse control
│ = ≈ │ / ÷ │ * ⋅ │ - - │ frc means fraction slash
├─────┼─────┼─────┼─────┤
│† Hom│∩ KP↑│⊗ PgU│
7 ↕│ 8 ↑│ 9 ∋│ + ∓
├─────┼─────┼─────┤ │
│⊂ KP←│€ Beg│⊃ KP→│ + ±
4 ←│ 5 ∞│ 6 →│
├─────┼─────┼─────┼─────┤
│✔ End│ KP↓│✗ PgD│ │
1 ↔│ 2 ↓ 3 ⇌│ │
├─────┴─────┼─────┤ │
Ins ‰ │Del S│ │ S: ,/. KP_Seperator
0 % │ , .│Enter
└───────────┴─────┴─────┘
┌──────────────┬──────────────┐
│ ≠ ⍓ │ / │ * × │ -
│ = ≈ │ / ÷ │ * ⋅ │ -
├──────────────┼──────────────┤
│† Hom │∩ KP↑ │⊗ PgD │
7 ↕ │8 ↑ │9 ∍ │
├──────────────┼───────
│⊂ KP← │€ Beg │⊃ KP→ │ + ∓
4 ← │5 ∞ │6 → │ + ±
├──────────────┼──────────────┤
│✔ End │∪ KP↓ │✗ PgD
│1 ↔ │2 3 ⇌
├──────────────┼───────
% Ins │. Del │ │
0 ‰ │, ,/. │ Enter
└───────────────┴──────────────┘
=== Erste Ebene Miniatur ===
┌───┬───┬───┬───┐
@ -309,20 +311,20 @@ sollten für alle Elemente auf dem Keypad wenn möglch die KP_Variante verwen
├───┼───┼───┼───┤
│ ✔ │ │ ✗ │ │
├───┴───┼───┤ │
Ins │Del│Ent│
% │ . │Ent│
└───────┴───┴───┘
=== Dritte Ebene Miniatur ===
┌───┬───┬───┬───┐
│ ≈ │ ÷ │ ∙ │ -
│ ≈ │ ÷ │ ∙ │
├───┼───┼───┼───┤
│ ↕ │ ↑ │ │ │
│ ↕ │ ↑ │ │ │
├───┼───┼───┤ │
│ ← │ ∞ │ → │ ± │
├───┼───┼───┼───┤
│ ↔ │ ↓ │ ⇌ │ │
├───┴───┼───┤ │
% │ . │Ent│
‰ │,/.│Ent│
└───────┴───┴───┘
=== Vierte Ebene Miniatur ===
@ -331,18 +333,18 @@ sollten für alle Elemente auf dem Keypad wenn möglch die KP_Variante verwen
├───┼───┼───┼───┤ frc means fraction slash
│Hom│KP↑│PgU│ │
├───┼───┼───┤ │
│KP←│Beg│KP→│ ∓ │
│KP←│Beg│KP→│ ∓ │ Beg invokes click of the keyboard mouse
├───┼───┼───┼───┤
│End│KP↓│PgD│ │
├───┴───┼───┤ │
‰ │,/.│Ent│
Ins │Del│Ent│
└───────┴───┴───┘
== Tipp ==
Trägt man unter Linux/Mac/BSD folgende Zeilen in die ~/.bashrc, ~/.zshrc oder
vergleichbares ein, bekommt man anschließend mittels Eingabe von »neo« oder
»num« die aktuelle Belegung in der Konsole angezeigt:
alias num='grep -m 1 -B 15 "┴─────┘" PFAD_ZUR_DATEI/neo20.txt'
alias num='grep -m 1 -B 15 "┴───────┘" PFAD_ZUR_DATEI/neo20.txt'
alias neo='grep -m 1 -B 15 "┴──────┘" PFAD_ZUR_DATEI/neo20.txt'
Dazu muss »PFAD_ZUR_DATEI« durch den Pfad zu dieser Datei ersetzt werden.
@ -386,7 +388,7 @@ Im Verzeichnis linux/bin sind umfangreichere Skripte mit größerer Funktionalit
== Zeichenerläuterungen zur Mat-/Nat-Ebene Ziffernblock ==
⊗ … Tensorprodukt ; Vektor in die Ebene zeigend (U2297)
∞ … unendlich (U221E)
∋ … enthält das Element (U220B)
∍ … enthält das Element (U220D)
== Hinweise zu Doppelbelegungen in Unicode ==
Griechische Minuskel und Majuskel besitzten in der Regel eine weitere Bedeutung, z.B.

View File

@ -1,4 +1,4 @@
21) Was spricht jetzt noch gegen eine „Veröffentlichung“ von Neo2? Es ist
21) Was spricht jetzt noch gegen eine „Veröffentlichung“ von Neo2? Es ist
doch nun bis auf minimalste Änderungen „fertig“.
23) Wie sollen die Modifier heißen? Mod3 und Mod4? Mod3 und ... oder wie?
@ -16,7 +16,6 @@
• auch wenn es z.B. unter OpenOffice nicht läuft: wir haben auch den
Ziffernblock belegt den sollte man also auch im Bild mit aufnehmen
== Themen für das IRC-Treffen am Montag ==
30) Homepage/Webpräsenz
c) Wir sollten Aufgaben verteilen (wer dokumentiert was, wer macht
@ -105,4 +104,4 @@ Man muss das ganze eben unter eine Lizenz stellen. Wenn die Lizenz "Mach damit,
Und wenn wir eine CreativeCommons-Lizenz nutzen wollen: ¿Welche? Ist z.B. die kommerzielle Nutzung erlaubt oder nicht darf z.B. Apple eine NEO2-Variante zum neuen Apple-Tastatur-Standard im OS 10.8 erklären und dann überteuerte, nur mit Apple-Rechnern funktionierende »NEO2ε«-Tastaturen verkaufen?
17. Juli 2008: Reihenfolge auf Ebene 6 tauschen: ⇐⇔⇒ statt ⇒⇔⇐ (siehe Mails »Re: [neo] Antrag: Aufnahme der spitzen Klammern« vom 09.07.2008 00:10)
41) Reihenfolge auf Ebene 6 tauschen: ⇐⇔⇒ statt ⇒⇔⇐ (siehe Mails »Re: [neo] Antrag: Aufnahme der spitzen Klammern« vom 09.07.2008 00:10)

View File

@ -116,7 +116,7 @@ Revision 558 (von Matthias Berg):
- Icon-Bug behoben
• Hotkeys dürfen nicht vor der folgenden Zeile stehen: »menu, tray, icon, neo.ico,,1«
- lernModus-Konfigurations-Bug behoben: or statt and(not).
- Ein paar leere Else-Fälle eingebaut (um die Verständlichkeit zu erhöhen und mögliche Compilerprobleme vermeiden).
- Ein paar leere Else-Fälle eingebaut (um die Verständlichkeit zu erhöhen und mögliche Compilerprobleme zu vermeiden).
Revision 556 (von Matthias Berg):
- lernModus (an/aus mit Strg+Komma)
• im Skript konfigurierbar.

View File

@ -11,8 +11,6 @@
------------------------------------------------------
*/
#Include %a_scriptdir%\Warning.ahk
#Include %a_scriptdir%\Global-Part.ahk
#Include %a_scriptdir%\Methods-Layers.ahk
@ -22,7 +20,6 @@
#Include %a_scriptdir%\Methods-Other.ahk
#Include %a_scriptdir%\Methods-Unicode.ahk
#Include %a_scriptdir%\Methods-ScreenKeyboard.ahk
; Eines schönen Tages sollten auch die Compose-Kombinationen automatisch aus der Referenz erzeugt werden. Derzeitig gibt es nur den (höchst instabilen und experimentellen!) Compose-Playground:
;#Include *i %a_scriptdir%\..\Compose\Compose-all-in-one.ahk

View File

@ -1,4 +1,28 @@
SetNumLockState AlwaysOff
/******************
* Initialisierung *
*******************
*/
DeadKey = ""
CompKey = ""
PriorDeadKey = ""
PriorCompKey = ""
Ebene12 = 0
noCaps = 0
EbeneAktualisieren()
SetBatchLines -1
SetCapsLockState Off
SetNumLockState Off
SetScrollLockState Off
name=Neo 2.0 (%A_ScriptName%)
enable=Aktiviere %name%
disable=Deaktiviere %name%
#usehook on
#singleinstance force
#LTrim ; Quelltext kann eingerückt werden,
Process,Priority,,High
SendMode Input
/****************
* Verzeichnisse *
@ -13,74 +37,245 @@ FileCreateDir, %ResourceFolder%
EnvGet, WindowsEnvAppDataFolder, APPDATA
ApplicationFolder = %WindowsEnvAppDataFolder%\NEO2
FileCreateDir, %ApplicationFolder%
ini = %ApplicationFolder%\NEO2.ini
/*******************
* Globale Schalter *
********************
*/
; Im folgenden gilt (soweit nicht anders angegeben) Ja = 1, Nein = 0:
; Syntaxhinweis: IniRead, Variable, InputFilename, Section, Key [, DefaultValue]
; 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)
bildschirmTastaturEinbinden := 1
; Syntaxhinweis: IniRead, Variable, InputFilename, Section, Key [, DefaultValue]
; Sollen Ebenen 1-4 ignoriert werden (kann z.B. vom dll Treiber übernommen werden)?
IniRead, ahkTreiberKombi, %ApplicationFolder%\NEO2.ini, Global, ahkTreiberKombi, 0
IniRead,ahkTreiberKombi,%ini%,Global,ahkTreiberKombi,0
; Soll der Treiber im Einhandmodus betrieben werden?
IniRead, einHandNeo, %ApplicationFolder%\NEO2.ini, Global, einHandNeo, 0
IniRead,einHandNeo,%ini%,Global,einHandNeo,0
; Soll der Lernmodus aktiviert werden?
IniRead, lernModus, %ApplicationFolder%\NEO2.ini, Global, lernModus, 0
IniRead,lernModus,%ini%,Global,lernModus,0
; Soll mit einer MsgBox explizit auf das Ein- und Ausschalten des Mod4-Locks hingewiesen werden?
IniRead, zeigeLockBox, %ApplicationFolder%\NEO2.ini, Global, zeigeLockBox, 1
IniRead,zeigeLockBox,%ini%,Global,zeigeLockBox,1
; Soll aktivierter Mod4-Lock über die Rollen-LED des Keybord angezeigt werden (analog zu CapsLock)?
IniRead, UseMod4Light, %ApplicationFolder%\NEO2.ini, Global, UseMod4Light, 1
IniRead,UseMod4Light,%ini%,Global,UseMod4Light,1
; Soll Lang-s auf s, s auf ß und ß auf Lang-s gelegt (bzw. vertauscht) werden?
IniRead, LangSTastatur, %ApplicationFolder%\NEO2.ini, Global, LangSTastatur, 0
IniRead,LangSTastatur,%ini%,Global,LangSTastatur,0
If LangSTastatur
KeyboardLED(2,"on")
; Sollen tote Tasten blind angezeigt werden?
IniRead, DeadCompose, %ApplicationFolder%\NEO2.ini, Global, DeadCompose, 0
IniRead,DeadCompose,%ini%,Global,DeadCompose,0
;Sollen Compose-Tasten blind angezeigt werden?
IniRead, DeadSilence, %ApplicationFolder%\NEO2.ini, Global, DeadSilence, 0
IniRead,DeadSilence,%ini%,Global,DeadSilence,0
/***********************
* Recourcen-Verwaltung *
************************
*/
if(FileExist("ResourceFolder") <> false) {
if(FileExist("ResourceFolder")<>false){
; Versuche, alle möglicherweise in die EXE eingebundenen Dateien zu extrahieren
FileInstall, neo.ico, %ResourceFolder%\neo.ico, 1
FileInstall, neo_disabled.ico, %ResourceFolder%\neo_disabled.ico, 1
iconBenutzen = 1
if (bildschirmTastaturEinbinden==1) {
FileInstall, ebene1.png, %ResourceFolder%\ebene1.png, 1
FileInstall, ebene2.png, %ResourceFolder%\ebene2.png, 1
FileInstall, ebene3.png, %ResourceFolder%\ebene3.png, 1
FileInstall, ebene4.png, %ResourceFolder%\ebene4.png, 1
FileInstall, ebene5.png, %ResourceFolder%\ebene5.png, 1
FileInstall, ebene6.png, %ResourceFolder%\ebene6.png, 1
zeigeBildschirmTastatur = 1
FileInstall,neo.ico,%ResourceFolder%\neo.ico,1
FileInstall,neo_disabled.ico,%ResourceFolder%\neo_disabled.ico,1
iconBenutzen=1
if (bildschirmTastaturEinbinden=1){
FileInstall,ebene1.png,%ResourceFolder%\ebene1.png,1
FileInstall,ebene2.png,%ResourceFolder%\ebene2.png,1
FileInstall,ebene3.png,%ResourceFolder%\ebene3.png,1
FileInstall,ebene4.png,%ResourceFolder%\ebene4.png,1
FileInstall,ebene5.png,%ResourceFolder%\ebene5.png,1
FileInstall,ebene6.png,%ResourceFolder%\ebene6.png,1
zeigeBildschirmTastatur=1
}
} else {
MsgBox, "Das Verzeichnis %ResourceFolder% konnte nicht angelegt werden!" ; Diese Zeile dient nur der eventuellen Fehlersuche und sollte eigentlich niemals auftauchen.
}else{
MsgBox,"Das Verzeichnis %ResourceFolder% konnte nicht angelegt werden!" ; Diese Zeile dient nur der eventuellen Fehlersuche und sollte eigentlich niemals auftauchen.
}
; Benutze die Dateien auch dann, wenn sie eventuell im aktuellen Verzeichnis vorhanden sind
if ( FileExist("ebene1.png") && FileExist("ebene2.png") && FileExist("ebene3.png") && FileExist("ebene4.png") && FileExist("ebene5.png") && FileExist("ebene6.png") )
zeigeBildschirmTastatur = 1
if ( FileExist("neo.ico") && FileExist("neo_disabled.ico") )
iconBenutzen = 1
if(FileExist("ebene1.png")&&FileExist("ebene2.png")&&FileExist("ebene3.png")&&FileExist("ebene4.png")&&FileExist("ebene5.png")&&FileExist("ebene6.png"))
zeigeBildschirmTastatur=1
if(FileExist("neo.ico")&&FileExist("neo_disabled.ico"))
iconBenutzen=1
/*******************************************
* Überprüfung auf deutsches Tastaturlayout *
********************************************
*/
regread,inputlocale,HKEY_CURRENT_USER,Keyboard Layout\Preload,1
regread,inputlocalealias,HKEY_CURRENT_USER,Keyboard Layout\Substitutes,%inputlocale%
if inputlocalealias<>inputlocale=%inputlocalealias%
if inputlocale<>00000407
{
suspend
regread,inputlocale,HKEY_LOCAL_MACHINE,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\%inputlocale%,Layout Text
msgbox, 48, Warnung!,
(
Nicht kompatibles Tastaturlayout:
`t%inputlocale%
`nDas deutsche QWERTZ muss als Standardlayout eingestellt
sein, damit %name% wie erwartet funktioniert.
`nÄndern Sie die Tastatureinstellung unter
`tSystemsteuerung
`t-> Regions- und Sprachoptionen
`t-> Sprachen
`t-> Details... `n
)
exitapp
}
/*************************
* Menü des Systray-Icons *
**************************
*/
if (iconBenutzen)
menu,tray,icon,%ResourceFolder%\neo.ico,,1
menu,tray,nostandard
menu,tray,add,Öffnen,open
menu,helpmenu,add,About,about
menu,helpmenu,add,Autohotkey-Hilfe,help
menu,helpmenu,add
menu,helpmenu,add,http://autohotkey.com/,autohotkey
menu,helpmenu,add,http://www.neo-layout.org/,neo
menu,tray,add,Hilfe,:helpmenu
menu,tray,add
menu,tray,add,%disable%,togglesuspend
menu,tray,add
menu,tray,add,Bearbeiten,edit
menu,tray,add,Neu Laden,reload
menu,tray,add
menu,tray,add,Nicht im Systray anzeigen,hide
menu,tray,add,%name% beenden, exitprogram
menu,tray,default,%disable%
menu,tray,tip,%name%
/**********************
* Tastenkombinationen *
***********************
*/
;Blinde/Sichtbare Tote Tasten
*F9::
if (isMod4pressed())
DeadSilence := not(DeadSilence)
else
send {blind}{F9}
return
;Blinde/Sichtbare Compose
*F10::
if (isMod4pressed())
DeadCompose := not(DeadCompose)
else
send {blind}{F10}
return
;Lang-s-Tastatur:
*F11::
if (isMod4pressed()){
LangSTastatur := not(LangSTastatur)
if LangSTastatur
KeyboardLED(2,"on")
else KeyboardLED(2,"off")
}
else
send {blind}{F11}
return
;Alle Modi und Locks in den Normalzustand versetzen
;bzw. Skript neu laden:
*Esc::
if (isMod4pressed())
reload
else
send {blind}{Esc}
return
*pause::
Suspend, Permit
if isShiftpressed()
goto togglesuspend
else=
send {blind}{pause}
return
/*****************
* Menüfunktionen *
******************
*/
togglesuspend:
if A_IsSuspended
{
menu, tray, rename, %enable%, %disable%
menu, tray, tip, %name%
if (iconBenutzen)
menu, tray, icon, %ResourceFolder%\neo.ico,,1
suspend , off ; Schaltet Suspend aus -> NEO
}
else
{
menu, tray, rename, %disable%, %enable%
menu, tray, tip, %name% : Deaktiviert
if (iconBenutzen)
menu, tray, icon, %ResourceFolder%\neo_disabled.ico,,1
suspend , on ; Schaltet Suspend ein -> QWERTZ
}
return
help:
Run, %A_WinDir%\hh mk:@MSITStore:autohotkey.chm
return
about:
msgbox, 64, %name% Ergonomische Tastaturbelegung,
(
%name%
`nDas Neo-Layout ersetzt das übliche deutsche
Tastaturlayout mit der Alternative Neo,
beschrieben auf http://neo-layout.org/.
`nDazu sind keine Administratorrechte nötig.
`nWenn Autohotkey aktiviert ist, werden alle Tastendrucke
abgefangen und statt dessen eine Übersetzung weitergeschickt.
`nDies geschieht transparent für den Anwender,
es muss nichts installiert werden.
`nDie Zeichenübersetzung kann leicht über das Icon im
Systemtray deaktiviert werden. `n
)
return
neo:
run http://neo-layout.org/
return
autohotkey:
run http://autohotkey.com/
return
open:
ListLines ; shows the Autohotkey window
return
edit:
edit
return
reload:
Reload
return
hide:
menu, tray, noicon
return
exitprogram:
exitapp
return
/**************************
* lernModus Konfiguration *
@ -89,6 +284,8 @@ if ( FileExist("neo.ico") && FileExist("neo_disabled.ico") )
* Strg+Komma schaltet um *
***************************
*/
^,::lernModus := not(lernModus)
; 0 = aus, 1 = an
; die Nachfolgenden sind nützlich um sich die Qwertz-Tasten abzugewöhnen, da alle auf der 4. Ebene vorhanden.
@ -111,90 +308,13 @@ lernModus_std_ZahlenReihe = 0
lernModus_neo_Backspace = 0
lernModus_neo_Entf = 1
; aus Noras Skript kopiert:
Process,Priority,,High
#usehook on
#singleinstance force
#LTrim
; Quelltext kann eingerückt werden,
; msgbox ist trotzdem linksbündig
SetTitleMatchMode 2
SendMode Input
name = Neo 2.0
enable = Aktiviere %name%
disable = Deaktiviere %name%
; Überprüfung auf deutsches Tastaturlayout
; ----------------------------------------
regread, inputlocale, HKEY_CURRENT_USER, Keyboard Layout\Preload, 1
regread, inputlocalealias, HKEY_CURRENT_USER
, Keyboard Layout\Substitutes, %inputlocale%
if inputlocalealias <>
inputlocale = %inputlocalealias%
if inputlocale <> 00000407
{
suspend
regread, inputlocale, HKEY_LOCAL_MACHINE
, SYSTEM\CurrentControlSet\Control\Keyboard Layouts\%inputlocale%
, Layout Text
msgbox, 48, Warnung!,
(
Nicht kompatibles Tastaturlayout:
`t%inputlocale%
`nDas deutsche QWERTZ muss als Standardlayout eingestellt
sein, damit %name% wie erwartet funktioniert.
`nÄndern Sie die Tastatureinstellung unter
`tSystemsteuerung
`t-> Regions- und Sprachoptionen
`t-> Sprachen
`t-> Details... `n
)
exitapp
}
; Menü des Systray-Icons
; ----------------------
if (iconBenutzen)
menu, tray, icon, %ResourceFolder%\neo.ico,,1
menu, tray, nostandard
menu, tray, add, Öffnen, open
menu, helpmenu, add, About, about
menu, helpmenu, add, Autohotkey-Hilfe, help
menu, helpmenu, add
menu, helpmenu, add, http://&autohotkey.com/, autohotkey
menu, helpmenu, add, http://www.neo-layout.org/, neo
menu, tray, add, Hilfe, :helpmenu
menu, tray, add
menu, tray, add, %disable%, togglesuspend
menu, tray, default, %disable%
menu, tray, add
menu, tray, add, Edit, edit
menu, tray, add, Reload, reload
menu, tray, add
menu, tray, add, Nicht im Systray anzeigen, hide
menu, tray, add, %name% beenden, exitprogram
menu, tray, tip, %name%
/*
Variablen initialisieren
/****************************
* EinHandNeo *
* Umschalten mit Strg+Punkt *
*****************************
*/
^.::einHandNeo := not(einHandNeo)
DeadKey = ""
CompKey = ""
PriorDeadKey = ""
PriorCompKey = ""
Ebene12 = 0
EbeneAktualisieren()
/*
EinHandNeo
*/
spacepressed := 0
keypressed:= 0
@ -230,129 +350,3 @@ gespiegelt_punkt = neo_
gespiegelt_j = neo_ü
;Blinde/Sichtbare Tote Tasten
*F9::
if (isMod4pressed())
DeadSilence := not(DeadSilence)
else
send {blind}{F9}
return
;Blinde/Sichtbare Compose
*F10::
if (isMod4pressed())
DeadCompose := not(DeadCompose)
else
send {blind}{F10}
return
;Lang-s-Tastatur:
*F11::
if (isMod4pressed())
LangSTastatur := not(LangSTastatur) ; schaltet die Lang-s-Tastatur ein und aus
else
send {blind}{F11}
return
*Esc::
if (isMod4pressed())
reload
else
send {blind}{Esc}
return
/*
------------------------------------------------------
Shift+Pause "pausiert" das Skript.
------------------------------------------------------
*/
*pause::
Suspend, Permit
if isshiftpressed()
goto togglesuspend
else
send {blind}{pause}
return
; ------------------------------------
^.::einHandNeo := not(einHandNeo) ; Punkt
^,::lernModus := not(lernModus) ; Komma
togglesuspend:
if A_IsSuspended
{
menu, tray, rename, %enable%, %disable%
menu, tray, tip, %name%
if (iconBenutzen)
menu, tray, icon, %ResourceFolder%\neo.ico,,1
suspend , off ; Schaltet Suspend aus -> NEO
}
else
{
menu, tray, rename, %disable%, %enable%
menu, tray, tip, %name% : Deaktiviert
if (iconBenutzen)
menu, tray, icon, %ResourceFolder%\neo_disabled.ico,,1
suspend , on ; Schaltet Suspend ein -> QWERTZ
}
return
help:
Run, %A_WinDir%\hh mk:@MSITStore:autohotkey.chm
return
about:
msgbox, 64, %name% Ergonomische Tastaturbelegung,
(
%name%
`nDas Neo-Layout ersetzt das übliche deutsche
Tastaturlayout mit der Alternative Neo,
beschrieben auf http://neo-layout.org/.
`nDazu sind keine Administratorrechte nötig.
`nWenn Autohotkey aktiviert ist, werden alle Tastendrucke
abgefangen und statt dessen eine Übersetzung weitergeschickt.
`nDies geschieht transparent für den Anwender,
es muss nichts installiert werden.
`nDie Zeichenübersetzung kann leicht über das Icon im
Systemtray deaktiviert werden. `n
)
return
neo:
run http://neo-layout.org/
return
autohotkey:
run http://autohotkey.com/
return
open:
ListLines ; shows the Autohotkey window
return
edit:
edit
return
reload:
Reload
return
hide:
menu, tray, noicon
return
exitprogram:
exitapp
return


File diff suppressed because it is too large Load Diff

View File

@ -61,10 +61,6 @@ IsMod4Locked := 0
}
return
Ebene12 := 0
Ebene7 := 0
Ebene8 := 0
EbeneAktualisieren()
{
global
@ -73,6 +69,8 @@ EbeneAktualisieren()
DeadKey := ""
CompKey := ""
Modstate := IsMod4Pressed() . IsMod3Pressed() . IsShiftPressed()
Ebene7 := 0
Ebene8 := 0
if ahkTreiberKombi
if ( Modstate = "001")
Ebene = 6
@ -103,23 +101,23 @@ EbeneAktualisieren()
}
Ebene12 := ((Ebene = 1) or (Ebene = 2))
Ebene14 := ((Ebene = 1) or (Ebene = 4))
GetKeyState("NumLock","T")
NumLock := GetKeyState("NumLock","T")
}
IsShiftPressed()
{
global
if GetKeyState("Shift","P")
if isMod2Locked
if isMod2Locked and !noCaps
return 0
else
return 1
else
if isMod2Locked
if isMod2Locked and !noCaps
return 1
else
return 0
noCaps = 0
}
IsMod3Pressed()

View File

@ -20,55 +20,49 @@
------------------------------------------------------
*/
KeyboardLED(LEDvalue, Cmd) ; LEDvalue: ScrollLock=1, NumLock=2, CapsLock=4 ; Cmd = on/off/switch
{
KeyboardLED(LEDvalue, Cmd){ ; LEDvalue: ScrollLock=1, NumLock=2, CapsLock=4 ; Cmd = on/off/switch
Static h_device
If ! h_device ; initialise
{
device =\Device\KeyBoardClass0
{
device=\Device\KeyBoardClass0
SetUnicodeStrLED(fn,device)
h_device:=NtCreateFileLED(fn,0+0x00000100+0x00000080+0x00100000,1,1,0x00000040+0x00000020,0)
}
VarSetCapacity( output_actual, 4, 0 )
input_size = 4
VarSetCapacity( input, input_size, 0 )
If Cmd= switch ;switches every LED according to LEDvalue
KeyLED:= LEDvalue
If Cmd= on ;forces all choosen LED's to ON (LEDvalue= 0 ->LED's according to keystate)
KeyLED:= LEDvalue | (GetKeyState("ScrollLock", "T") + 2*GetKeyState("NumLock", "T") + 4*GetKeyState("CapsLock", "T"))
If Cmd= off ;forces all choosen LED's to OFF (LEDvalue= 0 ->LED's according to keystate)
}
VarSetCapacity(output_actual,4,0)
input_size=4
VarSetCapacity(input,input_size,0)
If Cmd=switch ;switches every LED according to LEDvalue
KeyLED:=LEDvalue
If Cmd=on ;forces all choosen LED's to ON (LEDvalue= 0 ->LED's according to keystate)
KeyLED:=LEDvalue | (GetKeyState("ScrollLock", "T") + 2*GetKeyState("NumLock", "T") + 4*GetKeyState("CapsLock", "T"))
If Cmd=off ;forces all choosen LED's to OFF (LEDvalue= 0 ->LED's according to keystate)
{
LEDvalue:= LEDvalue ^ 7
KeyLED:= LEDvalue & (GetKeyState("ScrollLock", "T") + 2*GetKeyState("NumLock", "T") + 4*GetKeyState("CapsLock", "T"))
LEDvalue:=LEDvalue ^ 7
KeyLED:=LEDvalue & (GetKeyState("ScrollLock","T") + 2*GetKeyState("NumLock","T") + 4*GetKeyState("CapsLock","T"))
}
; EncodeIntegerLED( KeyLED, 1, &input, 2 ) ;input bit pattern (KeyLED): bit 0 = scrolllock ;bit 1 = numlock ;bit 2 = capslock
input := Chr(1) Chr(1) Chr(KeyLED)
input := Chr(1)
; EncodeIntegerLED(KeyLED,1,&input,2) ;input bit pattern (KeyLED): bit 0 = scrolllock ;bit 1 = numlock ;bit 2 = capslock
input:=Chr(1) Chr(1) Chr(KeyLED)
input:=Chr(1)
input=
success := DllCall( "DeviceIoControl"
, "uint", h_device
, "uint", CTL_CODE_LED( 0x0000000b ; FILE_DEVICE_KEYBOARD
, 2
, 0 ; METHOD_BUFFERED
, 0 ) ; FILE_ANY_ACCESS
, "uint", &input
, "uint", input_size
, "uint", 0
, "uint", 0
, "uint", &output_actual
, "uint", 0 )
success:=DllCall("DeviceIoControl"
, "uint", h_device
, "uint", CTL_CODE_LED( 0x0000000b ; FILE_DEVICE_KEYBOARD
, 2
, 0 ; METHOD_BUFFERED
, 0 ) ; FILE_ANY_ACCESS
, "uint", &input
, "uint", input_size
, "uint", 0
, "uint", 0
, "uint", &output_actual
, "uint", 0 )
}
CTL_CODE_LED( p_device_type, p_function, p_method, p_access )
{
CTL_CODE_LED(p_device_type,p_function,p_method,p_access ){
Return, ( p_device_type << 16 ) | ( p_access << 14 ) | ( p_function << 2 ) | p_method
}
NtCreateFileLED(ByRef wfilename,desiredaccess,sharemode,createdist,flags,fattribs)
{
NtCreateFileLED(ByRef wfilename,desiredaccess,sharemode,createdist,flags,fattribs){
VarSetCapacity(fh,4,0)
VarSetCapacity(objattrib,24,0)
VarSetCapacity(io,8,0)
@ -84,23 +78,19 @@ NtCreateFileLED(ByRef wfilename,desiredaccess,sharemode,createdist,flags,fattrib
return ExtractIntegerLED(fh)
}
SetUnicodeStrLED(ByRef out, str_)
{
SetUnicodeStrLED(ByRef out, str_){
VarSetCapacity(st1, 8, 0)
InsertIntegerLED(0x530025, st1)
VarSetCapacity(out, (StrLen(str_)+1)*2, 0)
DllCall("wsprintfW", "str", out, "str", st1, "str", str_, "Cdecl UInt")
}
ExtractIntegerLED(ByRef pSource, pOffset = 0, pIsSigned = false, pSize = 4)
ExtractIntegerLED(ByRef pSource, pOffset = 0, pIsSigned = false, pSize = 4){
; pSource is a string (buffer) whose memory area contains a raw/binary integer at pOffset.
; The caller should pass true for pSigned to interpret the result as signed vs. unsigned.
; pSize is the size of PSource's integer in bytes (e.g. 4 bytes for a DWORD or Int).
; pSource must be ByRef to avoid corruption during the formal-to-actual copying process
; (since pSource might contain valid data beyond its first binary zero).
{
Loop %pSize% ; Build the integer by adding up its bytes.
result += *(&pSource + pOffset + A_Index-1) << 8*(A_Index-1)
if (!pIsSigned OR pSize > 4 OR result < 0x80000000)
@ -109,11 +99,9 @@ ExtractIntegerLED(ByRef pSource, pOffset = 0, pIsSigned = false, pSize = 4)
return -(0xFFFFFFFF - result + 1)
}
InsertIntegerLED(pInteger, ByRef pDest, pOffset = 0, pSize = 4)
InsertIntegerLED(pInteger, ByRef pDest, pOffset = 0, pSize = 4){
; The caller must ensure that pDest has sufficient capacity. To preserve any existing contents in pDest,
; only pSize number of bytes starting at pOffset are altered in it.
{
Loop %pSize% ; Copy each byte in the integer into the structure as raw binary data.
DllCall("RtlFillMemory", "UInt", &pDest + pOffset + A_Index-1, "UInt", 1, "UChar", pInteger >> 8*(A_Index-1) & 0xFF)
}

View File

@ -1,159 +1,95 @@
BSSendUnicodeChar(charCode)
{
send {bs}
SendUnicodeChar(charCode)
}
CompUnicodeChar(charCode)
{
send {bs}
SendUnicodeChar(charCode)
}
Comp3UnicodeChar(charCode)
{
send {bs}{bs}
SendUnicodeChar(charCode)
}
deadAsc(val)
{
deadAsc(val){
global
if (DeadSilence)
{} ; keine Ausgabe
else
send % "{blind}" . val
if!(DeadSilence)
send % val
}
deadUni(val)
{
deadUni(val){
global
if (DeadSilence)
{} ; keine Ausgabe
else
if!(DeadSilence)
SendUnicodeChar(val)
}
undeadAsc(val)
{
undeadAsc(val){
global
if (DeadSilence)
send % "{blind}" . val
if(DeadSilence)
send % val
else
send % "{blind}{bs}" . val
send % "{bs}" . val
}
undeadUni(val)
{
undeadUni(val){
global
if (DeadSilence)
{} ; keine ausgabe
else
if!(DeadSilence)
send {bs}
SendUnicodeChar(val)
SendUnicodeChar(val)
}
CheckDeadAsc(d,val)
{
CheckDeadAsc(d,val){
global
if (PriorDeadKey == d)
{
if(PriorDeadKey == d){
undeadAsc(val)
return 1
}
else
return 0
}else return 0
}
CheckDeadUni(d,val)
{
CheckDeadUni(d,val){
global
if (PriorDeadKey == d)
{
if(PriorDeadKey == d){
undeadUni(val)
return 1
}
else
return 0
}else return 0
}
CheckDeadAsc12(d,val1,val2)
{
CheckDeadAsc12(d,val1,val2){
global
if (PriorDeadKey == d)
{
if ((Ebene = 1) and (val1 != ""))
{
if(PriorDeadKey == d){
if((Ebene = 1) and (val1 != "")){
undeadAsc(val1)
return 1
}
else if ((Ebene = 2) and (val2 != ""))
{
}else if((Ebene = 2) and (val2 != "")){
undeadAsc(val2)
return 1
}
else
return 0
}
else
return 0
}else return 0
}else return 0
}
CheckDeadUni12(d,val1,val2)
{
CheckDeadUni12(d,val1,val2){
global
if (PriorDeadKey == d)
{
if ((Ebene = 1) and (val1 != ""))
{
if(PriorDeadKey == d){
if((Ebene = 1) and (val1 != "")){
undeadUni(val1)
return 1
}
else if ((Ebene = 2) and (val2 != ""))
{
}else if((Ebene = 2) and (val2 != "")){
undeadUni(val2)
return 1
}
else
return 0
}
else
return 0
}else return 0
}else return 0
}
compAsc(val)
{
compAsc(val){
global
if (DeadCompose)
{} ; keine Ausgabe
else
send % "{blind}" . val
if!(DeadCompose)
send % val
}
compUni(val)
{
compUni(val){
global
if (DeadCompose)
{} ; keine Ausgabe
else
if!(DeadCompose)
SendUnicodeChar(val)
}
uncompAsc(val)
{
uncompAsc(val){
global
if (DeadCompose)
send % "{blind}" . val
else
send % "{blind}{bs}" . val
if(DeadCompose)
send % val
else send % "{bs}" . val
}
uncompUni(val)
{
global
if (DeadCompose)
{} ; keine ausgabe
else
if!(DeadCompose)
send {bs}
SendUnicodeChar(val)
}
@ -161,126 +97,91 @@ uncompUni(val)
uncomp3Uni(val)
{
global
if (DeadCompose)
{} ; keine ausgabe
else
if!(DeadCompose)
send {bs}{bs}
SendUnicodeChar(val)
}
CheckCompAsc(d,val)
{
CheckCompAsc(d,val){
global
if (PriorCompKey == d)
{
if(PriorCompKey == d){
uncompAsc(val)
return 1
}
else
return 0
}else return 0
}
CheckCompAsc12(d,val1,val2)
{
CheckCompAsc12(d,val1,val2){
global
if (PriorCompKey == d)
if ((Ebene = 1) and (val1 != ""))
{
if(PriorCompKey == d)
if((Ebene = 1) and (val1 != "")){
uncompAsc(val1)
return 1
}
else if ((Ebene = 2) and (val2 != ""))
{
}else if((Ebene = 2) and (val2 != "")){
uncompAsc(val2)
return 1
}
else
return 0
else
return 0
}else return 0
else return 0
}
CheckCompUni(d,val)
{
CheckCompUni(d,val){
global
if (PriorCompKey == d)
{
if(PriorCompKey == d){
uncompUni(val)
return 1
}
else
return 0
}else return 0
}
CheckCompUni12(d,val1,val2)
{
CheckCompUni12(d,val1,val2){
global
if (PriorCompKey == d)
{
if ((Ebene = 1) and (val1 != ""))
{
if(PriorCompKey == d){
if ((Ebene = 1) and (val1 != "")){
uncompUni(val1)
return 1
}
else if ((Ebene = 2) and (val2 != ""))
{
}else if((Ebene = 2) and (val2 != "")){
uncompUni(val2)
return 1
}
else
return 0
}
else
return 0
}else return 0
}else return 0
}
CheckComp3Uni(d,val)
{
CheckComp3Uni(d,val){
global
if (PriorCompKey == d)
{
if(PriorCompKey == d){
uncomp3Uni(val)
return 1
}
else
return 0
}else return 0
}
CheckComp3Uni12(d,val1,val2)
{
CheckComp3Uni12(d,val1,val2){
global
if (PriorCompKey == d)
{
if ((Ebene = 1) and (val1 != ""))
{
if(PriorCompKey == d){
if((Ebene = 1) and (val1 != "")){
uncomp3Uni(val1)
return 1
}
else if ((Ebene = 2) and (val2 != ""))
{
}else if((Ebene = 2) and (val2 != "")){
uncomp3Uni(val2)
return 1
}
else
return 0
}
else
return 0
}else return 0
}else return 0
}
outputChar(val1,val2)
{
outputChar(val1,val2){
global
if (Ebene = 1)
if(Ebene = 1)
c := val1
else
c := val2
if GetKeyState("Shift","P") and isMod2Locked
if GetKeyState("Shift","P") and isMod2Locked
send % "{blind}{Shift Up}" . c . "{Shift Down}"
else
send % "{blind}" . c
if (PriorDeadKey = "comp")
if(PriorDeadKey = "comp")
CompKey := c
}
checkComp(d){
if(PriorDeadKey = "comp"){
CompKey := d
return 1
}
}

View File

@ -3,67 +3,60 @@
BildschirmTastatur
------------------------------------------------------
*/
guiErstellt = 0
alwaysOnTop = 1
*F1::
if (isMod4Pressed() and zeigeBildschirmTastatur)
if(isMod4Pressed()&&zeigeBildschirmTastatur)
goto Switch1
else
send {blind}{F1}
else send {blind}{F1}
return
*F2::
if (isMod4Pressed() and zeigeBildschirmTastatur)
if(isMod4Pressed()&&zeigeBildschirmTastatur)
goto Switch2
else
send {blind}{F2}
else send {blind}{F2}
return
*F3::
if (isMod4Pressed() and zeigeBildschirmTastatur)
if(isMod4Pressed()&&zeigeBildschirmTastatur)
goto Switch3
else
send {blind}{F3}
else send {blind}{F3}
return
*F4::
if (isMod4Pressed() and zeigeBildschirmTastatur)
if(isMod4Pressed()&&zeigeBildschirmTastatur)
goto Switch4
else
send {blind}{F4}
else send {blind}{F4}
return
*F5::
if (isMod4Pressed() and zeigeBildschirmTastatur)
if(isMod4Pressed()&&zeigeBildschirmTastatur)
goto Switch5
else
send {blind}{F5}
else send {blind}{F5}
return
*F6::
if (isMod4Pressed() and zeigeBildschirmTastatur)
if(isMod4Pressed()&&zeigeBildschirmTastatur)
goto Switch6
else
send {blind}{F6}
else send {blind}{F6}
return
*F7::
if (isMod4Pressed() and zeigeBildschirmTastatur)
if(isMod4Pressed()&&zeigeBildschirmTastatur)
goto Show
else
send {blind}{F7}
else send {blind}{F7}
return
*F8::
if (isMod4Pressed() and zeigeBildschirmTastatur)
if(isMod4Pressed()&&zeigeBildschirmTastatur)
goto ToggleAlwaysOnTop
else
send {blind}{F8}
else send {blind}{F8}
return
Switch1:
tImage := ResourceFolder . "\ebene1.png"
tImage:=ResourceFolder . "\ebene1.png"
goto Switch
Return

View File

@ -2,71 +2,30 @@
------------------------------------------------------
Methoden zum Senden von Unicode-Zeichen
------------------------------------------------------
*/
/************************************************************
Alter Weg Copy/Paste über die Zwischenablage
************************************************************/
/*
Diese Variante sollte nicht mehr verwendet werden (könnte jedoch unter Umständen noch zu Testzwecken hilfreich sein).
hat den Vorteil, dass sie etwas kompatibler ist (es ist kein separater GTK-Workarround notwendig). Stefan zufolge wurde sie schon einmal getestet, dann jedoch wieder verworfen.
Das Problem war vor allem, daß bei einer etwas größeren Rechnerauslastung kein normales Schreiben mehr möglich war. Nicht nur, daß die Perfomanz sehr schlecht war (es dauerte lange, bis die Buchstaben überhaupt erschienen) -- viel schlimmer war, daß die Reihenfolge der Tastatureingabe nicht mehr eingehalten wurde, sondern die genommen wurde, die in der Zwischenablage war: genau umgekehrt.
*/
/*
Unicode(code)
{
saved_clipboard := ClipboardAll
Transform, Clipboard, Unicode, %code%
sendplay ^v
Clipboard := saved_clipboard
}
BSUnicode(code)
{
saved_clipboard := ClipboardAll
Transform, Clipboard, Unicode, %code%
sendplay {bs}^v
Clipboard := saved_clipboard
}
*/
/************************************************************
Neuer Weg Benutzung der entsprechenden Win32-API-Methode
************************************************************/
/*
Über den GTK-Workaround:
Dieser basiert auf http://www.autohotkey.com/forum/topic32947.html
Der Aufruf von »SubStr(charCode,3)« geht davon aus, dass alle charCodes in Hex mit führendem 0x angegeben sind. Die abenteuerliche ^+u-Konstruktion benötigt im Übrigen den Hex-Wert in Kleinschrift, was derzeit nicht bei den Zeichendefinitionen umgesetzt ist, daher zentral und weniger fehlerträchtig an dieser Stelle. Außerdem ein abschließend gesendetes Space, sonst bleibt der eingetippte Unicode-Wert noch kurz sichtbar stehen, bevor er sich GTK-sei-dank in das gewünschte Zeichen verwandelt.
*/
SendUnicodeChar(charCode)
{
IfWinActive, ahk_class gdkWindowToplevel
{
StringLower, charCode, charCode
send % "^+u" . SubStr(charCode,3) . " "
} else {
VarSetCapacity(ki, 28 * 2, 0)
EncodeInteger(&ki + 0, 1)
EncodeInteger(&ki + 6, charCode)
EncodeInteger(&ki + 8, 4)
EncodeInteger(&ki +28, 1)
EncodeInteger(&ki +34, charCode)
EncodeInteger(&ki +36, 4|2)
DllCall("SendInput", "UInt", 2, "UInt", &ki, "Int", 28)
}
SendUnicodeChar(charCode){
IfWinActive,ahk_class gdkWindowToplevel
{
StringLower,charCode,charCode
send % "^+u" . SubStr(charCode,3) . " "
}else{
VarSetCapacity(ki,28*2,0)
EncodeInteger(&ki+0,1)
EncodeInteger(&ki+6,charCode)
EncodeInteger(&ki+8,4)
EncodeInteger(&ki+28,1)
EncodeInteger(&ki+34,charCode)
EncodeInteger(&ki+36,4|2)
DllCall("SendInput","UInt",2,"UInt",&ki,"Int",28)
}
}
EncodeInteger(ref, val)
{
DllCall("ntdll\RtlFillMemoryUlong", "Uint", ref, "Uint", 4, "Uint", val)
EncodeInteger(ref,val){
DllCall("ntdll\RtlFillMemoryUlong","Uint",ref,"Uint",4,"Uint",val)
}

File diff suppressed because it is too large Load Diff

Binary file not shown.