neo/windows/kbdneo2/Treiber/AHK_für_kbdneo2/kbdneo2.ahk
florian f6261c8cc7 Tab auf Ebene 4 für WinXP geflickt.
git-svn-id: https://svn.neo-layout.org@2132 b9310e46-f624-0410-8ea1-cfbb3a30dc96
2009-12-11 16:55:16 +00:00

456 lines
No EOL
8.1 KiB
AutoHotkey
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;*********************
; Anfangsbedingungen *
;*********************
name=Neo 2.0 (Erweiterung für nativen Treiber)
enable=Aktiviere %name%
disable=Deaktiviere %name%
#usehook on
#LTrim
; *** Benutze Bilder wennsie 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_enabled.ico")&&FileExist("neo_disabled.ico"))
iconBenutzen=1
;*************************
; Menü des Systray-Icons *
;*************************
if (iconBenutzen)
menu,tray,icon,neo_enabled.ico,,1
menu,tray,nostandard
menu,tray,add,AHK öffnen,open
menu,helpmenu,add,Info,about
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,Skript 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%
;******************
; Initialisierung *
;******************
isShiftRPressed := 0
isShiftLPressed := 0
isShiftPressed := 0
isMod2Locked := 0
isMod3RPressed := 0
isMod3LPressed := 0
isMod3Pressed := 0
isMod4RPressed := 0
isMod4LPressed := 0
isMod4Pressed := 0
isMod4Locked := 0
isMod4Active := 0
;***********************
; Fehlende Funktionen *
;***********************
; *** benötigte Modifier werden gehookt ***
~*SC136::
if (isShiftLPressed and !isShiftRPressed)
ToggleMod2Lock()
isShiftRPressed := 1
isShiftPressed := 1
return
~*SC136 up::
isShiftRPressed := 0
isShiftPressed := isShiftLPressed
return
~*SC02A::
if (isShiftRPressed and !isShiftLPressed)
ToggleMod2Lock()
isShiftLPressed := 1
isShiftPressed := 1
return
~*SC02A up::
isShiftLPressed := 0
isShiftPressed := isShiftRPressed
return
~*SC02B::
isMod3RPressed := 1
isMod3Pressed := 1
return
~*SC02B up::
isMod3RPressed := 0
isMod3Pressed := isMod3LPressed
return
~*SC03A::
isMod3LPressed := 1
isMod3Pressed := 1
return
~*SC03A up::
isMod3LPressed := 0
isMod3Pressed := isMod3RPressed
return
~*SC138::
if (isMod4LPressed and !isMod4RPressed)
ToggleMod4Lock()
isMod4RPressed := 1
isMod4Pressed := 1
doMod4()
return
~*SC138 up::
isMod4RPressed := 0
isMod4Pressed := isMod4LPressed
doMod4()
return
~*SC056::
if (isMod4RPressed and !isMod4LPressed)
ToggleMod4Lock()
isMod4LPressed := 1
isMod4Pressed := 1
doMod4()
return
~*SC056 up::
isMod4LPressed := 0
isMod4Pressed := isMod4RPressed
doMod4()
return
; *** Welcher Modifier ist aktiv und CapsLock und Mod4Lock ***
ToggleMod2Lock() {
global
if (isMod2Locked)
{
isMod2Locked := 0
SetCapslockState off
}
else
{
isMod2Locked := 1
SetCapslockState on
}
}
ToggleMod4Lock() {
global
if (isMod4Locked)
{
isMod4Locked := 0
send {vk15}
}
else
{
isMod4Locked := 1
send {vk15}
}
}
doMod4() {
global
if (isMod4Locked)
{
if (isMod4Pressed)
isMod4Active := 0
else
isMod4Active := 1
}
else
{
if (isMod4Pressed)
isMod4Active := 1
else
isMod4Active := 0
}
}
; *** Funktionstasten ***
~*4::
if (isMod4Active and !isMod3Pressed)
Send {Blind}{PGUP}
return
~*v::
if (isMod4Active and !isMod3Pressed)
Send {Blind}{BACKSPACE}
return
~*l::
if (isMod4Active and !isMod3Pressed)
Send {Blind}{UP}
return
~*c::
if (isMod4Active and !isMod3Pressed)
Send {Blind}{DEL}
return
~*w::
if (isMod4Active and !isMod3Pressed)
Send {Blind}{INS}
return
~*u::
if (isMod4Active and !isMod3Pressed)
Send {Blind}{HOME}
return
~*i::
if (isMod4Active and !isMod3Pressed)
Send {Blind}{LEFT}
return
~*a::
if (isMod4Active and !isMod3Pressed)
Send {Blind}{DOWN}
return
~*e::
if (isMod4Active and !isMod3Pressed)
Send {Blind}{RIGHT}
return
~*o::
if (isMod4Active and !isMod3Pressed)
Send {Blind}{END}
return
~*ü::
if (isMod4Active and !isMod3Pressed)
Send {esc}
return
~*VKDD:: ;ist ö
if (isMod4Active and !isMod3Pressed)
Send {Blind}{TAB}
return
~*ä::
if (isMod4Active and !isMod3Pressed)
Send {Blind}{PGDN}
return
~*p::
if (isMod4Active and !isMod3Pressed)
Send {ENTER}
return
;*****************
; Menüfunktionen *
;*****************
togglesuspend:
if A_IsSuspended {
menu,tray,rename,%enable%,%disable%
menu,tray,tip,%name%
if (iconBenutzen)
menu,tray,icon,neo_enabled.ico,,1
suspend,off ; Schaltet Suspend aus
} else {
menu,tray,rename,%disable%, %enable%
menu,tray,tip,%name% : Deaktiviert
if (iconBenutzen)
menu,tray,icon,neo_disabled.ico,,1
suspend,on ; Schaltet Suspend ein
} return
about:
msgbox, 64, NEO 2.0 Ergonomische Tastaturbelegung,
(
%name%
`nDas Neo-Layout ist ein alternatives deutsches Tastaturlayout
Näheres finden Sie unter http://neo-layout.org/.
`nDieses Skript erweitert den nativen Tastaturtreiber um
einige fehlende Funktionen.
)
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
;*********************
; BildschirmTastatur *
;*********************
guiErstellt = 0
alwaysOnTop = 1
*F1::
if (isMod4Pressed&&zeigeBildschirmTastatur)
goto Switch1
else send {blind}{F1}
return
*F2::
if (isMod4Pressed&&zeigeBildschirmTastatur)
goto Switch2
else send {blind}{F2}
return
*F3::
if (isMod4Pressed&&zeigeBildschirmTastatur)
goto Switch3
else send {blind}{F3}
return
*F4::
if (isMod4Pressed&&zeigeBildschirmTastatur)
goto Switch4
else send {blind}{F4}
return
*F5::
if (isMod4Pressed&&zeigeBildschirmTastatur)
goto Switch5
else send {blind}{F5}
return
*F6::
if (isMod4Pressed&&zeigeBildschirmTastatur)
goto Switch6
else send {blind}{F6}
return
*F7::
if (isMod4Pressed&&zeigeBildschirmTastatur)
goto Show
else send {blind}{F7}
return
*F8::
if (isMod4Pressed&&zeigeBildschirmTastatur)
goto ToggleAlwaysOnTop
else send {blind}{F8}
return
Switch1:
tImage := "ebene1.png"
goto Switch
Return
Switch2:
tImage := "ebene2.png"
goto Switch
Return
Switch3:
tImage := "ebene3.png"
goto Switch
Return
Switch4:
tImage := "ebene4.png"
goto Switch
Return
Switch5:
tImage := "ebene5.png"
goto Switch
Return
Switch6:
tImage := "ebene6.png"
goto Switch
Return
Switch:
if guiErstellt {
if (Image = tImage)
goto Close
else {
Image := tImage
SetTimer, Refresh
}
} else {
Image := tImage
goto Show
}
Return
Show:
if guiErstellt {
goto Close
} else {
if (Image = "") {
Image := "ebene1.png"
}
yPosition := A_ScreenHeight -270
Gui,Color,FFFFFF
Gui,Add,Button,xm+5 gSwitch1,F1
Gui,Add,Button,xm+5 gSwitch2,F2
Gui,Add,Button,xm+5 gSwitch3,F3
Gui,Add,Button,xm+5 gSwitch4,F4
Gui,Add,Button,xm+5 gSwitch5,F5
Gui,Add,Button,xm+5 gSwitch6,F6
Gui,Add,Button,xm+5 gShow,F7
Gui,Add,Text,x+5,An /
Gui,Add,Text,y+3,Aus
Gui,Add,Button,x+10 y+-30 gShow,F8
Gui,Add,Text,x+5,OnTop
Gui,Add,Picture,AltSubmit ys w729 h199 vPicture,%Image%
Gui,+AlwaysOnTop
Gui,Show,y%yposition% Autosize
guiErstellt = 1
}
Return
Close:
guiErstellt = 0
Gui,Destroy
Return
Refresh:
If (Image != OldImage) {
GuiControl,,Picture,%Image%
OldImage := Image
}
Return
ToggleAlwaysOnTop:
if alwaysOnTop {
Gui, -AlwaysOnTop
alwaysOnTop = 0
} else {
Gui, +AlwaysOnTop
alwaysOnTop = 1
}
Return