From bbffbdc10fd32f314a48a070f4725e78a3c60659 Mon Sep 17 00:00:00 2001 From: martin_r Date: Thu, 21 Aug 2008 21:35:48 +0000 Subject: NumLock-Bug behoben. git-svn-id: https://svn.neo-layout.org@789 b9310e46-f624-0410-8ea1-cfbb3a30dc96 --- windows/autohotkey/Source/Global-Part.ahk | 432 +++++++++++++++--------------- 1 file changed, 213 insertions(+), 219 deletions(-) (limited to 'windows/autohotkey/Source/Global-Part.ahk') diff --git a/windows/autohotkey/Source/Global-Part.ahk b/windows/autohotkey/Source/Global-Part.ahk index a0257d1..bcb96eb 100644 --- a/windows/autohotkey/Source/Global-Part.ahk +++ b/windows/autohotkey/Source/Global-Part.ahk @@ -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,132 +37,86 @@ 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 - - -/************************** -* lernModus Konfiguration * -* nur relevant wenn * -* lernModus = 1 * -* Strg+Komma schaltet um * -*************************** +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 * +******************************************** */ -; 0 = aus, 1 = an - -; die Nachfolgenden sind nützlich um sich die Qwertz-Tasten abzugewöhnen, da alle auf der 4. Ebene vorhanden. -lernModus_std_Return = 0 -lernModus_std_Backspace = 0 -lernModus_std_PgUp = 0 -lernModus_std_PgDn = 0 -lernModus_std_Einf = 0 -lernModus_std_Entf = 0 -lernModus_std_Pos0 = 0 -lernModus_std_Ende = 0 -lernModus_std_Hoch = 0 -lernModus_std_Runter = 0 -lernModus_std_Links = 0 -lernModus_std_Rechts = 0 -lernModus_std_ZahlenReihe = 0 - -; im folgenden kann man auch noch ein paar Tasten der 4. Ebene deaktivieren -; nützlich um sich zu zwingen, richtig zu schreiben -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 +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!, + regread,inputlocale,HKEY_LOCAL_MACHINE,SYSTEM\CurrentControlSet\Control\Keyboard Layouts\%inputlocale%,Layout Text + msgbox, 48, Warnung!, ( Nicht kompatibles Tastaturlayout: `t%inputlocale% @@ -153,87 +131,39 @@ if inputlocale <> 00000407 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 +/************************* +* Menü des Systray-Icons * +************************** */ - -DeadKey = "" -CompKey = "" -PriorDeadKey = "" -PriorCompKey = "" -Ebene12 = 0 - -EbeneAktualisieren() - - -/* - EinHandNeo +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 * +*********************** */ -spacepressed := 0 -keypressed:= 0 - -; Reihe 1 -gespiegelt_7 = neo_6 -gespiegelt_8 = neo_5 -gespiegelt_9 = neo_4 -gespiegelt_0 = neo_3 -gespiegelt_strich = neo_2 -gespiegelt_tot2 = neo_1 - -; Reihe 2 -gespiegelt_k = neo_w -gespiegelt_h = neo_c -gespiegelt_g = neo_l -gespiegelt_f = neo_v -gespiegelt_q = neo_x -gespiegelt_sz = neo_tab -gespiegelt_tot3 = neo_tot1 - -; Reihe 3 -gespiegelt_s = neo_o -gespiegelt_n = neo_e -gespiegelt_r = neo_a -gespiegelt_t = neo_i -gespiegelt_d = neo_u - -; Reihe 4 -gespiegelt_b = neo_z -gespiegelt_m = neo_p -gespiegelt_komma = neo_ä -gespiegelt_punkt = neo_ö -gespiegelt_j = neo_ü - - ;Blinde/Sichtbare Tote Tasten *F9:: if (isMod4pressed()) - DeadSilence := not(DeadSilence) + DeadSilence := not(DeadSilence) else send {blind}{F9} return @@ -241,19 +171,25 @@ return ;Blinde/Sichtbare Compose *F10:: if (isMod4pressed()) - DeadCompose := not(DeadCompose) + 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 + 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 @@ -261,71 +197,58 @@ return send {blind}{Esc} return -/* - ------------------------------------------------------ - Shift+Pause "pausiert" das Skript. - ------------------------------------------------------ -*/ - *pause:: Suspend, Permit - if isshiftpressed() - goto togglesuspend - else - send {blind}{pause} + if isShiftpressed() + goto togglesuspend + else= + send {blind}{pause} return -; ------------------------------------ - -^.::einHandNeo := not(einHandNeo) ; Punkt -^,::lernModus := not(lernModus) ; Komma - - - +/***************** +* 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 - } - + 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 - ) + 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 @@ -354,5 +277,76 @@ exitprogram: exitapp return +/************************** +* lernModus Konfiguration * +* nur relevant wenn * +* lernModus = 1 * +* 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. +lernModus_std_Return = 0 +lernModus_std_Backspace = 0 +lernModus_std_PgUp = 0 +lernModus_std_PgDn = 0 +lernModus_std_Einf = 0 +lernModus_std_Entf = 0 +lernModus_std_Pos0 = 0 +lernModus_std_Ende = 0 +lernModus_std_Hoch = 0 +lernModus_std_Runter = 0 +lernModus_std_Links = 0 +lernModus_std_Rechts = 0 +lernModus_std_ZahlenReihe = 0 + +; im folgenden kann man auch noch ein paar Tasten der 4. Ebene deaktivieren +; nützlich um sich zu zwingen, richtig zu schreiben +lernModus_neo_Backspace = 0 +lernModus_neo_Entf = 1 + +/**************************** +* EinHandNeo * +* Umschalten mit Strg+Punkt * +***************************** +*/ +^.::einHandNeo := not(einHandNeo) + +spacepressed := 0 +keypressed:= 0 + +; Reihe 1 +gespiegelt_7 = neo_6 +gespiegelt_8 = neo_5 +gespiegelt_9 = neo_4 +gespiegelt_0 = neo_3 +gespiegelt_strich = neo_2 +gespiegelt_tot2 = neo_1 + +; Reihe 2 +gespiegelt_k = neo_w +gespiegelt_h = neo_c +gespiegelt_g = neo_l +gespiegelt_f = neo_v +gespiegelt_q = neo_x +gespiegelt_sz = neo_tab +gespiegelt_tot3 = neo_tot1 + +; Reihe 3 +gespiegelt_s = neo_o +gespiegelt_n = neo_e +gespiegelt_r = neo_a +gespiegelt_t = neo_i +gespiegelt_d = neo_u + +; Reihe 4 +gespiegelt_b = neo_z +gespiegelt_m = neo_p +gespiegelt_komma = neo_ä +gespiegelt_punkt = neo_ö +gespiegelt_j = neo_ü + - \ No newline at end of file -- cgit v1.2.3