Ist aber lustig, weil das sagt uns auch, dass noch nie jemand den Code benutzt hat, außer sibru natürlich

[Edit]
Aber wir sind ja auch nicht in Code Tipps&Tricks, stelle ich eben fest, dann ist es ja auch o.k.
Code: Alles auswählen
; Brief Example without warranty.
Procedure Base64Str2Image(Icon$)
Protected ret, *buf, bufSize, bytes
bufSize = Len(Icon$)
*buf = AllocateMemory(bufSize)
bytes = Base64Decoder(Icon$, *buf, bufSize)
ret = CatchImage(#PB_Any, *buf, bytes) ; return Image
FreeMemory(*buf)
ProcedureReturn ret
EndProcedure
Icon$="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"
IconStd = Base64Str2Image(Icon$) ;SysTray-Icon Standart (Base64Str2Image() ist toller Ersatz für CatchImage(#PB_Any, ?Label))
Icon$="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"
IconRec = Base64Str2Image(Icon$) ;SysTray-Icon Aufnahme
Icon$="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"
IconPlay = Base64Str2Image(Icon$);SysTray-Icon Abspielen
If OpenWindow(0, 0, 0, 480, 148, "ImageGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If IconStd ; CatchImage(0, ?Geebee)
ImageGadget(0, 10, 10, 0, 0, ImageID(IconStd))
EndIf
If IconRec
ImageGadget(1, 110, 10, 0, 0, ImageID(IconRec))
EndIf
If IconPlay
ImageGadget(2, 210, 10, 0, 0, ImageID(IconPlay))
EndIf
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Das ist wonach ich gesucht hatte, mein Verständnis sagte, das ist doch unmöglich,HeX0R hat geschrieben: 18.07.2024 17:08 Die Includes kannst Du nicht finden, die hat sibru exklusiv, keine Ahnung wo die herkommen.
Ist aber lustig, weil das sagt uns auch, dass noch nie jemand den Code benutzt hat, außer sibru natürlich
[Edit]
Aber wir sind ja auch nicht in Code Tipps&Tricks, stelle ich eben fest, dann ist es ja auch o.k.
Lieber Axolotl,Axolotl hat geschrieben: 18.07.2024 17:52 Der Code läuft auch aufgrund von weiteren Fehlern nicht.
Nun ja, hier mal die Funktion, um die Images zu bekommen. Den Rest möge der Frager bitte selbst herausfinden....Code: Alles auswählen
; Brief Example without warranty. Procedure Base64Str2Image(Icon$) Protected ret, *buf, bufSize, bytes bufSize = Len(Icon$) *buf = AllocateMemory(bufSize) bytes = Base64Decoder(Icon$, *buf, bufSize) ret = CatchImage(#PB_Any, *buf, bytes) ; return Image FreeMemory(*buf) ProcedureReturn ret EndProcedure Icon$="AAABAAEAICAAAAEAGACoDAAAFgAAACgAAAAgAAAAQAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCfXxva2pwbm5vbW1ta2tta2tta2tvbW1ubGxubGxta2twbm5vbW1vbW1vbW1vbW1vbW1vbW1vbW1vbW1vbW1vbW1vbWxsamlta2pxb25ta2tta2t7eXmxsLDf2djg29p1c3Jta2tta2t5d3d4dnZzcXF3dXV3dXVycHBzcXFta2tsampsampsampta2tubGxraWlta2tsampsampsampsamtraWh1c3NzcXB0cnJ1c3N0cnJubGyHhYXg29nh3Nt0cXFxcG+BfH2PiYrCwMC/vb25t7e6uLi8u7q+vLy+vLy9u7u6uLi7ubm8urq9u7y/vr7Bv7/CwMDCwMDCwMDDwcHAvr7Bv7/Bv8C/vb7Bv7/Bv7/BwMC6ubnSzcvd2NdvbW10cXGEe3yOh4e5tLXQzM3b1tff29vl4OHx7O3e2tnKxsbHxMPGwsLFwcHEwcDDwL/Cvr7Cv77AvbzJxcTPy8rY1NPSzs3DwL/Hw8PFwsHEwcDBvr3Hw8Pw6+ro4+Jta2tycHCBeHmnoKH69PX07u/79PV8eXokIyMoJydIRkb38vHf2tne2NfY09LW0c/Uz83Qy8nIw8LQy8p3c3MbGhoeHR4wLi7Bu7yxqquwqKiwp6etpKStpaXo4+Lv6ul0cXFwbm1/dni4sbL48/Tw6uvz7e7LxscAAAAAAAAAAADc19bh3Nvb1tXW0dDTzs3PysnLxsXLxsXg2tkAAAAAAAAAAABjX2DBu7yzrq+0rKyyqqqvp6eon6Dg29rr5uV7eHZtbGt8dXa9uLn58/Tw6evu6On///8SERIAAAAAAABubGvr5uXZ1NPX0tHSzczQy8rLxsXRzMujoJ4AAAAAAAAAAADBu7y5s7Szra+0rKuyqqqvp6eooKDl4N/s5+Z8eHdta2p8dXa7tbb48/Tu6uvu6On38PGLh4cAAAAAAAAAAAD////u6ejr5eTm4eDj3t3e2dju6OdBQD8AAAAAAAAyMTHLxca2sbK0ra+0rKuyqqqvp6eooKDk4eDt6Od8eHdtammBeHm7tbb48/Ts6+vu6Ons5uf99/gAAAAAAAAAAAAoJycpKCgoJycnJiYnJiUmJSUrKioAAAAAAAAAAACVlJO/uru2sbK2ra+0rKuyqqqwp6enoKDj4uHu6ul8eHdtbGqAeHm6tLX48/Ts6+vu6Onq5OX99vdJR0YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQHRzs65tLW2sbK2ra+0rKuyqqqwp6enn6Dm5OPw6+p9eXhubWuCenu7tbb48vTs6+vu6Onq5OXv6erGwsIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmY2LFwsK5tLW2sbK2ra+0rKuyqqqwp6enn5/o5uXx7ex9eHhubGyDe329t7j48vPu6uvu6Onq5OXp4+T//P4LCwoAAAAAAABwbW23s7Krp6asqKebl5YAAAAAAAAAAADFwL68uLm5tLW4sLK3ra+zrKuyqqqwp6enn5/o5uXz7+59d3lubWyCfH2+uLn48vPw6evu6Onq5OXp4+T07e6Bfn0AAAAAAAAjIyP28fDZ1NPk3t1nZGQAAAAAAAAvLi7Vz866tba5tLW6r7K4rK+zrKuyqqqwp6enn5/o5+X28fB8d3hubGyEfX6+uLn48vPw6uvu6Onq5OXp4+Tp4+Ts5+YAAAAAAAAAAADQzMrX0tHp5OMAAAAAAAAAAACYlJTIwsG6tba6tLW6r7G4rK6zrKuyqqqwp6emn5/q5+b38vF8dndubGyFfn++uLn48vPw6uvu6Onq5OXp4+Tn4eL69PQ9PDsAAAAAAABkYWHp5OOmoqIAAAAAAAAAAADe2dfBvLu7uLi4tbS2srO3rbCzrKuyqqqwp6emn5/p5+b28vF7d3dubGuGgIG+uLn48vPw6uvu6Onq5OXp4+Tn4eLs5ua2srEAAAAAAAAAAAD//fw7OTgAAAAAAABhXl7SzcvBvLq6t7i4tbS2srO3rbCzrKuyqqqwp6emn5/q6Oj38vJ5d3ZubGuHgYK9t7j48vPw6uvu6Onq5OXp4+Tn4eLl39/++fgAAAAAAAAAAACwrKsAAAAAAAAAAADIw8LHwsHBvLq8t7i5tLS4sbO4rbCzrKuyqqqwp6emn5/r6Or48vN5d3ZtbGuIgYO+uLn48vPw6uvu6Onq5OXp4+Tn4eLl39/v6ul2c3MAAAAAAAAAAAAAAAAAAAAtLCzd19bDvr3BvLq8uLi5s7S6sLO5rbCzrKuyqqqwp6emn5/r6On48vN5d3ZtbGuIgoO/ubr48vPw6uvu6Onq5OXp4+Tn4eLl39/l4N/h3NsAAAAAAAAAAAAAAAAAAACTj4/PysnEv77BvLu8uLe5s7S6sbO5rbCzrKuyqqqwp6emn5/r6On48vN7d3ZwbGuJg4S+uLn48vPv6+zt8/Tp8/Tn8fLm6Onl39/i3dz07u01NDMAAAAAAAAAAAAAAADk3t3KxcTFwL/Bvry3xMWxycqxx8mwwsSturqwrKywp6emn5/q6er39PR9d3ZxbGuJg4W9t7j4+vvv+Pn0i4z2YGD2XFzssbLg+fvg3N7l3uChnJ4AAAAAAAAAAABcWlnZ1NPGwcDCvr26ysnkQkL/AAD/AAD/AADyHBywrKytra2mn5/p6+r39vZ8d3ZxbGqKhIW+wMH54+T/AAD8FRX1amvza2z/AAD9DQ7e7u3c2Njr5uVdW1toZmVeXFvDv73OycjGwcC529r/AADzHBy4t7esy8mozM3dTk7/AACvqqqloaHp6ur29fV8d3ZxbGqKhoe/xsf/AAD0mZrq///o8vPm8PHh///4ODf5IyPY6+ra1dTj3t3e2djb1tXPysnLxsXDzMvgZGP7Cwut2Na3uLa2srC2ra2qwcHcTEzyGxugra3q6+v19PR8d3ZwbGqKjo/FcXL/MDDu///t5+jp4+To4uPl4eLg8vH/AADa4eDZ1tXV0M/SzczQy8rNyMfLxsXB0tH3HBzJnJu4vLy5tLS4sbG3ra6zrKujyMj/AACdsrLp6ur29fV8d3ZwbGqKlJXQNzj+cnLv+Prs5ufp4+Tn4eLm3+Hf9PL8GBjkoqLY29rW0dDTzs3RzMvMx8bLxsXB09L7Dw/MlZO4u7y5tLW6r7K4rK+zrKumwcH/AACdtLTp6ur39fV9eHdwa2qKk5XQODn9eHfv+Pnu6Onr5ebp4+Tn4eLi9/f7HRvmo6Ta3dvY09LTzs3RzMvMx8bLxsXB0tH2HBzVfHu3v8G5tLW6r7K4rK+yrq6wrKz/AACdsrLp6ur39fV+eXhwa2qLjpDHdnf/AADt///u6erq5OXp4+Tm5+nj6Of/AADc5uXa19bY09LTzs3RzMvMx8bLxsXEycjTion/AACyzc22vr+4tbe2srSmysrzGhriPT2hqqrp6ur39fVzcHBvbGuLhYa/2tz/Fxb7Ojvs///o/P3m+/zm5+n/AADufX3Y/PvX6ujU5uXQ4uHL5eTF4N7E392/2tm07OvlS0v/AADPf4DDkZHDkZL6Cwr/AACptLSooqLq6ur29fWLiIdoZmWLhYbFwcL0///8Jyf/AAD8Hh78Ghr/AAD/AAD5KSn7FBT7FBP7ExP5Ghr/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AADyHh/XWlqkw8OvqampoqHn6Ojw7+/g29qZlpWBe3yspqf69vfq/v/u4uPyg4TttLXrtLXos7Tnqqvkp6jhpKbfo6LcnJzQw8PG5OPC3Nu+2de71tS20NCxy8yux8ixxMavubuus7OvpqeupaWqo6P39/fz8vLo4+Lv6um9t7l2cHG+uLnz7e7w8fLu9/jq7/Dq7+/m6+zf5OXc4eLZ3t7a3dzW2djT0tHSzczNyMfMx8bHwsHDvr3Au7vGwMC7tLTDu7u8t7a5tLSwq6rc2Nj6+/vx8fHl4N/m4eDr5+Xr5eXTzs7Y0tLk4ODk4eDj39/r5+fj39/i3d3i397i3t7k397i3dzm4eDk397k397j3t3m4eDk397k397n4+Hl4d/k4N/k4N/j397l4N/s5+br5+fl4eEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" IconStd = Base64Str2Image(Icon$) ;SysTray-Icon Standart (Base64Str2Image() ist toller Ersatz für CatchImage(#PB_Any, ?Label)) Icon$="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" IconRec = Base64Str2Image(Icon$) ;SysTray-Icon Aufnahme Icon$="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" IconPlay = Base64Str2Image(Icon$);SysTray-Icon Abspielen If OpenWindow(0, 0, 0, 480, 148, "ImageGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) If IconStd ; CatchImage(0, ?Geebee) ImageGadget(0, 10, 10, 0, 0, ImageID(IconStd)) EndIf If IconRec ImageGadget(1, 110, 10, 0, 0, ImageID(IconRec)) EndIf If IconPlay ImageGadget(2, 210, 10, 0, 0, ImageID(IconPlay)) EndIf Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow EndIf
Code: Alles auswählen
[14:18:26] [COMPILER] Zeile 85: Zahlen zwischen '' sind begrenzt auf 8 Ziffern.
Code: Alles auswählen
If Typ = ' - ' :Typ = #KEYEVENTF_KEYUP ;simuliere #WM_KEYUP
Code: Alles auswählen
Procedure StrWert(*String) ;- liefert nummerischen Wert am Anfang vom String und verkürzt Lezteren entsprechend
Protected String$, Wert$
If *String>1
String$ = LTrim(PeekS(*String))
While FindString("0123456789", Left(String$, 1), 1)
Wert$ + Left(String$, 1)
String$ = Mid(String$, 2)
Wend
PokeS(*String, LTrim(Right(String$, Len(String$) - 1)))
EndIf
ProcedureReturn Val(Wert$)
EndProcedure
Code: Alles auswählen
#Prg_Name = "MakroRekorder"
#PB_Vers = "4.20"
#Prg_Vers = "18608a" ;<-- set by PB_VersUpd Vers 11415a
;Dieses Prg dient dem Aufzeichnen von Tastatur- und Maus-Aktionen sowie dem
;"abspielen" derselben.
;Nach Aufzeichnungs-Start via SysTray-Menue werden alle Tastendrücke und dessen loslassen
;(=Aktionen) in einer Queue gesammelt, bei MausTasten incl. Position.
;Aufnahme-Ende ist erneutes Anklicken des SysTray-Menü´s
;Beim Abspielen werden die gespeicherten Aktionen (TastenDrücke) emuliert.
#Registry_NoUse = 1 ;Registry nicht benutzten, anstelle PreferenzFile (.INI) benutzen
EnableExplicit
Structure Keyboard_HookStrk
vkCode.l
scanCode.l
flags.l
time.l
dwExtraInfo.l
EndStructure
Structure MSLLHOOKSTRUCT
StructureUnion
pt.POINT
ptVal.q
EndStructureUnion
mouseData.l
flags.l
time.l
*dwExtraInfo
EndStructure
Global Makro$, MakroCnt ;aufgezeichnete Aktionen: Aktions-Queue und Anzahl
Global last_mSec ;wg. ZeitMessung zwischen den Aktionen
Global OrgProg_Maus ;Adresse der Orginal-MausProcedure
Global OrgProg_Keyb ;Adresse der Orginal-TastaturProcedure
Global SysTrayNr ;Fenster-#Nr des (gehideten) SysTray-Fensters
Global RefStd$, IconStd ;ToolTip-Text und IconNr für´s SysTray (Standart: weder Aufzeichnung noch abspielen)
Global MakroExit ;Flag: #true, wenn MausZeiger während Aufnahme auf´s SysTray-Icon bewegt wird
Global NewList Makros$() ;Liste aller definierten Makro´s
Global Makros$ ;Namen aller Makros in Makros$() (für´s Auswahl-Menü: "welches Macro abspielen ?")
Global Aktion$
Global Wert$
Global String
Global Icon$
Global IconRec
Global IconPlay
Global *String
Global String$
XIncludeFile "Base64Str2Image.PBI"
XIncludeFile "SysTrayEntry.PBI"
Procedure StrWert(*String) ;- liefert nummerischen Wert am Anfang vom String und verkürzt Lezteren entsprechend
Protected String$, Wert$
If *String>1
String$ = LTrim(PeekS(*String))
While FindString("0123456789", Left(String$, 1), 1)
Wert$ + Left(String$, 1)
String$ = Mid(String$, 2)
Wend
PokeS(*String, LTrim(Right(String$, Len(String$) - 1)))
EndIf
ProcedureReturn Val(Wert$)
EndProcedure
Global Makro_Buff$ ;AufzeichnungsBuffer, enthälte letzte Aktion (kann Klick auf SysTray-Icon (=Aufzeichnunsg-Ende) sein: nicht abspeichern !!!
Procedure MakroRec(Aktion$) ;- Maus- / Tasten-Aktion in Aufzeichnungs-Queue eintragen
Debug "MakroRec(" + Aktion$ + ")"
If Aktion$>""
If last_mSec>0 : Aktion$ = "W" + Str(ElapsedMilliseconds() - last_mSec) + " " + Aktion$ : EndIf
If Makro_Buff$>"" : Makro$ + Makro_Buff$ : MakroCnt + 1 : EndIf
Makro_Buff$ = Aktion$ ;letzte Aktion buffern (wg. Klick auf SysTray-Icon zum Rec-Ende: Diesen _nicht_ speichern !
last_mSec = ElapsedMilliseconds()
EndIf
EndProcedure
#MOUSEEVENTF_WHEEL = $800
Procedure MakroPlay(Makro$) ;- aufgezeichnete Maus-/Keyb-Aktionen "abspielen" (Tastendrücke emulieren)
Protected res, scanCode, Typ, x, y
Debug "MakroPlay(" + Makro$ + ")"
While Trim(Makro$)>""
Typ = Asc(Makro$): Makro$ = Mid(Makro$, 2)
If Typ = 'W' : Delay(StrWert(@Makro$));Wait mSec´s
ElseIf Typ = 'K' ;{Keyb-Aktion
Typ = Asc(Makro$): Makro$ = Mid(Makro$, 2)
scanCode = StrWert(@Makro$)
If Typ = ' - ' :Typ = #KEYEVENTF_KEYUP ;simuliere #WM_KEYUP
Else : Typ = 0 ;simuliere #WM_KEYDOWN
EndIf
keybd_event_(scanCode, 0, Typ, 0);simuliere Taste
;}
ElseIf Typ = 'M' ;{Maus-Aktion
Typ = Asc(Makro$): Makro$ = Mid(Makro$, 2)
x = StrWert(@Makro$)
y = StrWert(@Makro$)
res = SetCursorPos_(x, y);MausCursor positionieren
If Typ = 'L' :Typ = #MOUSEEVENTF_LEFTDOWN ;linke MausTaste drücken
ElseIf Typ = 'l' :Typ = #MOUSEEVENTF_LEFTUP ;linke MausTatse loslassen
ElseIf Typ = 'R' :Typ = #MOUSEEVENTF_RIGHTDOWN ;rechte MausTaste drücken
ElseIf Typ = 'r' :Typ = #MOUSEEVENTF_RIGHTUP ;rechte MausTatse loslassen
ElseIf Typ = 'M' :Typ = #MOUSEEVENTF_MIDDLEDOWN ;mittlere MausTaste drücken
ElseIf Typ = 'm' :Typ = #MOUSEEVENTF_MIDDLEUP ;mittlere MausTatse loslassen
ElseIf Typ = 'W' :Typ = #MOUSEEVENTF_WHEEL ;RausRad rollen
Protected rad=StrWert(@Makro$)
Else : Typ = 0
EndIf
mouse_event_(Typ, 0, 0, rad, 0);Maus-Taste emulieren
;}
EndIf
Wend
EndProcedure
Macro KeybMakro(Mode) ;- Aktion im Keyb-Hook zusammenbauen (Format "K"a s: a=Aktion (+=gedückt -=losgelassen) s=ScanCode der Taste
"K" + Mode + Str(*p\vkCode) + " "
EndMacro
Procedure.l KeyboardHook(nCode, wParam, *p.Keyboard_HookStrk);- der Tastatur-Hook
If wParam = #WM_KEYDOWN Or wParam = #WM_SYSKEYDOWN
Debug "Taste [" + Str(*p\vkCode) + "] gedrückt(ScanCode=" + Str(*p\scanCode) + ")"
MakroRec(KeybMakro("+"))
ElseIf wParam = #WM_KEYUP Or wParam = #WM_SYSKEYUP
Debug "Taste [" + Str(*p\vkCode) + "] losgelassen(ScanCode=" + Str(*p\scanCode) + ")"
MakroRec(KeybMakro("-"))
EndIf
ProcedureReturn CallNextHookEx_(0, nCode, wParam, *p)
EndProcedure
Macro MausMakro(Mode) ;- Aktion in Maus-Hook zusammenbauen (Format "M"a x y: a=Aktion (#WM_?BUTTON???) x/y=MausPos
"M" + Mode + Str(*p\pt\x) + " " + Str(*p\pt\y) + " "
EndMacro
Procedure MouseKeyHook(nCode, wParam, *p.MSLLHOOKSTRUCT);- der Maus-Hook
; Debug "nCode="+Str(nCode)+" wParam="+Str(wParam)+" pos="+Str(*p\pt\x)+" / "+Str(*p\pt\y)
Select wParam
Case #WM_LBUTTONDOWN
Debug "MausTaste+ links " + MausMakro("L")
MakroRec(MausMakro("L"))
Case #WM_LBUTTONUP ;Maus-Taste links loslassen
Debug "MausTaste- links " + MausMakro("l")
MakroRec(MausMakro("l"))
Case #WM_RBUTTONDOWN ;Maus-Taste rechts
Debug "MausTaste+ rechts " + MausMakro("R")
MakroRec(MausMakro("R"))
Case #WM_RBUTTONUP ;Maus-Taste rechts loslassen
Debug "MausTaste- rechts " + MausMakro("r")
MakroRec(MausMakro("r"))
Case #WM_MBUTTONDOWN ;Maus-Taste mitte
Debug "MausTaste+ mitte " + MausMakro("M")
MakroRec(MausMakro("M"))
Case #WM_MBUTTONUP
Debug "MausTaste- mitte " + MausMakro("m")
MakroRec(MausMakro("m"))
Case #WM_MOUSEWHEEL ;MausRad
Protected rad.w = ((*p\mouseData>>16)&$FFFF)
Debug "MausRad "+Str(-(rad / 120))
MakroRec(MausMakro("W")+Str(rad)+" ")
EndSelect
ProcedureReturn CallNextHookEx_(0, nCode, wParam, *p)
EndProcedure
Procedure MakroRec_Exit() ;- laufende Makro-Aufnahme beenden
Protected Msg$, Name$
UnhookWindowsHookEx_(OrgProg_Maus)
UnhookWindowsHookEx_(OrgProg_Keyb)
OrgProg_Keyb = 0 : OrgProg_Maus = 0
If MakroCnt>0
Msg$ = Str(MakroCnt) + " Aktionen speichern"
Name$ = Trim(InputRequester(Msg$, "unter welchem Namen ?", ""))
If Name$>""
; RegistryWrite("Makro", Name$, Makro$) ;<-- aus Platzgründen geREMt
; vorlesen("Makro " + Name$ + " gespeichert") ;<-- aus Platzgründen geREMt
Makros$ + Chr(255) + Name$ + Chr(255)
AddElement(Makros$())
Makros$() = Makro$
EndIf
EndIf
SysTrayNr = SysTrayEntry(RefStd$, Str(IconStd))
Makro$ = "" : MakroCnt = 0 :last_mSec = 0 ;Reset Makro-Daten
DisableMenuItem(1, 1, 0);"Makro aufnehmen" möglich
EndProcedure
;****************************************************************
;** MainSource **
;****************************************************************
DisableExplicit
; IniFile$ = #Prg_Name + ".INI" ;{erstmal alle bereitc definierten Makro´s aus INI-Datei einlesen --> Makros$() und Makros$
; If OpenPreferences(IniFile$)
; If PreferenceGroup("Makro")
; If ExaminePreferenceKeys()
; While NextPreferenceKey()
; AddElement(Makros$())
; Makros$() = PreferenceKeyValue()
; Makros$ + Chr(255) + PreferenceKeyName() + Chr(255) ;Queue der Makro-Namen, mit ^255 geklammert
; Wend
; EndIf
; EndIf
; ClosePreferences()
; EndIf;}
Icon$="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"
IconStd = Base64Str2Image(Icon$) ;SysTray-Icon Standart (Base64Str2Image() ist toller Ersatz für CatchImage(#PB_Any, ?Label))
Icon$="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"
IconRec = Base64Str2Image(Icon$) ;SysTray-Icon Aufnahme
Icon$="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"
IconPlay = Base64Str2Image(Icon$);SysTray-Icon Abspielen
RefStd$ = "Makro-Rekorder" + #LF$ + "kann(Maus-)Tastendrücke" + #LF$ + "aufnehmen und abspielen"
RefRec$ = "nun aufzunehmende(Maus-)Tasten betätigen" + #LF$ + "Aufnahme-Ende: hier Maus-Klick"
RefPlay$ = "Makro wird abgespielt"
SysTrayNr = SysTrayEntry(RefStd$, Str(IconStd))
MenueID = CreatePopupMenu(1)
MenuItem(1, "Makro aufnehmen")
MenuItem(2, "Makro abspielen")
MenuItem(99, "Programm beenden")
;{- Fenster-Aufbau
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_SysTray ;{- SysTray-Aktion
If EventType() = #PB_EventType_LeftClick Or EventType() = #PB_EventType_RightClick
If OrgProg_Maus
MakroRec_Exit()
Else
DisplayPopupMenu(1, SysTray_WinID)
EndIf
EndIf;
Case #PB_Event_Menu ;{- die FunktionsSteuerung
Select EventMenu()
Case 1 ;{Makro aufnehmen
If OrgProg_Maus = 0 ;keine laufende Aufzeichnung
SysTrayNr = SysTrayEntry(RefRec$, Str(IconRec));Aufnahme-Icon in´s SysTray
;- Tastatur-Hook eintragen
Makro$ = "" : Makro_Buff$=""
OrgProg_Maus = SetWindowsHookEx_(#WH_MOUSE_LL, @MouseKeyHook(), GetModuleHandle_(0), 0)
OrgProg_Keyb = SetWindowsHookEx_(#WH_KEYBOARD_LL, @KeyboardHook(), GetModuleHandle_(0), 0)
DisableMenuItem(1, 1, 1);"Makro aufnehmen" ausgrauen
EndIf ;}
Case 2 ;{Makro abspielen
If OrgProg_Maus = 0 ;keine laufende Aufzeichnung
SysTrayNr = SysTrayEntry(RefPlay$, Str(IconPlay));Play-Icon in´s SysTray
DisableMenuItem(1, 1, 1);"Makro aufnehmen" ausgrauen
;MakroNr = Auswahl_Fenster(0, 0, Makros$, "welches Makro abspielen ?") ;<-- aus Platzgründen geREMt
MakroNr=1
If MakroNr
SelectElement(Makros$(), MakroNr - 1)
MakroPlay(Makros$())
EndIf
SysTrayNr = SysTrayEntry(RefStd$, Str(IconStd));Play-Icon in´s SysTray
DisableMenuItem(1, 1, 0);"Makro aufnehmen" ausgrauen
DisableMenuItem(1, 2, 0);"Makro abspielen" ausgrauen
EndIf ;}
Case 99 ;{PrgExit
If OrgProg_Maus ;nicht keine laufende Aufzeichnung
UnhookWindowsHookEx_(OrgProg_Maus)
UnhookWindowsHookEx_(OrgProg_Keyb)
EndIf
End ;}
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
If OrgProg_Maus ;nicht keine laufende Aufzeichnung
UnhookWindowsHookEx_(OrgProg_Maus)
UnhookWindowsHookEx_(OrgProg_Keyb)
EndIf
End
Code: Alles auswählen
;========== Begin Modul "Base64Str2Image.PBI" ==========
;Modul Base64Str2Image Version 1.0 by Axolotl vom 18.07.2024 / 16:52 Uhr
; Brief Example without warranty.
Procedure Base64Str2Image(Icon$)
Protected ret, *buf, bufSize, bytes
bufSize = Len(Icon$)
*buf = AllocateMemory(bufSize)
bytes = Base64Decoder(Icon$, *buf, bufSize)
ret = CatchImage(#PB_Any, *buf, bytes) ; return Image
FreeMemory(*buf)
ProcedureReturn ret
EndProcedure
Icon$="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"
IconStd = Base64Str2Image(Icon$) ;SysTray-Icon Standart (Base64Str2Image() ist toller Ersatz für CatchImage(#PB_Any, ?Label))
Icon$="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"
IconRec = Base64Str2Image(Icon$) ;SysTray-Icon Aufnahme
Icon$="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"
IconPlay = Base64Str2Image(Icon$);SysTray-Icon Abspielen
If OpenWindow(0, 0, 0, 480, 148, "ImageGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If IconStd ; CatchImage(0, ?Geebee)
ImageGadget(0, 10, 10, 0, 0, ImageID(IconStd))
EndIf
If IconRec
ImageGadget(1, 110, 10, 0, 0, ImageID(IconRec))
EndIf
If IconPlay
ImageGadget(2, 210, 10, 0, 0, ImageID(IconPlay))
EndIf
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Ist Typ jetzt als Stringvariable oder als numerische Variable deklariert ?If Typ = ' - ' :Typ = #KEYEVENTF_KEYUP ;simuliere #WM_KEYUP
Egal jetzt, ob String jetzt als Stringvariable oder als numerische Variable deklariert worden ist,If *String>1
H.Brill hat geschrieben: 28.07.2024 19:05 Gerade so beim Überfliegen des Codes entdeckt :
Ist Typ jetzt als Stringvariable oder als numerische Variable deklariert ?If Typ = ' - ' :Typ = #KEYEVENTF_KEYUP ;simuliere #WM_KEYUP
Du fragst Typ nach einem Bindestrich ab und wenn ja, dann willst du einen numerischen Wert
(Hexidezimaler Wert von #KEYEVENT_KEYUP) reinschreiben. Da mußt du halt 2 verschiedene
Variablen verwenden.
Genauso bei :Egal jetzt, ob String jetzt als Stringvariable oder als numerische Variable deklariert worden ist,If *String>1
wird *String (* = Adresse auf Var) immer größer 1 sein.
So ein paar Spielregeln von PB solltest du schon beachten, damit da keine ungewollten Sachen
entstehen. Ist aber bei allen Sprachen ähnlich.
Code: Alles auswählen
#Prg_Name = "MakroRekorder"
#PB_Vers = "4.20"
#Prg_Vers = "18608a" ;<-- set by PB_VersUpd Vers 11415a
;Dieses Prg dient dem Aufzeichnen von Tastatur- und Maus-Aktionen sowie dem
;"abspielen" derselben.
;Nach Aufzeichnungs-Start via SysTray-Menue werden alle Tastendrücke und dessen loslassen
;(=Aktionen) in einer Queue gesammelt, bei MausTasten incl. Position.
;Aufnahme-Ende ist erneutes Anklicken des SysTray-Menü´s
;Beim Abspielen werden die gespeicherten Aktionen (TastenDrücke) emuliert.
#Registry_NoUse = 1 ;Registry nicht benutzten, anstelle PreferenzFile (.INI) benutzen
EnableExplicit
Structure Keyboard_HookStrk
vkCode.l
scanCode.l
flags.l
time.l
dwExtraInfo.l
EndStructure
Structure MSLLHOOKSTRUCT
StructureUnion
pt.POINT
ptVal.q
EndStructureUnion
mouseData.l
flags.l
time.l
*dwExtraInfo
EndStructure
Global Makro$, MakroCnt ;aufgezeichnete Aktionen: Aktions-Queue und Anzahl
Global last_mSec ;wg. ZeitMessung zwischen den Aktionen
Global OrgProg_Maus ;Adresse der Orginal-MausProcedure
Global OrgProg_Keyb ;Adresse der Orginal-TastaturProcedure
Global SysTrayNr ;Fenster-#Nr des (gehideten) SysTray-Fensters
Global RefStd$, IconStd ;ToolTip-Text und IconNr für´s SysTray (Standart: weder Aufzeichnung noch abspielen)
Global MakroExit ;Flag: #true, wenn MausZeiger während Aufnahme auf´s SysTray-Icon bewegt wird
Global NewList Makros$() ;Liste aller definierten Makro´s
Global Makros$ ;Namen aller Makros in Makros$() (für´s Auswahl-Menü: "welches Macro abspielen ?")
Global Icon$
Global IconRec
Global IconPlay
XIncludeFile "./PBI/Base64Str2Image.PBI"
XIncludeFile "./PBI/SysTrayEntry.PBI"
Procedure StrWert(*String) ;- liefert nummerischen Wert am Anfang vom String und verkürzt Lezteren entsprechend
Protected String$, Wert$
If *String>1
String$ = LTrim(PeekS(*String))
While FindString("0123456789", Left(String$, 1), 1)
Wert$ + Left(String$, 1)
String$ = Mid(String$, 2)
Wend
PokeS(*String, LTrim(Right(String$, Len(String$) - 1)))
EndIf
ProcedureReturn Val(Wert$)
EndProcedure
Global Makro_Buff$ ;AufzeichnungsBuffer, enthälte letzte Aktion (kann Klick auf SysTray-Icon (=Aufzeichnunsg-Ende) sein: nicht abspeichern !!!
Procedure MakroRec(Aktion$) ;- Maus- / Tasten-Aktion in Aufzeichnungs-Queue eintragen
Debug "MakroRec(" + Aktion$ + ")"
If Aktion$>""
If last_mSec>0 : Aktion$ = "W" + Str(ElapsedMilliseconds() - last_mSec) + " " + Aktion$ : EndIf
If Makro_Buff$>"" : Makro$ + Makro_Buff$ : MakroCnt + 1 : EndIf
Makro_Buff$ = Aktion$ ;letzte Aktion buffern (wg. Klick auf SysTray-Icon zum Rec-Ende: Diesen _nicht_ speichern !
last_mSec = ElapsedMilliseconds()
EndIf
EndProcedure
#MOUSEEVENTF_WHEEL = $800
Global TypStr.d
Global TypHEX.d
Procedure MakroPlay(Makro$) ;- aufgezeichnete Maus-/Keyb-Aktionen "abspielen" (Tastendrücke emulieren)
Protected res, scanCode, TypHEX.d, x, y
Debug "MakroPlay(" + Makro$ + ")"
While Trim(Makro$)>""
TypStr.d = Asc(Makro$): Makro$ = Mid(Makro$, 2)
If TypStr.d = 'W' : Delay(StrWert(@Makro$));Wait mSec´s
ElseIf TypStr.d = 'K' ;{Keyb-Aktion
TypStr.d = Asc(Makro$): Makro$ = Mid(Makro$, 2)
scanCode = StrWert(@Makro$)
If TypStr.d = '-' :TypHEX.d = #KEYEVENTF_KEYUP ;simuliere #WM_KEYUP
Else : TypStr.d = 0 ;simuliere #WM_KEYDOWN
EndIf
keybd_event_(scanCode, 0, TypHEX.d, 0);simuliere Taste
;}
ElseIf TypStr.d = 'M' ;{Maus-Aktion
TypStr.d = Asc(Makro$): Makro$ = Mid(Makro$, 2)
x = StrWert(@Makro$)
y = StrWert(@Makro$)
res = SetCursorPos_(x, y);MausCursor positionieren
If TypStr.d = 'L' :TypHEX.d = #MOUSEEVENTF_LEFTDOWN ;linke MausTaste drücken
ElseIf TypStr.d = 'l' :TypHEX.d = #MOUSEEVENTF_LEFTUP ;linke MausTatse loslassen
ElseIf TypStr.d = 'R' :TypHEX.d = #MOUSEEVENTF_RIGHTDOWN ;rechte MausTaste drücken
ElseIf TypStr.d = 'r' :TypHEX.d = #MOUSEEVENTF_RIGHTUP ;rechte MausTatse loslassen
ElseIf TypStr.d = 'M' :TypHEX.d = #MOUSEEVENTF_MIDDLEDOWN ;mittlere MausTaste drücken
ElseIf TypStr.d = 'm' :TypHEX.d = #MOUSEEVENTF_MIDDLEUP ;mittlere MausTatse loslassen
ElseIf TypStr.d = 'W' :TypHEX.d = #MOUSEEVENTF_WHEEL ;RausRad rollen
Protected rad=StrWert(@Makro$)
Else : TypStr.d = 0
EndIf
mouse_event_(TypStr.d, 0, 0, rad, 0);Maus-Taste emulieren
;}
EndIf
Wend
EndProcedure
Macro KeybMakro(Mode) ;- Aktion im Keyb-Hook zusammenbauen (Format "K"a s: a=Aktion (+=gedückt -=losgelassen) s=ScanCode der Taste
"K" + Mode + Str(*p\vkCode) + " "
EndMacro
Procedure.l KeyboardHook(nCode, wParam, *p.Keyboard_HookStrk);- der Tastatur-Hook
If wParam = #WM_KEYDOWN Or wParam = #WM_SYSKEYDOWN
Debug "Taste [" + Str(*p\vkCode) + "] gedrückt(ScanCode=" + Str(*p\scanCode) + ")"
MakroRec(KeybMakro("+"))
ElseIf wParam = #WM_KEYUP Or wParam = #WM_SYSKEYUP
Debug "Taste [" + Str(*p\vkCode) + "] losgelassen(ScanCode=" + Str(*p\scanCode) + ")"
MakroRec(KeybMakro("-"))
EndIf
ProcedureReturn CallNextHookEx_(0, nCode, wParam, *p)
EndProcedure
Macro MausMakro(Mode) ;- Aktion in Maus-Hook zusammenbauen (Format "M"a x y: a=Aktion (#WM_?BUTTON???) x/y=MausPos
"M" + Mode + Str(*p\pt\x) + " " + Str(*p\pt\y) + " "
EndMacro
Procedure MouseKeyHook(nCode, wParam, *p.MSLLHOOKSTRUCT);- der Maus-Hook
; Debug "nCode="+Str(nCode)+" wParam="+Str(wParam)+" pos="+Str(*p\pt\x)+" / "+Str(*p\pt\y)
Select wParam
Case #WM_LBUTTONDOWN
Debug "MausTaste+ links " + MausMakro("L")
MakroRec(MausMakro("L"))
Case #WM_LBUTTONUP ;Maus-Taste links loslassen
Debug "MausTaste- links " + MausMakro("l")
MakroRec(MausMakro("l"))
Case #WM_RBUTTONDOWN ;Maus-Taste rechts
Debug "MausTaste+ rechts " + MausMakro("R")
MakroRec(MausMakro("R"))
Case #WM_RBUTTONUP ;Maus-Taste rechts loslassen
Debug "MausTaste- rechts " + MausMakro("r")
MakroRec(MausMakro("r"))
Case #WM_MBUTTONDOWN ;Maus-Taste mitte
Debug "MausTaste+ mitte " + MausMakro("M")
MakroRec(MausMakro("M"))
Case #WM_MBUTTONUP
Debug "MausTaste- mitte " + MausMakro("m")
MakroRec(MausMakro("m"))
Case #WM_MOUSEWHEEL ;MausRad
Protected rad.w = ((*p\mouseData>>16)&$FFFF)
Debug "MausRad "+Str(-(rad / 120))
MakroRec(MausMakro("W")+Str(rad)+" ")
EndSelect
ProcedureReturn CallNextHookEx_(0, nCode, wParam, *p)
EndProcedure
Procedure MakroRec_Exit() ;- laufende Makro-Aufnahme beenden
Protected Msg$, Name$
UnhookWindowsHookEx_(OrgProg_Maus)
UnhookWindowsHookEx_(OrgProg_Keyb)
OrgProg_Keyb = 0 : OrgProg_Maus = 0
If MakroCnt>0
Msg$ = Str(MakroCnt) + " Aktionen speichern"
Name$ = Trim(InputRequester(Msg$, "unter welchem Namen ?", ""))
If Name$>""
; RegistryWrite("Makro", Name$, Makro$) ;<-- aus Platzgründen geREMt
; vorlesen("Makro " + Name$ + " gespeichert") ;<-- aus Platzgründen geREMt
Makros$ + Chr(255) + Name$ + Chr(255)
AddElement(Makros$())
Makros$() = Makro$
EndIf
EndIf
SysTrayNr = SysTrayEntry(RefStd$, Str(IconStd))
Makro$ = "" : MakroCnt = 0 :last_mSec = 0 ;Reset Makro-Daten
DisableMenuItem(1, 1, 0);"Makro aufnehmen" möglich
EndProcedure
;****************************************************************
;** MainSource **
;****************************************************************
DisableExplicit
; IniFile$ = #Prg_Name + ".INI" ;{erstmal alle bereitc definierten Makro´s aus INI-Datei einlesen --> Makros$() und Makros$
; If OpenPreferences(IniFile$)
; If PreferenceGroup("Makro")
; If ExaminePreferenceKeys()
; While NextPreferenceKey()
; AddElement(Makros$())
; Makros$() = PreferenceKeyValue()
; Makros$ + Chr(255) + PreferenceKeyName() + Chr(255) ;Queue der Makro-Namen, mit ^255 geklammert
; Wend
; EndIf
; EndIf
; ClosePreferences()
; EndIf;}
Icon$="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"
IconStd = Base64Str2Image(Icon$) ;SysTray-Icon Standart (Base64Str2Image() ist toller Ersatz für CatchImage(#PB_Any, ?Label))
Icon$="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"
IconRec = Base64Str2Image(Icon$) ;SysTray-Icon Aufnahme
Icon$="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"
IconPlay = Base64Str2Image(Icon$);SysTray-Icon Abspielen
RefStd$ = "Makro-Rekorder" + #LF$ + "kann(Maus-)Tastendrücke" + #LF$ + "aufnehmen und abspielen"
RefRec$ = "nun aufzunehmende(Maus-)Tasten betätigen" + #LF$ + "Aufnahme-Ende: hier Maus-Klick"
RefPlay$ = "Makro wird abgespielt"
SysTrayNr = SysTrayEntry(RefStd$, Str(IconStd))
MenueID = CreatePopupMenu(1)
MenuItem(1, "Makro aufnehmen")
MenuItem(2, "Makro abspielen")
MenuItem(99, "Programm beenden")
;{- Fenster-Aufbau
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_SysTray ;{- SysTray-Aktion
If EventType() = #PB_EventType_LeftClick Or EventType() = #PB_EventType_RightClick
If OrgProg_Maus
MakroRec_Exit()
Else
DisplayPopupMenu(1, SysTray_WinID)
EndIf
EndIf;
Case #PB_Event_Menu ;{- die FunktionsSteuerung
Select EventMenu()
Case 1 ;{Makro aufnehmen
If OrgProg_Maus = 0 ;keine laufende Aufzeichnung
SysTrayNr = SysTrayEntry(RefRec$, Str(IconRec));Aufnahme-Icon in´s SysTray
;- Tastatur-Hook eintragen
Makro$ = "" : Makro_Buff$=""
OrgProg_Maus = SetWindowsHookEx_(#WH_MOUSE_LL, @MouseKeyHook(), GetModuleHandle_(0), 0)
OrgProg_Keyb = SetWindowsHookEx_(#WH_KEYBOARD_LL, @KeyboardHook(), GetModuleHandle_(0), 0)
DisableMenuItem(1, 1, 1);"Makro aufnehmen" ausgrauen
EndIf ;}
Case 2 ;{Makro abspielen
If OrgProg_Maus = 0 ;keine laufende Aufzeichnung
SysTrayNr = SysTrayEntry(RefPlay$, Str(IconPlay));Play-Icon in´s SysTray
DisableMenuItem(1, 1, 1);"Makro aufnehmen" ausgrauen
;MakroNr = Auswahl_Fenster(0, 0, Makros$, "welches Makro abspielen ?") ;<-- aus Platzgründen geREMt
MakroNr=1
If MakroNr
SelectElement(Makros$(), MakroNr - 1)
MakroPlay(Makros$())
EndIf
SysTrayNr = SysTrayEntry(RefStd$, Str(IconStd));Play-Icon in´s SysTray
DisableMenuItem(1, 1, 0);"Makro aufnehmen" ausgrauen
DisableMenuItem(1, 2, 0);"Makro abspielen" ausgrauen
EndIf ;}
Case 99 ;{PrgExit
If OrgProg_Maus ;nicht keine laufende Aufzeichnung
UnhookWindowsHookEx_(OrgProg_Maus)
UnhookWindowsHookEx_(OrgProg_Keyb)
EndIf
End ;}
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
If OrgProg_Maus ;nicht keine laufende Aufzeichnung
UnhookWindowsHookEx_(OrgProg_Maus)
UnhookWindowsHookEx_(OrgProg_Keyb)
EndIf
End
Code: Alles auswählen
; Brief Example without warranty.
Procedure Base64Str2Image(Icon$)
Protected ret, *buf, bufSize, bytes
bufSize = Len(Icon$)
*buf = AllocateMemory(bufSize)
bytes = Base64Decoder(Icon$, *buf, bufSize)
ret = CatchImage(#PB_Any, *buf, bytes) ; return Image
FreeMemory(*buf)
ProcedureReturn ret
EndProcedure
Icon$="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"
IconStd = Base64Str2Image(Icon$) ;SysTray-Icon Standart (Base64Str2Image() ist toller Ersatz für CatchImage(#PB_Any, ?Label))
Icon$="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"
IconRec = Base64Str2Image(Icon$) ;SysTray-Icon Aufnahme
Icon$="AAABAAEAICAAAAEAGACoDAAAFgAAACgAAAAgAAAAQAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCfXxva2pwbm5vbW1ta2tta2tta2tvbW1ubGxubGxta2twbm5vbW1vbW1vbW1vbW1vbW1vbW1vbW1vbW1vbW1vbW1vbWxsamlta2pxb25ta2tta2t7eXmxsLDf2djg29p1c3Jta2tta2t5d3d4dnZzcXF3dXV3dXVycHBzcXFta2tsampsampsampta2tubGxraWlta2tsampsampsampsamtraWh1c3NzcXB0cnJ1c3N0cnJubGyHhYXg29nh3Nt0cXFxcG+BfH2PiYrCwMC/vb25t7e6uLi8u7q+vLy+vLy9u7u6uLi7ubm8urq9u7y/vr7Bv7/CwMDCwMDCwMDDwcHAvr7Bv7/Bv8C/vb7Bv7/Bv7/BwMC6ubnSzcvd2NdvbW10cXGEe3yOh4e5tLXQzM3b1tff29vl4OHx7O3f29rKxsbHxMPGwsLFwcHEwcDDwL/Cvr7Cv77AvbzJxcTPy8rY1NPU0M/EwMDHw8PFwsHEwcDBvr3Hw8Pw6+ro4+Jta2tycHCBeHmnoKH69PX07u/79PZ6dnckIyMpKCg+PDz69fPf2tne2NfY09LW0c/Uz83Qy8nIw8LQy8p3c3MbGhogHx8kIyO7tbayq6ywqKiwp6etpKStpaXo4+Lv6ul0cXFwbm1/dni4sbL48/Tw6uv07u/Ev8AAAAAAAAAAAADFwL/j3t3d1tfgz9rgy9rcx9bXwtHUw87h2tsAAAAAAAAAAAAAAADJwsOzrq+0rKyyqqqvp6eon6Dg29rr5uV7eHZtbGt8dXa9uLn58/Tw6evu6On///8MDAwAAAAAAABVU1P+5/bq0eSI4oRm52No5WVi41+H4YOjmJkAAAAAAAAAAABaV1fDvL2zra+0rKuyqqqvp6eooKDl4N/s5+Z8eHdta2p8dXa7tbb48/Tu6uvu6On38fKGgoIAAAAAAAAAAABy/3sA/wAA/wAA/wAA/wAA/wAA/wAAtDIAAAAAAAAAAAC7tba5s7S0ra+0rKuyqqqvp6eooKDk4eDt6Od8eHdtammBeHm7tbb48/Ts6+vu6Ons5uf48vIAAAAAAAAAAAAAdBwA2QAAzwAAzwAAzwAAzwAA3wAANCcAAAAAAAA2KDHNxsm2sbK2ra+0rKuyqqqwp6enoKDj4uHu6ul8eHdtbGqAeHm6tLX48/Ts6+vu6Onq5OX+9/hSQ0kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfzXOu8S4sLO2ra+0rKuyqqqwp6enn6Dm5OPw6+p9eXhubWuCenu7tbb48vTs6+vu6Onq5OX/6/ovnnYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgA/xgY+RTNp8i2ra+0rKuyqqqwp6enn5/o5uXx7ex9eHhubGyDe329t7j48vPu6uvu6Ony4+zC6L8A/wAAADIAAAAAAAAADgwANwAALwAALwAAPwAAAA8AAAAAAAAAQjMA/wAA/wCavZS8qrSzrKuyqqqwp6enn5/o5uXz7+59d3lubWyCfH2+uLn48vPw6evu6On+4vk7+DkA/wAAajgAAAAAAAAAACQA/w0A/wAA/wAA6zIAAAEAAAAAAAAAvTwA/wAA/wAv6yzIpb6zrKuyqqqwp6enn5/o5+X28fB8d3hubGyEfX6+uLn48vPw6uvu6On/4P8A/wAA/wAA/xcAAAkAAAAAAAAAqTkA/wAA/wAAVjgAAAAAAAAAADEA/wAA/wAA/wAA/wDVoMqzrKuyqqqwp6emn5/q5+b38vF8dndubGyFfn++uLn48vPw6uv15/C467QA/wAA/wAA/wAALCsAAAAAAAAALDUA/wAA/w0AACAAAAAAAAAAfy0A/wAA/wAA/wAA/wCQv4i5qbGyqqqwp6emn5/p5+b28vF7d3dubGuGgIG+uLn48vPw6uv15/DB6bwA/wAA/wAA/wAAqTgAAAAAAAAAABIA/xgArTUAAAAAAAAAABUA/h0A/wAA/wAA/wAA/wCWvY65qbGyqqqwp6emn5/q6Oj38vJ5d3ZubGuHgYK9t7j48vPw6uv35/Kp7KUA/wAA/wAA/wAA/w0AACQAAAAAAAAAlyoAPCkAAAAAAAAARCUA/wAA/wAA/wAA/wAA/wCWvY65qbGyqqqwp6emn5/r6Or48vN5d3ZtbGuIgYO+uLn48vPw6uv15/C76rcA/wAA/wAA/wAA/wAAVEAAAAAAAAAAICEAABAAAAAAAAAApUgA/wAA/wAA/wAA/wAA/wCRv4q5qbGyqqqwp6emn5/r6On48vN5d3ZtbGuIgoO/ubr48vPw6uvv5+r54/QA/wAA/wAA/wAA/wAA6icAAAIAAAAAAAAAAAAAAAAAADoA/wAA/wAA/wAA/wAA/wAA/wDFqbu1q62yqqqwp6emn5/r6On48vN7d3ZwbGuJg4S+uLn48vPv6+zt8/T/8P8R/xwA/wAA/wAA/wAA/wAAFDsAAAAAAAAAAAAAAAAAaj0A/wAA/wAA/wAA/wAA/wAJ/xzEudeturqwrKywp6emn5/q6er39PR9d3ZxbGuJg4W9t7j4+vvv+Pn0i4z/W2ikiTQA/wAA/wAA/wAA/wAAqycAAAAAAAAAAAAAABAA/xgA/wAA/wAA/wAA/wAA/wC0OgD/AADyHBywrKytra2mn5/p6+r39vZ8d3ZxbGqKhIW+wMH54+T/AAD8FRX1amv/THQA/wUA/wAA/wAA/wAA/w4AABoAAAAAAAAAIDwA/wAA/wAA/wAA/wAA/wAA/wDOtNqozM3dTk7/AACvqqqloaHp6ur29fV8d3ZxbGqKhoe/xsf/AAD0mZrq///o8vPr7/bb4dYA/wAA/wAA/wAA/wAA/wAA/wAA/wAA/wAA/wAA/wAA/wAA/wAA/wCwuKu7sLW2ra2qwcHcTEzyGxugra3q6+v19PR8d3ZwbGqKjo/FcXL/MDDu///t5+jp4+To4uP23fCa6JYA/wAA/wAA/wAA/wAA/wAA/wAA/wAA/wAA/wAA/wAA/wB+zXzGr8G4sbG3ra6zrKujyMj/AACdsrLp6ur29fV8d3ZwbGqKlJXQNzj+cnLv+Prs5ufp4+Tn4eLm3+Hw6vvpPCwO6gAA/wAA/wAA/wAA/wAA/wAA/wAA/wAV2QC7qZjGs8a5tLW6r7K4rK+zrKumwcH/AACdtLTp6ur39fV9eHdwa2qKk5XQODn9eHfv+Pnu6Onr5ebp4+Tn4eLi9/f/Fxv/mr6f56NF8UMl9iQT+hIk9SNB7D+N4p3/BiraeHy3v8G5tLW6r7K4rK+yrq6wrKz/AACdsrLp6ur39fV+eXhwa2qLjpDHdnf/AADt///u6erq5OXp4+Tm5+nj6Of/AADc5uXj1t/oz+LnyuHmxt/gwtnbwdTMxs/Tion/AACyzc22vr+4tbe2srSmysrzGhriPT2hqqrp6ur39fVzcHBvbGuLhYa/2tz/Fxb7Ojvs///o/P3m+/zm5+n/AADufX3Y/PvX6ujU5uXQ4uHL5eTF4N7E392/2tm07OvlS0v/AADPf4DDkZHDkZL6Cwr/AACptLSooqLq6ur29fWLiIdoZmWLhYbFwcL0///8Jyf/AAD8Hh78Ghr/AAD/AAD5KSn7FBT7FBP7ExP5Ghr/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AADyHh/XWlqkw8OvqampoqHn6Ojw7+/g29qZlpWBe3yspqf69vfq/v/u4uPyg4TttLXrtLXos7Tnqqvkp6jhpKbfo6LcnJzQw8PG5OPC3Nu+2de71tS20NCxy8yux8ixxMavubuus7OvpqeupaWqo6P39/fz8vLo4+Lv6um9t7l2cHG+uLnz7e7w8fLu9/jq7/Dq7+/m6+zf5OXc4eLZ3t7a3dzW2djT0tHSzczNyMfMx8bHwsHDvr3Au7vGwMC7tLTDu7u8t7a5tLSwq6rc2Nj6+/vx8fHl4N/m4eDr5+Xr5eXTzs7Y0tLk4ODk4eDj39/r5+fj39/i3d3i397i3t7k397i3dzm4eDk397k397j3t3m4eDk397k397n4+Hl4d/k4N/k4N/j397l4N/s5+br5+fl4eEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
IconPlay = Base64Str2Image(Icon$);SysTray-Icon Abspielen
;
; If OpenWindow(0, 0, 0, 480, 148, "ImageGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
; If IconStd ; CatchImage(0, ?Geebee)
; ImageGadget(0, 10, 10, 0, 0, ImageID(IconStd))
; EndIf
; If IconRec
; ImageGadget(1, 110, 10, 0, 0, ImageID(IconRec))
; EndIf
; If IconPlay
; ImageGadget(2, 210, 10, 0, 0, ImageID(IconPlay))
; EndIf
; Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
;EndIf