Class Execute
{
__new()
{
this.func2:={}
this.func3:=[]
this.executors:={}
this.noinit:=1
}
__set(var1,var2)
{
if this.noinit
{
if this.executors[var1,"nr"]
{
this.executors[var1,this.executors[var1,"nr"]]:=var2
this.executors[var1,"nr"]++
}
else
{
this.executors[var1]:={"nr":2,1:var2}
}
return
}
}
__call(var,p*)
{
StringLower, var, var
if this.func2[var]
{
var2:=[]
var2[1]:=this.func2[var]
var2[2]:=p
return var2
}
If IsFunc(var) ; wenn man diesen Teil rausstreicht
{ ;bleiben nur noch die Funktionen die man in this.func3 und this.func2 vordefiniert hat.
var2:=[]
this.func3.insert(func(var))
var2[1]:=this.func2[var]:=this.func3.maxindex()
var2[2]:=p
return var2
}
if IsObject(this.executors[var])
{
loop,% this.executors[var,"nr"]-2
{
v:=this.func3[this.executors[var,A_Index,1]]
v2:=this.executors[var,A_Index,2]
v.(v2*)
}
v:=this.func3[this.executors[var,this.executors[var,"nr"]-1,1]]
v2:=this.executors[var,this.executors[var,"nr"]-1,2]
return v.(v2*)
}
}
}
;Benuztung:
obj:= new execute()
obj.2msgboxes:=obj.msgbox("Hallo")
obj.2msgboxes:=obj.DllCall("MessageBox", "Int", "0", "Str", "Nochmal Hallo", "Str", "Titel der Box", "Int", 4) ;in das Execute object halt noch die Funktion
obj.GetactiveID:=obj.WinActive("A")
msgbox("Die Id des Aktiven Fensters ist : " obj.GetactiveID() ".`nSie haben " ((obj.2msgboxes()=6)? "ja" : "nein") " gedrückt.")
Das kannst du ja noch mal reinbauen...
Ich habs zurückgehalten, da ich dachte das Polythemes Funktionen verschollen wären.(AutoHotkey.net)
Obwohl es nur so kurz ist hat es ganz schön Power.