Screenshot Script

  • So

    ich hab jetzt mal ein kleines script geschrieben mit dem man screenshots machen kann
    bin auf die idee gekommen weil ich in so nem spiel meinen score screenen wollte
    und ja dan dacht ich mir
    warum nich auch n datum dazu
    und jetz bin ich soweit das man sogar noch n eigenen text eintragen kann :Dweis nich ob jmd was damit anfangen kann aber ich stells halt ma online


    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <GDIPlus.au3>
    #include <ScreenCapture.au3>
    #include <Date.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    #Include <String.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Hotkeyset("{PRINTSCREEN}", "_Main")
    #Region ### START Koda GUI section ###
    $Form1 = GUICreate("Einstellungen", 490, 274, @DesktopWidth - 500, @DesktopHeight - 334)
    $Button1 = GUICtrlCreateButton("Ok", 368, 216, 97, 41, 0)
    $Group1 = GUICtrlCreateGroup("Oben Mitte", 8, 8, 153, 129)
    $Radio3 = GUICtrlCreateRadio("Anderes", 16, 72, 113, 17)
    $Radio1 = GUICtrlCreateRadio("Nichts", 16, 24, 113, 17)
    $Radio2 = GUICtrlCreateRadio("Aktuelles Datum", 16, 48, 113, 17)
    $Input1 = GUICtrlCreateInput("", 16, 96, 121, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Unten Rechts", 169, 8, 153, 129)
    $Radio4 = GUICtrlCreateRadio("Anderes", 177, 72, 113, 17)
    $Radio5 = GUICtrlCreateRadio("Nichts", 177, 24, 113, 17)
    $Radio6 = GUICtrlCreateRadio("Aktuelles Datum", 177, 48, 113, 17)
    $Input2 = GUICtrlCreateInput("", 177, 96, 121, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group3 = GUICtrlCreateGroup("Unten Links", 330, 8, 153, 129)
    $Radio7 = GUICtrlCreateRadio("Nichts", 338, 24, 113, 17)
    $Radio8 = GUICtrlCreateRadio("Aktuelles Datum", 338, 48, 113, 17)
    $Radio9 = GUICtrlCreateRadio("Anderes", 338, 72, 113, 17)
    $Input3 = GUICtrlCreateInput("", 338, 96, 121, 21)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group4 = GUICtrlCreateGroup("Speicherort", 8, 152, 473, 49)
    $Input4 = GUICtrlCreateInput("", 16, 168, 353, 21)
    $Button2 = GUICtrlCreateButton("Durchsuchen", 374, 166, 97, 25, 0)
    $Input5 = GUICtrlCreateInput("", 200, 232, 97, 21)
    $Group5 = GUICtrlCreateGroup("Speichername", 192, 208, 139, 57)
    $Label3 = GUICtrlCreateLabel(".JPG", 298, 236, 27, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group6 = GUICtrlCreateGroup("Farbe", 8, 208, 169, 57)
    $Label4 = GUICtrlCreateLabel("", 130, 224, 36, 33)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $Button3 = GUICtrlCreateButton("Auswählen", 21, 228, 97, 25, 0)
    GUISetState(@SW_hide)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    TraySetClick (8)
    Opt("TrayMenuMode", 1)
    $settings = TrayCreateItem("Einstellungen")
    TrayCreateItem("")
    $exit = TrayCreateItem("Exit")

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $tmsg = TrayGetMsg()
    Switch $tmsg
    Case $exit
    Exit
    Case $settings
    $Read1 = Iniread("Data.ini", "Oben Mitte", "Option", "0")
    $Read2 = Iniread("Data.ini", "Rechts Unten", "Option", "0")
    $Read3 = Iniread("Data.ini", "Links Unten", "Option", "0")
    $Read4 = Iniread("Data.ini", "Oben Mitte", "Text", "")
    $Read5 = Iniread("Data.ini", "Rechts Unten", "Text", "")
    $Read6 = Iniread("Data.ini", "Links Unten", "Text", "")
    $Read7 = IniRead("Data.ini", "Speichern", "Ordner", @desktopdir)
    $Read8 = IniRead("Data.ini", "Speichern", "Name", "Bild")
    $Read9 = IniRead("Data.ini", "Zeichnen", "Farbe", "FF0000")
    GUICtrlSetBkColor($Label4, "0x" & $Read9)
    GUICtrlSetData($Input4, $Read7)
    GUICtrlSetData($Input5, $Read8)
    If $Read1 = "0" Then
    GUICtrlSetState($Radio1, $GUI_CHECKED)
    GUICtrlSetState($Input1, $GUI_Disable)
    ElseIf $Read1 = "1" Then
    GUICtrlSetState($Radio2, $GUI_CHECKED)
    GUICtrlSetState($Input1, $GUI_Disable)
    Elseif $Read1 = "2" Then
    GUICtrlSetState($Radio3, $GUI_CHECKED)
    GUICtrlSetData($Input1, $Read4)
    GUICtrlSetState($Input1, $GUI_Enable)
    Else
    GUICtrlSetState($Radio1, $GUI_CHECKED)
    GUICtrlSetState($Input1, $GUI_Disable)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $Read2 = "0" Then
    GUICtrlSetState($Radio5, $GUI_CHECKED)
    GUICtrlSetState($Input2, $GUI_Disable)
    ElseIf $Read2 = "1" Then
    GUICtrlSetState($Radio6, $GUI_CHECKED)
    GUICtrlSetState($Input2, $GUI_Disable)
    Elseif $Read2 = "2" Then
    GUICtrlSetState($Radio4, $GUI_CHECKED)
    GUICtrlSetData($Input2, $Read5)
    GUICtrlSetState($Input2, $GUI_Enable)
    Else
    GUICtrlSetState($Radio5, $GUI_CHECKED)
    GUICtrlSetState($Input2, $GUI_Disable)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $Read3 = "0" Then
    GUICtrlSetState($Radio7, $GUI_CHECKED)
    GUICtrlSetState($Input3, $GUI_Disable)
    ElseIf $Read3 = "1" Then
    GUICtrlSetState($Radio8, $GUI_CHECKED)
    GUICtrlSetState($Input3, $GUI_Disable)
    Elseif $Read3 = "2" Then
    GUICtrlSetState($Radio9, $GUI_CHECKED)
    GUICtrlSetData($Input3, $Read6)
    GUICtrlSetState($Input3, $GUI_Enable)
    Else
    GUICtrlSetState($Radio1, $GUI_CHECKED)
    GUICtrlSetState($Input3, $GUI_Disable)
    EndIf
    GUISetState(@Sw_Show, $Form1)
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_hide)
    Case $Button2
    $folder = FileSelectFolder("Ordner wählen", "", 1)
    GUICtrlSetData($Input4, $folder)
    Case $Button1
    If GUICtrlRead($Input5) = "" Then
    Msgbox(0, "Error", "Bitte tragen sie einen Namen ein!")
    Else
    Iniwrite("Data.ini", "Speichern", "Name", GUICtrlRead($Input5))
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If GUICtrlRead($Input4) = "" Then
    Msgbox(0, "Error", "Bitte geben sie einen Speicherort an!")
    Else
    IniWrite("Data.ini", "Speichern", "Ordner", GUICtrlRead($Input4))
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If GUICtrlRead($Radio1) = 1 Then
    IniWrite("Data.ini", "Oben Mitte", "Option", "0")
    Elseif GUICtrlRead($Radio2) = 1 Then
    IniWrite("Data.ini", "Oben Mitte", "Option", "1")
    Else
    IniWrite("Data.ini", "Oben Mitte", "Option", "2")
    IniWrite("Data.ini", "Oben Mitte", "Text", GUICtrlRead($Input1))
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If GUICtrlRead($Radio5) = 1 Then
    IniWrite("Data.ini", "Rechts Unten", "Option", "0")
    Elseif GUICtrlRead($Radio6) = 1 Then
    IniWrite("Data.ini", "Rechts Unten", "Option", "1")
    Else
    IniWrite("Data.ini", "Rechts Unten", "Option", "2")
    IniWrite("Data.ini", "Rechts Unten", "Text", GUICtrlRead($Input2))
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If GUICtrlRead($Radio7) = 1 Then
    IniWrite("Data.ini", "Links Unten", "Option", "0")
    Elseif GUICtrlRead($Radio8) = 1 Then
    IniWrite("Data.ini", "Links Unten", "Option", "1")
    Else
    IniWrite("Data.ini", "Links Unten", "Option", "2")
    IniWrite("Data.ini", "Links Unten", "Text", GUICtrlRead($Input3))
    EndIf
    GUISetState(@SW_hide, $Form1)
    Case $Radio3
    GUICtrlSetState($Input1, $GUI_Enable)
    Case $Radio4
    GUICtrlSetState($Input2, $GUI_Enable)
    Case $Radio9
    GUICtrlSetState($Input3, $GUI_Enable)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Case $Radio2
    GUICtrlSetState($Input1, $GUI_Disable)
    Case $Radio1
    GUICtrlSetState($Input1, $GUI_Disable)
    Case $Radio6
    GUICtrlSetState($Input2, $GUI_Disable)
    Case $Radio5
    GUICtrlSetState($Input2, $GUI_Disable)
    Case $Radio8
    GUICtrlSetState($Input3, $GUI_Disable)
    Case $Radio7
    GUICtrlSetState($Input3, $GUI_Disable)
    Case $Button3
    $color = _ChooseColor(2, 0xFF0000, 2, $Form1)
    $Stringtrimcolor = StringTrimLeft($color, 2)
    Iniwrite("Data.ini", "Zeichnen", "Farbe", $Stringtrimcolor)
    GUICtrlSetBkColor($Label4, $color)
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Main()
    $Read1 = Iniread("Data.ini", "Oben Mitte", "Option", "0")
    $Read2 = Iniread("Data.ini", "Rechts Unten", "Option", "0")
    $Read3 = Iniread("Data.ini", "Links Unten", "Option", "0")
    $Read4 = Iniread("Data.ini", "Oben Mitte", "Text", "")
    $Read5 = Iniread("Data.ini", "Rechts Unten", "Text", "")
    $Read6 = Iniread("Data.ini", "Links Unten", "Text", "")
    $Read7 = IniRead("Data.ini", "Speichern", "Ordner", @desktopdir)
    $Read8 = IniRead("Data.ini", "Speichern", "Name", "Bild")
    $Read9 = IniRead("Data.ini", "Zeichnen", "Farbe", "FF0000")
    $String = _StringToHex("0x"& $Read9)
    $String1 = _StringInsert($String, "6666", 4)
    $combi = "0xFF"&$Read9
    ;~ Msgbox(0,"", $combi)
    $s = 1
    $save = $Read7 & "\" & $Read8 & $s & ".jpg"
    While 2

    [/autoit] [autoit][/autoit] [autoit]

    If FileExists($save) Then
    $s = $s + 1
    $save = $Read7 & "\" & $Read8 & $s & ".jpg"
    Else
    ExitLoop
    EndIf
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    ; Draw a string
    _GDIPlus_Startup ()
    $hBitmap1 = _ScreenCapture_Capture('')
    $hImage1 = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap1)
    $hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage1)
    $hBrush = _GDIPlus_BrushCreateSolid ($combi)
    $hFormat = _GDIPlus_StringFormatCreate ()
    $hFamily = _GDIPlus_FontFamilyCreate ("Arial")
    $hFont = _GDIPlus_FontCreate ($hFamily, 20, 1)

    [/autoit] [autoit][/autoit] [autoit]

    $hStringFormat = _GDIPlus_StringFormatCreate()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $Read1 = "0" Then
    $sString1 = ""

    [/autoit] [autoit][/autoit] [autoit]

    ElseIf $Read1 = "1" Then
    $sString1 = _Now()
    Else
    $sString1 = $Read4
    Endif

    [/autoit] [autoit][/autoit] [autoit]

    $tLayout = _GDIPlus_RectFCreate (@DesktopWidth / 2, 25, 0, 0)
    _GDIPlus_StringFormatSetAlign($hStringFormat, 1)
    $aInfo = _GDIPlus_GraphicsMeasureString ($hGraphic, $sString1, $hFont, $tLayout, $hStringFormat)
    _GDIPlus_GraphicsDrawStringEx ($hGraphic, $sString1, $hFont, $aInfo[0], $hStringFormat, $hBrush)
    If $Read2 = "0" Then
    $sString2 = ""

    [/autoit] [autoit][/autoit] [autoit]

    ElseIf $Read2 = "1" Then
    $sString2 = _Now()
    Else
    $sString2 = $Read5
    Endif

    [/autoit] [autoit][/autoit] [autoit]

    $tLayout = _GDIPlus_RectFCreate (@DesktopWidth - 50, @DesktopHeight - 50, 0, 0)
    _GDIPlus_StringFormatSetAlign($hStringFormat, 2)
    $aInfo = _GDIPlus_GraphicsMeasureString ($hGraphic, $sString2, $hFont, $tLayout, $hStringFormat)
    _GDIPlus_GraphicsDrawStringEx ($hGraphic, $sString2, $hFont, $aInfo[0], $hStringFormat, $hBrush)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    If $Read3 = "0" Then
    $sString3 = ""

    [/autoit] [autoit][/autoit] [autoit]

    ElseIf $Read3 = "1" Then
    $sString3 = _Now()
    Else
    $sString3 = $Read6
    Endif

    [/autoit] [autoit][/autoit] [autoit]

    $tLayout = _GDIPlus_RectFCreate (50, @DesktopHeight - 50, 0, 0)
    _GDIPlus_StringFormatSetAlign($hStringFormat, 0)
    $aInfo = _GDIPlus_GraphicsMeasureString ($hGraphic, $sString3, $hFont, $tLayout, $hStringFormat)
    _GDIPlus_GraphicsDrawStringEx ($hGraphic, $sString3, $hFont, $aInfo[0], $hStringFormat, $hBrush)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_ImageSaveToFile($hImage1, $save)

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_FontDispose ($hFont)
    _GDIPlus_FontFamilyDispose ($hFamily)
    _GDIPlus_StringFormatDispose ($hFormat)
    _GDIPlus_BrushDispose ($hBrush)
    _GDIPlus_GraphicsDispose ($hGraphic)
    _GDIPlus_ImageDispose($hImage1)
    _WinAPI_DeleteObject($hBitmap1)
    _GDIPlus_Shutdown ()
    EndFunc ;==>_Main

    [/autoit]


    autoit.de/wcf/attachment/7665/


    Ach ja

    Ein danke geht noch an Oscar und Cartan12 :thumbup:

  • programmierstil:
    - zum leichteren verständis des codes würde ich auf jeden fall andere variablennamen verwenden.
    - elseif finde ich persönlich sehr unübersichtlich, meistens is switch und select case viel übersichtlicher (und nebenbei auch schneller)
    - die settings ini brauchst du im prinzip nur am anfang des scripts laden und nicht bei jeden aufruf der einstellungen
    - einige includes sind überflüssig (tipp: organizeincludes 4.3 unter autoit downloads)


    was man noch alles einbauen könnte:

    - nur aktuelles fenster oder bereich "screenshoten"
    - bzw einfach die drei modi mit verschiedenen hotkeys
    - hotkey selbst auswählen


    natürlich nur wenn du noch weiterbasteln willst ;)

  • Schnitzel

    ja ich hab jetz einfach ma n bissel gebastelt

    drum sin die vars auch nich gerade übersichtlich

    und wegen dem iniread

    wenn du jetz einfach ma nix eingibst und dan nich auf ok drückst sondern auf das X

    dan speicherts das nich

    drum muss es das neu laden

    damit die daten wieder hergestellt werden

  • So

    ich hab jetz ma eure vorschläge umgesetzt


    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <GDIPlus.au3>
    #include <ScreenCapture.au3>
    #include <Date.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    #include <string.au3>
    $Hotkey1 = IniRead("Data.ini", "Hotkeys", "Hotkey1", "")
    $Hotkey2 = IniRead("Data.ini", "Hotkeys", "Hotkey2", "")
    $Hotkey3 = IniRead("Data.ini", "Hotkeys", "Hotkey3", "")
    If $Hotkey1 <> "" Then
    Hotkeyset($Hotkey1, "_Printscreen")
    EndIf
    If $Hotkey2 <> "" Then
    Hotkeyset($Hotkey2, "_AktuellesF")
    EndIf
    If $Hotkey3 <> "" Then
    Hotkeyset($Hotkey3, "_BestimmterB")
    EndIf

    #Region ### START Koda GUI section ###
    $Form1 = GUICreate("Einstellungen", 490, 274, @DesktopWidth - 500, @DesktopHeight - 334)
    $Button1 = GUICtrlCreateButton("Ok", 344, 216, 137, 49, 0)
    $Group1 = GUICtrlCreateGroup("Oben Mitte", 8, 8, 153, 153)
    $Radio3 = GUICtrlCreateRadio("Anderes", 16, 72, 113, 17)
    $Radio1 = GUICtrlCreateRadio("Nichts", 16, 24, 113, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
    $Radio2 = GUICtrlCreateRadio("Aktuelles Datum", 16, 48, 113, 17)
    $Input1 = GUICtrlCreateInput("", 16, 96, 121, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Button3 = GUICtrlCreateButton("Farbe Ausw.", 16, 128, 89, 25, 0)
    $Label4 = GUICtrlCreateLabel("", 112, 128, 28, 25)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Unten Rechts", 169, 8, 153, 153)
    $Radio4 = GUICtrlCreateRadio("Anderes", 177, 72, 113, 17)
    $Radio5 = GUICtrlCreateRadio("Nichts", 177, 24, 113, 17)
    $Radio6 = GUICtrlCreateRadio("Aktuelles Datum", 177, 48, 113, 17)
    $Input2 = GUICtrlCreateInput("", 177, 96, 121, 21)
    $Button4 = GUICtrlCreateButton("Farbe Ausw.", 177, 128, 89, 25, 0)
    $Label5 = GUICtrlCreateLabel("", 273, 128, 28, 25)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group3 = GUICtrlCreateGroup("Unten Links", 330, 8, 153, 153)
    $Radio9 = GUICtrlCreateRadio("Anderes", 338, 72, 113, 17)
    $Radio7 = GUICtrlCreateRadio("Nichts", 338, 24, 113, 17)
    $Radio8 = GUICtrlCreateRadio("Aktuelles Datum", 338, 48, 113, 17)
    $Input3 = GUICtrlCreateInput("", 338, 96, 121, 21)
    $Button5 = GUICtrlCreateButton("Farbe Ausw.", 338, 128, 89, 25, 0)
    $Label6 = GUICtrlCreateLabel("", 434, 128, 28, 25)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Input4 = GUICtrlCreateInput("Input4", 16, 176, 353, 21)
    $Button2 = GUICtrlCreateButton("Durchsuchen", 374, 174, 97, 25, 0)
    $Input5 = GUICtrlCreateInput("Input5", 16, 232, 97, 21)
    $Label3 = GUICtrlCreateLabel(".JPG", 110, 236, 27, 17)
    $Group4 = GUICtrlCreateGroup("Speicherort", 8, 160, 473, 49)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group5 = GUICtrlCreateGroup("Speichername", 8, 208, 139, 57)
    $Label2 = GUICtrlCreateLabel("Speichername", 16, 416, 72, 17)
    $Label1 = GUICtrlCreateLabel("Speichername", 24, 424, 72, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button6 = GUICtrlCreateButton("Hotkeys Einstellen", 160, 224, 113, 33, 0)
    GUISetState(@SW_hide)
    $Form2 = GUICreate("Hotkeys einstellen", 232, 200, 425, 209, -1, $WS_EX_TOPMOST)
    $Label7 = GUICtrlCreateLabel("Ganzen Desktop:", 8, 16, 87, 17)
    $Label8 = GUICtrlCreateLabel("Aktuelles Fenster:", 8, 48, 88, 17)
    $Label9 = GUICtrlCreateLabel("Bestimmten Bereich:", 8, 80, 100, 17)
    $Input6 = GUICtrlCreateInput("", 120, 13, 89, 21)
    $Input7 = GUICtrlCreateInput("", 120, 45, 89, 21)
    $Input8 = GUICtrlCreateInput("", 120, 77, 89, 21)
    $Input9 = GUICtrlCreateInput("", 24, 104, 41, 21)
    $Input10 = GUICtrlCreateInput("", 88, 104, 49, 21)
    $Label10 = GUICtrlCreateLabel("X1", 5, 107, 17, 17)
    $Label11 = GUICtrlCreateLabel("Y1", 69, 107, 17, 17)
    $Button7 = GUICtrlCreateButton("Einstellen", 140, 102, 89, 25, 0)
    $Button8 = GUICtrlCreateButton("Speichern", 56, 160, 113, 33, 0)
    $Input11= GUICtrlCreateInput("", 24, 128, 41, 21)
    $Input12 = GUICtrlCreateInput("", 88, 128, 49, 21)
    $Label12 = GUICtrlCreateLabel("X2", 5, 131, 17, 17)
    $Label13 = GUICtrlCreateLabel("Y2", 69, 131, 17, 17)
    GUISetState(@SW_hide)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    TraySetClick (8)
    Opt("TrayMenuMode", 1)
    $settings = TrayCreateItem("Einstellungen")
    TrayCreateItem("")
    $exit = TrayCreateItem("Exit")
    $dll = DllOpen("user32.dll")

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $tmsg = TrayGetMsg()
    Select
    Case $tmsg = $exit
    Exit
    Case $tmsg = $settings

    $Read1 = Iniread("Data.ini", "Oben Mitte", "Option", "0")
    $Read2 = Iniread("Data.ini", "Rechts Unten", "Option", "0")
    $Read3 = Iniread("Data.ini", "Links Unten", "Option", "0")
    $Read4 = Iniread("Data.ini", "Oben Mitte", "Text", "")
    $Read5 = Iniread("Data.ini", "Rechts Unten", "Text", "")
    $Read6 = Iniread("Data.ini", "Links Unten", "Text", "")
    $Read7 = IniRead("Data.ini", "Speichern", "Ordner", @desktopdir)
    $Read8 = IniRead("Data.ini", "Speichern", "Name", "Bild")
    $Read9 = IniRead("Data.ini", "Zeichnen", "Farbeoben", "0xFF0000")
    $Read10 = IniRead("Data.ini", "Zeichnen", "Farberechts", "0xFF0000")
    $Read12 = IniRead("Data.ini", "Zeichnen", "Farbelinks", "0xFF0000")
    $Read13 = IniRead("Data.ini", "Bereichsscreen", "X1", "0")
    $Read14 = IniRead("Data.ini", "Bereichsscreen", "Y1", "0")
    $Read15 = IniRead("Data.ini", "Bereichsscreen", "X2", @DesktopWidth)
    $Read16 = IniRead("Data.ini", "Bereichsscreen", "Y2", @DesktopHeight)
    $Read17 = IniRead("Data.ini", "Hotkeys", "Hotkey1", "")
    $Read18 = IniRead("Data.ini", "Hotkeys", "Hotkey2", "")
    $Read19 = IniRead("Data.ini", "Hotkeys", "Hotkey3", "")

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSetBkColor($Label4, $Read9)
    GUICtrlSetBkColor($Label5, $Read10)
    GUICtrlSetBkColor($Label6, $Read12)
    GUICtrlSetData($Input4, $Read7)
    GUICtrlSetData($Input5, $Read8)
    GUICtrlSetData($Input6, $Read17)
    GUICtrlSetData($Input7, $Read18)
    GUICtrlSetData($Input8, $Read19)
    GUICtrlSetData($Input9, $Read13)
    GUICtrlSetData($Input10, $Read14)
    GUICtrlSetData($Input11, $Read15)
    GUICtrlSetData($Input12, $Read16)
    Switch $Read1
    Case "0"
    GUICtrlSetState($Radio1, $GUI_CHECKED)
    GUICtrlSetState($Input1, $GUI_Disable)
    Case "1"
    GUICtrlSetState($Radio2, $GUI_CHECKED)
    GUICtrlSetState($Input1, $GUI_Disable)
    Case "2"
    GUICtrlSetState($Radio3, $GUI_CHECKED)
    GUICtrlSetData($Input1, $Read4)
    GUICtrlSetState($Input1, $GUI_Enable)
    EndSwitch
    Switch $Read2
    Case "0"
    GUICtrlSetState($Radio5, $GUI_CHECKED)
    GUICtrlSetState($Input2, $GUI_Disable)
    Case "1"
    GUICtrlSetState($Radio6, $GUI_CHECKED)
    GUICtrlSetState($Input2, $GUI_Disable)
    Case "2"
    GUICtrlSetState($Radio4, $GUI_CHECKED)
    GUICtrlSetData($Input2, $Read5)
    GUICtrlSetState($Input2, $GUI_Enable)
    EndSwitch
    Switch $Read3
    Case "0"
    GUICtrlSetState($Radio7, $GUI_CHECKED)
    GUICtrlSetState($Input3, $GUI_Disable)
    Case "1"
    GUICtrlSetState($Radio8, $GUI_CHECKED)
    GUICtrlSetState($Input3, $GUI_Disable)
    Case "2"
    GUICtrlSetState($Radio9, $GUI_CHECKED)
    GUICtrlSetData($Input3, $Read6)
    GUICtrlSetState($Input3, $GUI_Enable)
    EndSwitch
    GUISetState(@Sw_Show, $Form1)
    EndSelect


    $msg = GUIGetMsg(1)
    Select
    Case $msg[0] = $GUI_EVENT_CLOSE And $msg[1] = $Form1
    GUISetState(@SW_hide, $Form1)

    Case $msg[0] = $GUI_EVENT_CLOSE And $msg[1] = $Form2
    GUISetState(@SW_hide, $Form2)
    EndSelect
    Switch $msg[0]
    Case $Button6
    GUISetState(@sw_show, $Form2)
    Case $Button7
    GUICtrlSetData($Button7, "Startpunkt wählen")
    While 3
    If _Ispressed("01", $dll) Then
    $posstart = Mousegetpos()
    ExitLoop
    EndIf
    WEnd
    GUICtrlSetData($Input9, String($posstart[0]))
    GUICtrlSetData($Input10, String($posstart[1]))
    GUICtrlSetData($Button7, "Endpunkt wählen")
    While 5
    If Not _Ispressed("01", $dll) Then
    ExitLoop
    Else
    Sleep(10)
    EndIf
    WEnd

    While 4
    If _Ispressed("01", $dll) Then
    $posend = Mousegetpos()
    ExitLoop
    EndIf
    WEnd
    GUICtrlSetData($Input11, $posend[0])
    GUICtrlSetData($Input12, $posend[1])
    GUICtrlSetData($Button7, "Einstellen")
    Case $Button8
    If GUICtrlRead($Input9) <> "" Then
    IniWrite("Data.ini", "Bereichsscreen", "X1", GUICtrlRead($Input9))
    EndIf
    If GUICtrlRead($Input10) <> "" Then
    IniWrite("Data.ini", "Bereichsscreen", "Y1", GUICtrlRead($Input10))
    EndIf
    If GUICtrlRead($Input11) <> "" Then
    IniWrite("Data.ini", "Bereichsscreen", "X2", GUICtrlRead($Input11))
    EndIf
    If GUICtrlRead($Input12) <> "" Then
    IniWrite("Data.ini", "Bereichsscreen", "Y2", GUICtrlRead($Input12))
    EndIf
    If GUICtrlRead($Input6) <> "" Then
    IniWrite("Data.ini", "Hotkeys", "Hotkey1", GUICtrlRead($Input6))
    EndIf
    If GUICtrlRead($Input7) <> "" Then
    IniWrite("Data.ini", "Hotkeys", "Hotkey2", GUICtrlRead($Input7))
    EndIf
    If GUICtrlRead($Input8) <> "" Then
    IniWrite("Data.ini", "Hotkeys", "Hotkey3", GUICtrlRead($Input8))
    EndIf
    If GUICtrlRead($Input6) <> "" Then
    Hotkeyset(GUICtrlRead($Input6), "_Printscreen")
    EndIf
    If GUICtrlRead($Input7) <> "" Then
    Hotkeyset(GUICtrlRead($Input7), "_AktuellesF")
    EndIf
    If GUICtrlRead($Input8) <> "" Then
    Hotkeyset(GUICtrlRead($Input8), "_BestimmterB")
    EndIf
    GUISetState(@SW_HIDE, $Form2)



    Case $Button2
    $folder = FileSelectFolder("Ordner wählen", "", 1)
    GUICtrlSetData($Input4, $folder)
    Case $Button1
    If GUICtrlRead($Input5) = "" Then
    Msgbox(0, "Error", "Bitte tragen sie einen Namen ein!")
    Else
    Iniwrite("Data.ini", "Speichern", "Name", GUICtrlRead($Input5))
    EndIf


    If GUICtrlRead($Input4) = "" Then
    Msgbox(0, "Error", "Bitte geben sie einen Speicherort an!")
    Else
    IniWrite("Data.ini", "Speichern", "Ordner", GUICtrlRead($Input4))
    EndIf


    If GUICtrlRead($Radio1) = 1 Then
    IniWrite("Data.ini", "Oben Mitte", "Option", "0")
    Elseif GUICtrlRead($Radio2) = 1 Then
    IniWrite("Data.ini", "Oben Mitte", "Option", "1")
    Else
    IniWrite("Data.ini", "Oben Mitte", "Option", "2")
    IniWrite("Data.ini", "Oben Mitte", "Text", GUICtrlRead($Input1))
    EndIf


    If GUICtrlRead($Radio5) = 1 Then
    IniWrite("Data.ini", "Rechts Unten", "Option", "0")
    Elseif GUICtrlRead($Radio6) = 1 Then
    IniWrite("Data.ini", "Rechts Unten", "Option", "1")
    Else
    IniWrite("Data.ini", "Rechts Unten", "Option", "2")
    IniWrite("Data.ini", "Rechts Unten", "Text", GUICtrlRead($Input2))
    EndIf


    If GUICtrlRead($Radio7) = 1 Then
    IniWrite("Data.ini", "Links Unten", "Option", "0")
    Elseif GUICtrlRead($Radio8) = 1 Then
    IniWrite("Data.ini", "Links Unten", "Option", "1")
    Else
    IniWrite("Data.ini", "Links Unten", "Option", "2")
    IniWrite("Data.ini", "Links Unten", "Text", GUICtrlRead($Input3))
    EndIf
    GUISetState(@SW_hide, $Form1)
    Case $Radio3
    GUICtrlSetState($Input1, $GUI_Enable)
    Case $Radio4
    GUICtrlSetState($Input2, $GUI_Enable)
    Case $Radio9
    GUICtrlSetState($Input3, $GUI_Enable)


    Case $Radio2
    GUICtrlSetState($Input1, $GUI_Disable)
    Case $Radio1
    GUICtrlSetState($Input1, $GUI_Disable)
    Case $Radio6
    GUICtrlSetState($Input2, $GUI_Disable)
    Case $Radio5
    GUICtrlSetState($Input2, $GUI_Disable)
    Case $Radio8
    GUICtrlSetState($Input3, $GUI_Disable)
    Case $Radio7
    GUICtrlSetState($Input3, $GUI_Disable)
    Case $Button3
    $color = _ChooseColor(2, $Read9, 2, $Form1)
    Iniwrite("Data.ini", "Zeichnen", "Farbeoben", $color)
    GUICtrlSetBkColor($Label4, $color)
    Case $Button4
    $color = _ChooseColor(2, $Read10, 2, $Form1)
    Iniwrite("Data.ini", "Zeichnen", "Farberechts", $color)
    GUICtrlSetBkColor($Label5, $color)
    Case $Button5
    $color = _ChooseColor(2, $Read12, 2, $Form1)
    Iniwrite("Data.ini", "Zeichnen", "Farbelinks", $color)
    GUICtrlSetBkColor($Label6, $color)
    EndSwitch
    WEnd
    Func _Printscreen()
    _Main(0)
    EndFunc
    Func _AktuellesF()
    _Main(1)
    EndFunc
    Func _BestimmterB()
    _Main(2)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]


    Func _Main($mod)
    $Read1 = Iniread("Data.ini", "Oben Mitte", "Option", "0")
    $Read2 = Iniread("Data.ini", "Rechts Unten", "Option", "0")
    $Read3 = Iniread("Data.ini", "Links Unten", "Option", "0")
    $Read4 = Iniread("Data.ini", "Oben Mitte", "Text", "")
    $Read5 = Iniread("Data.ini", "Rechts Unten", "Text", "")
    $Read6 = Iniread("Data.ini", "Links Unten", "Text", "")
    $Read7 = IniRead("Data.ini", "Speichern", "Ordner", @desktopdir)
    $Read8 = IniRead("Data.ini", "Speichern", "Name", "Bild")
    $Read9 = IniRead("Data.ini", "Zeichnen", "Farbeoben", "0xFF0000")
    $Read10 = IniRead("Data.ini", "Zeichnen", "Farberechts", "0xFF0000")
    $Read11 = IniRead("Data.ini", "Zeichnen", "Farbelinks", "0xFF0000")
    $X1 = IniRead("Data.ini", "Bereichsscreen", "X1", "0")
    $Y1 = IniRead("Data.ini", "Bereichsscreen", "Y1", "0")
    $X2 = IniRead("Data.ini", "Bereichsscreen", "X2", @DesktopWidth)
    $Y2 =IniRead("Data.ini", "Bereichsscreen", "Y2", @DesktopHeight)
    $farbeoben = _StringInsert($Read9, "FF", 2)
    $farberechts = _StringInsert($Read10, "FF", 2)
    $farbelinks = _StringInsert($Read11, "FF", 2)
    $num = 1
    $save = $Read7 & "\" & $Read8 & $num & ".jpg"
    While 2

    If FileExists($save) Then
    $num = $num + 1
    $save = $Read7 & "\" & $Read8 & $num & ".jpg"
    Else
    ExitLoop
    EndIf
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    ; Draw a string
    _GDIPlus_Startup ()
    Select
    Case $mod = 0
    $hBitmap1 = _ScreenCapture_Capture('')
    Case $mod = 1
    $winpos = WinGetPos("[active]")
    $hBitmap1 = _ScreenCapture_Capture("", $winpos[0], $winpos[1], $winpos[0] + $winpos[2], $winpos[1] + $winpos[3])
    Case $mod = 2
    $hBitmap1 = _ScreenCapture_Capture("", $X1, $Y1, $X2, $Y2)
    EndSelect


    $hImage1 = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap1)
    $hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage1)
    $Height = _GDIPlus_ImageGetHeight($hImage1)
    $Width = _GDIPlus_ImageGetWidth($hImage1)

    $hFormat = _GDIPlus_StringFormatCreate ()
    $hFamily = _GDIPlus_FontFamilyCreate ("Arial")
    $hFont = _GDIPlus_FontCreate ($hFamily, 20, 1)

    $hStringFormat = _GDIPlus_StringFormatCreate()



    If $Read1 = "0" Then
    $sString1 = ""

    ElseIf $Read1 = "1" Then
    $sString1 = _Now()
    Else
    $sString1 = $Read4
    Endif
    $hBrush = _GDIPlus_BrushCreateSolid ($farbeoben)
    $tLayout = _GDIPlus_RectFCreate ($Width / 2, 25, 0, 0)
    _GDIPlus_StringFormatSetAlign($hStringFormat, 1)
    $aInfo = _GDIPlus_GraphicsMeasureString ($hGraphic, $sString1, $hFont, $tLayout, $hStringFormat)
    _GDIPlus_GraphicsDrawStringEx ($hGraphic, $sString1, $hFont, $aInfo[0], $hStringFormat, $hBrush)
    If $Read2 = "0" Then
    $sString2 = ""

    ElseIf $Read2 = "1" Then
    $sString2 = _Now()
    Else
    $sString2 = $Read5
    Endif
    $hBrush = _GDIPlus_BrushCreateSolid ($farberechts)
    $tLayout = _GDIPlus_RectFCreate ($Width - 50, $Height - 50, 0, 0)
    _GDIPlus_StringFormatSetAlign($hStringFormat, 2)
    $aInfo = _GDIPlus_GraphicsMeasureString ($hGraphic, $sString2, $hFont, $tLayout, $hStringFormat)
    _GDIPlus_GraphicsDrawStringEx ($hGraphic, $sString2, $hFont, $aInfo[0], $hStringFormat, $hBrush)



    If $Read3 = "0" Then
    $sString3 = ""

    ElseIf $Read3 = "1" Then
    $sString3 = _Now()
    Else
    $sString3 = $Read6
    Endif
    $hBrush = _GDIPlus_BrushCreateSolid ($farbelinks)
    $tLayout = _GDIPlus_RectFCreate (50, $Height - 50, 0, 0)
    _GDIPlus_StringFormatSetAlign($hStringFormat, 0)
    $aInfo = _GDIPlus_GraphicsMeasureString ($hGraphic, $sString3, $hFont, $tLayout, $hStringFormat)
    _GDIPlus_GraphicsDrawStringEx ($hGraphic, $sString3, $hFont, $aInfo[0], $hStringFormat, $hBrush)



    _GDIPlus_ImageSaveToFile($hImage1, $save)

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_FontDispose ($hFont)
    _GDIPlus_FontFamilyDispose ($hFamily)
    _GDIPlus_StringFormatDispose ($hFormat)
    _GDIPlus_BrushDispose ($hBrush)
    _GDIPlus_GraphicsDispose ($hGraphic)
    _GDIPlus_ImageDispose($hImage1)
    _WinAPI_DeleteObject($hBitmap1)
    _GDIPlus_Shutdown ()
    EndFunc ;==>_Main

    [/autoit]


    Nur bei den hotkeys muss man noch Send Befehle reinschreiben

    hatte noch keine idee wie ich das machen soll

    wenn jmd ne idee hat POSTEN!!! :thumbup: