Huhu,
hier ein kleines Skript, das dazu dient, eigene Makros zu erstellen.
Spoiler anzeigen
#include <Misc.au3>
#include <WinAPI.au3>
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
Opt("TrayMenuMode",1)
[/autoit] [autoit][/autoit] [autoit]Global $aGui[5]
Global $pfad = @ScriptDir & '\ReadMe.txt'
Global $dll = DllOpen("user32.dll")
Global $title_m = "MM"
Global $time = TimerInit()
$gui = GUICreate($title_m, 188, 100, @DesktopWidth-190, @DesktopHeight-190, BitOR($WS_POPUP, $WS_SYSMENU, $WS_MINIMIZEBOX, $WS_BORDER))
$aGui[4] = GUICtrlCreateLabel("", 8, 80, 150, 17)
GUICtrlSetFont (-1, 12)
$Tab1 = GUICtrlCreateTab(1, 0, 183, 81)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
$Hotkey = GUICtrlCreateTabItem("Hotkey")
$aGui[0] = GUICtrlCreateInput("N8", 8, 40, 73, 21)
$Input = GUICtrlCreateTabItem("Input")
$aGui[1] = GUICtrlCreateInput("ENTER|/resign|ENTER", 8, 40, 169, 21)
$Help = GUICtrlCreateTabItem("Help")
GUICtrlSetState(-1,$GUI_SHOW)
$aGui[2] = GUICtrlCreateLabel("Makro Monkey Vers 0.2 alpha", 35, 60)
GUICtrlSetFont (-1, ![]()
$aGui[3] = GUICtrlCreateLabel("ReadMe", 8, 32)
GUICtrlCreateTabItem("")
$menue = TrayCreateItem("Settings")
$hotkey = TrayCreateItem("N8")
TrayCreateItem("")
$exit = TrayCreateItem("Exit")
GUISetState(@SW_HIDE)
While 1
$msg = TrayGetMsg()
$msg_g =GUIGetMsg()
Select
Case $msg = $menue
If TrayItemGetState($menue) <> 68 Then
GUISetState(@SW_SHOW)
Else
GUISetState(@SW_HIDE)
EndIf
Case $msg = $hotkey
TrayItemSetState($hotkey, 4)
Case $msg = $exit
DllClose($dll)
Exit
EndSelect
Select
Case $msg_g = $aGui[3]
ShellExecute($pfad)
Case $msg_g = $GUI_EVENT_CLOSE
GUISetState(@SW_HIDE)
TrayItemSetState($menue, 4)
EndSelect
If _IsPressed(_hotkeycheck(String(GUICtrlRead($aGui[0]))), $dll) Then
NoSpam(100)
If GUICtrlRead($Tab1, 0) <> 0 Then
If StringInStr(GUICtrlRead($aGui[1]), '|') Then
$swap = StringSplit(GUICtrlRead($aGui[1]), '|', 2)
Sleep(Random(25, 100, 1))
For $i = 0 To (UBound($swap)-1)
If StringInStr($swap[$i], 'ENTER', 1) Or StringInStr($swap[$i], 'SPACE', 1) Or StringInStr($swap[$i], 'UP', 1) Or StringInStr($swap[$i], 'DOWN', 1) Or StringInStr($swap[$i], 'LIFT', 1) Or StringInStr($swap[$i], 'RIGHT', 1) Or StringInStr($swap[$i], 'ESCAPE', 1) Or StringInStr($swap[$i], 'SHIFT', 1) Or StringInStr($swap[$i], 'CAPSLOCK ON', 1) Or StringInStr($swap[$i], 'CAPSLOCK OFF', 1) Or StringInStr($swap[$i], 'SLEEP', 1) Then
If IsNumber(_commands($swap[$i])) Then
Sleep(_commands($swap[$i])*1000)
Else
Send(_commands($swap[$i]))
EndIf
Else
Send($swap[$i])
EndIf
Next
Else
Sleep(Random(25, 100, 1))
Send(GUICtrlRead($aGui[1]))
EndIf
EndIf
Sleep(Random(25, 100, 1))
ElseIf _IsPressed('1B') Then
Exit
EndIf
WEnd
Func _hotkeycheck($key)
Dim $key, $keys='30,0|31,1|32,2|33,3|34,4|35,5|36,6|37,7|38,8|39,9|41,A|42,B|43,C|44,D|45,E|46,F|47,G|48,H|49,I|4A,J|4B,K|4C,L|4D,M|4E,N|4F,O|50,P|51,Q|52,R|53,S|54,T|55,U|56,V|57,W|58,X|59,Y|5A,Z|60,N0|61,N1|62,N2|63,N3|64,N4|65,N5|66,N6|67,N7|68,N8|69,N9|02,MausR|01,MausL'
$keyL = StringSplit($keys, '|', 2)
For $j = 0 To (UBound($keyL)-1)
$buff = StringSplit($keyL[$j], ',', 2)
If $buff[1] = $key Then
Return $buff[0]
ExitLoop
EndIf
If Not StringInStr($keys, $key, 0) Then
TrayTip("Error","Not a valid Hotkey",4 , 3)
Else
title_()
EndIf
Next
EndFunc
Func _commands($string)
Dim $string
If 'ENTER' = $string Then
Return '{ENTER}'
EndIf
If 'SPACE' = $string Then
Return '{SPACE}'
EndIf
If 'UP' = $string Then
Return '{UP}'
EndIf
If 'DOWN' = $string Then
Return '{DOWN}'
EndIf
If 'LEFT' = $string Then
Return '{LEFT}'
EndIf
If 'RIGHT' = $string Then
Return '{RIGHT}'
EndIf
If 'ESCAPE' = $string Then
Return '{ESCAPE}'
EndIf
If 'SHIFT' = $string Then
Return '{LSHIFT}'
EndIf
If 'CAPSLOCK ON' = $string Then
Return '{CAPSLOCK ON}'
EndIf
If 'CAPSLOCK OFF' = $string Then
Return '{CAPSLOCK OFF}'
EndIf
If StringInStr($string, 'SLEEP', 1) Then
$buff_ = StringSplit($string, ':', 2)
Return Number($buff_[1])
EndIf
EndFunc
Func NoSpam($delay)
Local $key = False
Do
Sleep($delay)
If Not _IsPressed(_hotkeycheck(String(GUICtrlRead($aGui[0]))), $dll) Then
$key = True
Else
$key = False
EndIf
Until $key = True
EndFunc
Func title_()
If TimerDiff($time) > 500 Then
GUICtrlSetData($aGui[4], "MM" & "-" & GUICtrlRead($aGui[0]))
TrayItemSetText($hotkey, "Hotkey " & GUICtrlRead($aGui[0]))
$time = TimerInit()
EndIf
EndFunc
ReadMe
Spoiler anzeigen
A 'lil macro Tool
Supported Hotkeys:
A to Z
0 to 9
0 to 9 Numpad ( enter N0 to N9 to use it)
Sign to split commands and text: '|'
Use capital letters for commands.
included commands:
ENTER
SPACE
UP
DOWN
LEFT
RIGHT
ESCAPE
SHIFT
CAPSLOCK ON
CAPSLOCK OFF
SLEEP:x replace x with a number
Example for input:
ENTER|/resign|ENTER
SLEEP:10|Hello
Mögliche Erweiterungen:
kontrolle über Programme
Mauskontrolle
grafische Oberfläche interessanter gestalten
for-Schleifen
mfG bocky