From 6d0b9db7e1dfa23ee0204b0a57847c4126e2500a Mon Sep 17 00:00:00 2001 From: dennis Date: Sat, 10 Jan 2009 16:33:14 +0000 Subject: Der »alte« AHK-Treiber ist als »deprecated« einzustufen. Der Namenswechsel des Verzeichnis soll dies wiederspielen und eventuelle »Gewohnheitsfehler« vermeiden. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.neo-layout.org@1423 b9310e46-f624-0410-8ea1-cfbb3a30dc96 --- windows/ahk-auslaufend/Source/Global-Part.ahk | 339 ++++++++++++++++++++++++++ 1 file changed, 339 insertions(+) create mode 100644 windows/ahk-auslaufend/Source/Global-Part.ahk (limited to 'windows/ahk-auslaufend/Source/Global-Part.ahk') diff --git a/windows/ahk-auslaufend/Source/Global-Part.ahk b/windows/ahk-auslaufend/Source/Global-Part.ahk new file mode 100644 index 0000000..03ef728 --- /dev/null +++ b/windows/ahk-auslaufend/Source/Global-Part.ahk @@ -0,0 +1,339 @@ +/****************** +* Initialisierung * +******************* +*/ +DeadKey := "" +CompKey := "" +PriorDeadKey := "" +PriorCompKey := "" +Ebene12 = 0 +noCaps = 0 +isFurtherCompkey = 0 + +EbeneAktualisieren() +SetBatchLines -1 +SetCapsLockState Off +KeyboardLED(4, "off") +SetNumLockState Off +SetScrollLockState Off + +name=Neo 2.0 (%A_ScriptName%) ($Revision$) +enable=Aktiviere %name% +disable=Deaktiviere %name% +#usehook on +#singleinstance force +#LTrim ; Quelltext kann eingerückt werden +Process,Priority,,High +SendMode Input + +/**************** +* Verzeichnisse * +***************** +*/ +; Setzt den Pfad zu einem temporären Verzeichnis +EnvGet,WindowsEnvTempFolder,TEMP +ResourceFolder = %WindowsEnvTempFolder%\NEO2 +FileCreateDir,%ResourceFolder% + +; Setzt den Pfad zu den NEO-Anwendungsdateien +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: + +; 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] + +; Soll der Treiber im Einhandmodus betrieben werden? +IniRead,einHandNeo,%ini%,Global,einHandNeo,0 + +; Soll der Lernmodus aktiviert werden? +IniRead,lernModus,%ini%,Global,lernModus,0 + +; Soll mit einer MsgBox explizit auf das Ein- und Ausschalten des Mod4-Locks hingewiesen werden? +IniRead,zeigeLockBox,%ini%,Global,zeigeLockBox,1 + +; Soll aktivierter Mod4-Lock über die Rollen-LED des Keybord angezeigt werden (analog zu CapsLock)? +IniRead,UseMod4Light,%ini%,Global,UseMod4Light,1 + +; Soll Lang-s auf s, s auf ß und ß auf Lang-s gelegt (bzw. vertauscht) werden? +IniRead,LangSTastatur,%ini%,Global,LangSTastatur,0 +If LangSTastatur + KeyboardLED(2,"on") + +; Sollen tote Tasten blind angezeigt werden? +IniRead,DeadSilence,%ini%,Global,DeadSilence,1 + +;Sollen Compose-Tasten blind angezeigt werden? +IniRead,DeadCompose,%ini%,Global,DeadCompose,1 + +;Soll der Mod2Lock auch auf die Akzente, die Ziffernreihe und das Numpad angewandt werden? +IniRead,striktesMod2Lock,%ini%,Global,striktesMod2Lock,0 + +/*********************** +* Resourcen-Verwaltung * +************************ +*/ +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 + } +} + +; 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 + +/******************************************* +* Ü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% and 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% + +/************************** +* lernModus Konfiguration * +* nur relevant wenn * +* lernModus = 1 * +* Strg+Komma schaltet um * +*************************** +*/ +; 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 * +***************************** +*/ +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_ü + +/********************** +* Tastenkombinationen * +*********************** +*/ +;Blinde/Sichtbare Tote Tasten +*F9:: + if isMod4pressed() + DeadSilence := !DeadSilence + else send {blind}{F9} +return + +;Blinde/Sichtbare Compose +*F10:: + if isMod4pressed() + DeadCompose := !DeadCompose + else send {blind}{F10} +return + +;Lang-s-Tastatur: +*F11:: + if isMod4pressed() { + LangSTastatur := !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 + +^,::lernModus := !lernModus + +^.::einHandNeo := !einHandNeo + +/***************** +* 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 + + -- cgit v1.2.3