|
|
|
@ -0,0 +1,548 @@ |
|
|
|
|
; -*- encoding:utf-8 -*- |
|
|
|
|
|
|
|
|
|
; *** Entpacke Bilder aus der .exe-Datei ins Tempverzeichnis *** |
|
|
|
|
FileInstall,neo_enabled.ico,%TempFolder%\neo_enabled.ico,1 |
|
|
|
|
FileInstall,neo_disabled.ico,%TempFolder%\neo_disabled.ico,1 |
|
|
|
|
FileInstall,ebene1.png,%TempFolder%\ebene1.png,1 |
|
|
|
|
FileInstall,ebene2.png,%TempFolder%\ebene2.png,1 |
|
|
|
|
FileInstall,ebene3.png,%TempFolder%\ebene3.png,1 |
|
|
|
|
FileInstall,ebene4.png,%TempFolder%\ebene4.png,1 |
|
|
|
|
FileInstall,ebene5.png,%TempFolder%\ebene5.png,1 |
|
|
|
|
FileInstall,ebene6.png,%TempFolder%\ebene6.png,1 |
|
|
|
|
|
|
|
|
|
#usehook on |
|
|
|
|
SetKeyDelay -1 |
|
|
|
|
#LTrim |
|
|
|
|
|
|
|
|
|
;************************* |
|
|
|
|
; Menü des Systray-Icons * |
|
|
|
|
;************************* |
|
|
|
|
menu,tray,icon,%TempFolder%\neo_enabled.ico,,1 |
|
|
|
|
menu,tray,nostandard |
|
|
|
|
menu,tray,add,AHK öffnen,open |
|
|
|
|
menu,helpmenu,add,Info,about |
|
|
|
|
menu,helpmenu,add |
|
|
|
|
menu,helpmenu,add,https://autohotkey.com/,autohotkey |
|
|
|
|
menu,helpmenu,add,https://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,Skript neu laden,reload |
|
|
|
|
menu,tray,add,Bildschirmtastatur umschalten,Show |
|
|
|
|
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 |
|
|
|
|
Ebene := 1 |
|
|
|
|
|
|
|
|
|
goto mapkeys |
|
|
|
|
|
|
|
|
|
;*********************** |
|
|
|
|
; Fehlende Funktionen * |
|
|
|
|
;*********************** |
|
|
|
|
; *** benötigte Modifier werden gehookt *** |
|
|
|
|
~*SC136:: |
|
|
|
|
if (isShiftLPressed and !isShiftRPressed) |
|
|
|
|
ToggleMod2Lock() |
|
|
|
|
isShiftRPressed := 1 |
|
|
|
|
isShiftPressed := 1 |
|
|
|
|
goto modeToggled |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
~*SC136 up:: |
|
|
|
|
isShiftRPressed := 0 |
|
|
|
|
isShiftPressed := isShiftLPressed |
|
|
|
|
goto modeToggled |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
~*SC02A:: |
|
|
|
|
if (isShiftRPressed and !isShiftLPressed) |
|
|
|
|
ToggleMod2Lock() |
|
|
|
|
isShiftLPressed := 1 |
|
|
|
|
isShiftPressed := 1 |
|
|
|
|
goto modeToggled |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
~*SC02A up:: |
|
|
|
|
isShiftLPressed := 0 |
|
|
|
|
isShiftPressed := isShiftRPressed |
|
|
|
|
goto modeToggled |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
~*SC02B:: |
|
|
|
|
isMod3RPressed := 1 |
|
|
|
|
isMod3Pressed := 1 |
|
|
|
|
goto modeToggled |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
~*SC02B up:: |
|
|
|
|
isMod3RPressed := 0 |
|
|
|
|
isMod3Pressed := isMod3LPressed |
|
|
|
|
goto modeToggled |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
~*SC03A:: |
|
|
|
|
isMod3LPressed := 1 |
|
|
|
|
isMod3Pressed := 1 |
|
|
|
|
goto modeToggled |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
~*SC03A up:: |
|
|
|
|
isMod3LPressed := 0 |
|
|
|
|
isMod3Pressed := isMod3RPressed |
|
|
|
|
goto modeToggled |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
~*SC138:: |
|
|
|
|
if (isMod4LPressed and !isMod4RPressed) |
|
|
|
|
ToggleMod4Lock() |
|
|
|
|
isMod4RPressed := 1 |
|
|
|
|
isMod4Pressed := 1 |
|
|
|
|
doMod4() |
|
|
|
|
goto modeToggled |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
~*SC138 up:: |
|
|
|
|
isMod4RPressed := 0 |
|
|
|
|
isMod4Pressed := isMod4LPressed |
|
|
|
|
doMod4() |
|
|
|
|
goto modeToggled |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
~*SC056:: |
|
|
|
|
if (isMod4RPressed and !isMod4LPressed) |
|
|
|
|
ToggleMod4Lock() |
|
|
|
|
isMod4LPressed := 1 |
|
|
|
|
isMod4Pressed := 1 |
|
|
|
|
doMod4() |
|
|
|
|
goto modeToggled |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
~*SC056 up:: |
|
|
|
|
isMod4LPressed := 0 |
|
|
|
|
isMod4Pressed := isMod4RPressed |
|
|
|
|
doMod4() |
|
|
|
|
goto modeToggled |
|
|
|
|
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 |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; Special mapping only for Strg-Z on layer 4 |
|
|
|
|
|
|
|
|
|
*SC030:: |
|
|
|
|
if (isMod4Active and !isMod3Pressed) { |
|
|
|
|
if (key_z_down){ |
|
|
|
|
Send {Blind}{SC030 up} |
|
|
|
|
key_z_down := 0 |
|
|
|
|
} |
|
|
|
|
Send {Blind}{Ctrl DownTemp}{z DownTemp} |
|
|
|
|
key_z_down_mod := 1 |
|
|
|
|
} else { |
|
|
|
|
if (key_z_down_mod){ |
|
|
|
|
Send {Blind}{Ctrl Up}{z Up} |
|
|
|
|
key_z_down_mod := 0 |
|
|
|
|
} |
|
|
|
|
Send {Blind}{SC030 DownTemp} |
|
|
|
|
key_z_down := 1 |
|
|
|
|
} |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
*SC030 up:: |
|
|
|
|
if (key_z_down_mod){ |
|
|
|
|
Send {Blind}{Ctrl Up}{z Up} |
|
|
|
|
key_z_down_mod := 0 |
|
|
|
|
} |
|
|
|
|
if (key_z_down){ |
|
|
|
|
Send {Blind}{SC030 up} |
|
|
|
|
key_z_down := 0 |
|
|
|
|
} |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; *** Mappings *** |
|
|
|
|
|
|
|
|
|
mapkeys: |
|
|
|
|
OneLayer(substr(layoutstring, 1, 1), 4, "pgup") |
|
|
|
|
OneLayer(substr(layoutstring, 2, 1), 4, "backspace") |
|
|
|
|
OneLayer(substr(layoutstring, 3, 1), 4, "up") |
|
|
|
|
OneLayer(substr(layoutstring, 4, 1), 4, "del") |
|
|
|
|
OneLayer(substr(layoutstring, 5, 1), 4, "pgdn") |
|
|
|
|
|
|
|
|
|
OneLayer(substr(layoutstring, 6, 1), 4, "home") |
|
|
|
|
OneLayer(substr(layoutstring, 7, 1), 4, "left") |
|
|
|
|
OneLayer(substr(layoutstring, 8, 1), 4, "down") |
|
|
|
|
OneLayer(substr(layoutstring, 9, 1), 4, "right") |
|
|
|
|
OneLayer(substr(layoutstring, 10, 1), 4, "end") |
|
|
|
|
|
|
|
|
|
OneLayer(substr(layoutstring, 11, 1), 4, "esc") |
|
|
|
|
OneLayer(substr(layoutstring, 12, 1), 4, "tab") |
|
|
|
|
OneLayer(substr(layoutstring, 13, 1), 4, "ins") |
|
|
|
|
OneLayer(substr(layoutstring, 14, 1), 4, "enter") |
|
|
|
|
|
|
|
|
|
AllLayers("NumLock","tab","tab","=","≠","≈","≡") ; NumLock |
|
|
|
|
AllLayers("NumpadDiv","NumpadDiv","NumpadDiv","÷","⁄","⌀","⁄") ; NumpadDiv |
|
|
|
|
AllLayers("NumpadMult","NumpadMult","NumpadMult","⋅","×","⊙","⊗") ; NumpadMult |
|
|
|
|
AllLayers("NumpadSub","NumpadSub","NumpadSub","−","∖","⊖","∸") ; NumpadSub |
|
|
|
|
AllLayers("NumpadAdd","NumpadAdd","NumpadAdd","±","∓","⊕","∔") ; NumpadAdd |
|
|
|
|
|
|
|
|
|
AllLayers("Numpad7","Numpad7","✔","↕","NumpadHome","≪","⌈") ; Numpad7 |
|
|
|
|
AllLayers("Numpad8","Numpad8","✘","↑","NumpadUp","∩","⋂") ; Numpad8 |
|
|
|
|
AllLayers("Numpad9","Numpad9","†","⃗","NumpadPgUp","≫","⌉") ; Numpad9 |
|
|
|
|
AllLayers("Numpad4","Numpad4","♣","←","NumpadLeft","⊂","⊆") ; Numpad4 |
|
|
|
|
AllLayers("Numpad5","Numpad5","€",":","LButton","⊶","⊷") ; Numpad5 |
|
|
|
|
AllLayers("Numpad6","Numpad6","‣","→","NumpadRight","⊃","⊇") ; Numpad6 |
|
|
|
|
AllLayers("Numpad1","Numpad1","♦","↔","NumpadEnd","≤","⌊") ; Numpad1 |
|
|
|
|
AllLayers("Numpad2","Numpad2","♥","↓","NumpadDown","∪","⋃") ; Numpad2 |
|
|
|
|
AllLayers("Numpad3","Numpad3","♠","⇌","NumpadPgDn","≥","⌋") ; Numpad3 |
|
|
|
|
AllLayers("Numpad0","Numpad0","␣","%","NumpadIns","‰","□") ; Numpad0 |
|
|
|
|
AllLayers("NumpadDot","NumpadDot",".",",","NumpadDel","′","″") ; NumpadDot |
|
|
|
|
|
|
|
|
|
RemapKey("NumpadIns", "Numpad0") |
|
|
|
|
RemapKey("NumpadEnd", "Numpad1") |
|
|
|
|
RemapKey("NumpadDown", "Numpad2") |
|
|
|
|
RemapKey("NumpadPgDn", "Numpad3") |
|
|
|
|
RemapKey("NumpadLeft", "Numpad4") |
|
|
|
|
RemapKey("NumpadClear", "Numpad5") |
|
|
|
|
RemapKey("NumpadRight", "Numpad6") |
|
|
|
|
RemapKey("NumpadHome", "Numpad7") |
|
|
|
|
RemapKey("NumpadUp", "Numpad8") |
|
|
|
|
RemapKey("NumpadPgUp", "Numpad9") |
|
|
|
|
RemapKey("NumpadDel", "NumpadDot") |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HookKey(key){ |
|
|
|
|
dnkey := "*" . key |
|
|
|
|
upkey := dnkey . " up" |
|
|
|
|
Hotkey,% dnkey,allstarhook |
|
|
|
|
Hotkey,% upkey,allstarhook |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
OneLayer(key, layer, target){ |
|
|
|
|
global |
|
|
|
|
HookKey(key) |
|
|
|
|
CMCP%layer%%key% := target |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
AllLayers(key, e1, e2, e3, e4, e5, e6){ |
|
|
|
|
global |
|
|
|
|
HookKey(key) |
|
|
|
|
CMCP1%key% := e1 |
|
|
|
|
CMCP2%key% := e2 |
|
|
|
|
CMCP3%key% := e3 |
|
|
|
|
CMCP4%key% := e4 |
|
|
|
|
CMCP5%key% := e5 |
|
|
|
|
CMCP6%key% := e6 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
RemapKey(key, target){ |
|
|
|
|
global |
|
|
|
|
HookKey(key) |
|
|
|
|
KRM%key% := target |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
modeToggled: |
|
|
|
|
if ((isMod3Pressed) && (isMod4Pressed || isMod4Locked)) { |
|
|
|
|
Ebene := 6 |
|
|
|
|
} else if ((isMod3Pressed) && (isShiftPressed || isMod2Locked)) { |
|
|
|
|
Ebene := 5 |
|
|
|
|
} else if (isMod4Active) { |
|
|
|
|
Ebene := 4 |
|
|
|
|
} else if (isMod3Pressed) { |
|
|
|
|
Ebene := 3 |
|
|
|
|
} else if (isShiftPressed || isMod2Locked) { |
|
|
|
|
Ebene := 2 |
|
|
|
|
} else { |
|
|
|
|
Ebene := 1 |
|
|
|
|
} |
|
|
|
|
goto guiModeToggled |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
allstarhook: |
|
|
|
|
AllStar(a_thishotkey) |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
AllStar(This_HotKey) { |
|
|
|
|
global |
|
|
|
|
PhysKey := This_HotKey |
|
|
|
|
if (SubStr(PhysKey,1,1) == "*") |
|
|
|
|
PhysKey := SubStr(PhysKey,2) |
|
|
|
|
if (SubStr(PhysKey,-2) == " up") { |
|
|
|
|
PhysKey := SubStr(PhysKey,1,StrLen(PhysKey)-3) |
|
|
|
|
IsDown := 0 |
|
|
|
|
} else |
|
|
|
|
IsDown := 1 |
|
|
|
|
RealEbene := Ebene |
|
|
|
|
if (KRM%PhysKey% != ""){ |
|
|
|
|
PhysKey := KRM%PhysKey% |
|
|
|
|
if (isMod3Pressed) { |
|
|
|
|
RealEbene := 5 |
|
|
|
|
} else { |
|
|
|
|
RealEbene := 2 |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Char = CP%RealEbene%%PhysKey% |
|
|
|
|
if (IsDown == 1) { |
|
|
|
|
CharStarDown(PhysKey, Char) |
|
|
|
|
;MsgBox % This_HotKey . " -> " . PhysKey . " -> " . Char . " ---> " . "%CM" . Char . ": " . CM%Char% |
|
|
|
|
} else { |
|
|
|
|
CharStarUp(PhysKey) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
CharStarDown(PhysKey, Char) { |
|
|
|
|
global |
|
|
|
|
if (CM%Char% != "") { |
|
|
|
|
tosend := CM%Char% |
|
|
|
|
} else { |
|
|
|
|
tosend := PhysKey |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (PR%PhysKey% != "" && PR%PhysKey% != tosend){ |
|
|
|
|
CharOutUp(PR%PhysKey%) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
CharOutDown(tosend) |
|
|
|
|
PR%PhysKey% := tosend |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
CharStarUp(PhysKey) { |
|
|
|
|
global |
|
|
|
|
if (PR%PhysKey% != "") { |
|
|
|
|
tosend := PR%PhysKey% |
|
|
|
|
PR%PhysKey% := "" |
|
|
|
|
CharOutUp(tosend) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
CharOutDown(char){ |
|
|
|
|
send % "{blind}{" . char . " DownTemp}" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
CharOutUp(char){ |
|
|
|
|
send % "{blind}{" . char . " Up}" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
;***************** |
|
|
|
|
; Menüfunktionen * |
|
|
|
|
;***************** |
|
|
|
|
togglesuspend: |
|
|
|
|
if A_IsSuspended { |
|
|
|
|
menu,tray,rename,%enable%,%disable% |
|
|
|
|
menu,tray,tip,%name% |
|
|
|
|
menu,tray,icon,%TempFolder%\neo_enabled.ico,,1 |
|
|
|
|
suspend,off ; Schaltet Suspend aus |
|
|
|
|
} else { |
|
|
|
|
menu,tray,rename,%disable%, %enable% |
|
|
|
|
menu,tray,tip,%name% : Deaktiviert |
|
|
|
|
menu,tray,icon,%TempFolder%\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. |
|
|
|
|
`nEs beinhaltet außerdem eine Bildschirmtastatur, die mit |
|
|
|
|
Shift+Mod4+Tab geöffnet und geschlossen werden kann. |
|
|
|
|
) |
|
|
|
|
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 |
|
|
|
|
showingShift = 0 |
|
|
|
|
showShiftTimer = 0 |
|
|
|
|
|
|
|
|
|
showShift: |
|
|
|
|
showingShift = 1 |
|
|
|
|
showShiftTimer = 0 |
|
|
|
|
goto modeToggled |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
guiModeToggled: |
|
|
|
|
; This shift logic delays the display of layer 2, |
|
|
|
|
; so the keyboard doesn’t constantly flash during |
|
|
|
|
; normal typing |
|
|
|
|
if (isShiftPressed && !showingShift && !showShiftTimer){ |
|
|
|
|
SetTimer, showShift, -300 |
|
|
|
|
showShiftTimer = 1 |
|
|
|
|
} else if (!isShiftPressed){ |
|
|
|
|
SetTimer, showShift, Off |
|
|
|
|
showShiftTimer = 0 |
|
|
|
|
showingShift = 0 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (guiErstellt) { |
|
|
|
|
guiEbene := Ebene |
|
|
|
|
if (guiEbene = 2 && !showingShift) |
|
|
|
|
guiEbene = 1 |
|
|
|
|
goto UpdateImage |
|
|
|
|
} |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
*F1:: |
|
|
|
|
if (isMod3Pressed) |
|
|
|
|
goto Show |
|
|
|
|
else send {blind}{F1} |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
Show: |
|
|
|
|
if guiErstellt { |
|
|
|
|
goto Close |
|
|
|
|
} else { |
|
|
|
|
if (Image = "") { |
|
|
|
|
Image := TempFolder . "\" . "ebene1.png" |
|
|
|
|
} |
|
|
|
|
yPosition := A_ScreenHeight -270 |
|
|
|
|
Gui,Color,FFFFFF |
|
|
|
|
Gui,Add,Picture, AltSubmit BackgroundTrans xm ym hwndHPIC vPicture,%Image% ; |
|
|
|
|
Gui,+AlwaysOnTop |
|
|
|
|
Gui +LastFound |
|
|
|
|
WinSet, TransColor, FFFFFF |
|
|
|
|
Gui -Caption +ToolWindow |
|
|
|
|
Gui,Show,NA y%yposition% Autosize |
|
|
|
|
OnMessage(0x201, "WM_LBUTTONDOWN") |
|
|
|
|
OnMessage(0x203, "WM_LBUTTONDBLCLK") |
|
|
|
|
GuiControlGet, P, Pos, Picture |
|
|
|
|
loop, 6 { |
|
|
|
|
HBITMAP%A_Index% := LoadImage(TempFolder . "\ebene" . A_Index . ".png", PW, PH) |
|
|
|
|
} |
|
|
|
|
guiErstellt = 1 |
|
|
|
|
} |
|
|
|
|
Return |
|
|
|
|
|
|
|
|
|
LoadImage(ImagePath, W, H) { |
|
|
|
|
; Each GUI window may have up to 11,000 controls. However, use caution when creating more |
|
|
|
|
; than 5000 controls because system instability may occur for certain control types. |
|
|
|
|
Gui, 99:Add, Pic, w%W% h%H% AltSubmit hwndHPIC, %ImagePath% |
|
|
|
|
SendMessage, 0x0173, 0, 0, , ahk_id %HPIC% ; STM_GETIMAGE |
|
|
|
|
Return ErrorLevel |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
UpdateImage: |
|
|
|
|
if (guiEbeneShown != guiEbene){ |
|
|
|
|
SendMessage, 0x0172, 0, HBITMAP%guiEbene%, , ahk_id %HPIC% ; STM_SETIMAGE |
|
|
|
|
DeleteObject(ErrorLevel) |
|
|
|
|
guiEbeneShown := guiEbene |
|
|
|
|
} |
|
|
|
|
Return |
|
|
|
|
|
|
|
|
|
DeleteObject(hObject) { |
|
|
|
|
return DllCall("DeleteObject", "uint", hObject) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
WM_LBUTTONDOWN() { |
|
|
|
|
PostMessage, 0xA1, 2 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
WM_LBUTTONDBLCLK() { |
|
|
|
|
SetTimer, Close, -1 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Close: |
|
|
|
|
guiErstellt = 0 |
|
|
|
|
Gui,Destroy |
|
|
|
|
Gui, 99:Destroy |
|
|
|
|
Return |