Wer checkt für mich die Farbwertdaten?? Steig allein nicht mehr durch...

  • Hallo,

    ich bräuchte mal jemand der sich bisschen Zeit für mein Script nimmt!

    Ich bin kein Programmierer, oder ähnliches, deswegen würd ich gern von einem "Profi" mal die Werte in meinem Script checken lassen!

    Mir erscheinen die Farbwertdaten, vorallem beim Checksum, nicht korrekt!

    Für weitere Vervesserungen oder Vorschläge bin ich sehr dankbar!

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <File.au3>
    #include <GDIPlus.au3>
    #include <GuiSlider.au3>
    #include <GUIConstantsEx.au3>
    #include <IE.au3>
    #include <Misc.au3>
    #include <ScreenCapture.au3>
    #include <SliderConstants.au3>
    #include <Timers.au3>
    #include <UpDownConstants.au3>
    #include <WindowsConstants.au3>
    #include <WinAPI.au3>
    #include <GuiMenu.au3>
    #include <ListViewConstants.au3>
    ;declare
    Dim $Pos
    Dim $msg[5]
    Dim $PosOld[2]
    Dim $aPosOld[2]
    Dim $PosSlOld[4]
    Dim $FileLines
    Dim $List
    Dim $pMGr = 10
    Local $iX, $iY, $iW, $iH, $Lupe, $copyLupe, $LupeGUI, $hChild, $hWnd_Desktop, $menu1, $winLupeState, $menuMode, $auswPixCksm
    Local $countLR, $countHR, $coordLR, $coordHR, $iXo, $iYo, $hDC_Dest, $hDC_Source, $backbuffer, $X2, $Y2, $X, $Y, $AuswMitte
    Local $Sl1ScaleMin, $Sl1ScaleMax, $Sl2ScaleMin, $Sl2ScaleMax, $SliderObenPos, $SliderUntenPos, $SliderLinksPos, $SliderRechtsPos
    Global $doc, $Anmelden, $oIE, $loggedin, $WinStat, $FaceStat, $maxi, $run, $menuopen, $fileopen, $save, $AuswCol, $AuswChksm, $hIE
    Local $menu1, $n1, $bErst, $bHinz, $bBearb, $msg, $menustate, $menutext, $hinz, $countl, $num, $Pos, $col, $oInputs, $oForm
    Local $oPass, $oUser, $oDiv, $count, $datfile, $DatenGUI, $handle, $datasplit, $mill, $face, $menuexit, $savdat
    Dim $Anmelden = WinExists('Anmelden')
    Dim $dll = DllOpen("user32.dll")
    Local $sUser = 'XXXXX'
    Local $sPass = 'xxxx'
    Local $url = 'www.google.de'
    Local $loginurl = 'www.google.de'
    Local $stateface = WinGetState('google')
    Local $statemill = WinGetState('google')
    Dim $Haus[255][10]
    Dim $countl
    $Haus[0][0] = 'Nr.'
    $Haus[0][1] = 'x'
    $Haus[0][2] = 'y'
    $Haus[0][3] = 'col'
    $Haus[0][4] = 'Ausw-M.'
    $Haus[0][5] = 'AuswChksm'
    $Haus[0][6] = 'x oben'
    $Haus[0][7] = 'y oben'
    $Haus[0][8] = 'x unten'
    $Haus[0][9] = 'y unten'
    $Scale = 10
    $Sl1ScaleMin = 0
    $Sl1ScaleMax = @DesktopWidth
    $Sl2ScaleMin = 0
    $Sl2ScaleMax = @DesktopHeight
    $dist = 96
    $Border = 4
    $PixelDat = 4
    $Pos = MouseGetPos()
    HotKeySet("{ESC}", "Beenden")
    ;Opt('MustDeclareVars', 1)
    Opt("MouseClickDelay", 250)
    Opt("GUIOnEventMode", 1)
    ;GUI
    $LupeGUI = GUICreate("Main", 275, 510, -1, -1, $WS_MINIMIZEBOX + $WS_EX_LAYERED, $WS_EX_TOPMOST);$WS_MINIMIZEBOX + $WS_EX_LAYERED + $WS_SIZEBOX + $WS_SYSMENU, $WS_EX_TOPMOST)
    GUISetOnEvent($GUI_EVENT_CLOSE, 'Beenden')
    $menu1 = GUICtrlCreateMenu("File")
    $menuData = GUICtrlCreateMenuItem("Daten", $menu1)
    GUICtrlSetOnEvent($menuData, 'DatenGUI')
    $menuexit = GUICtrlCreateMenuItem("Beenden", $menu1)
    GUICtrlSetOnEvent($menuexit, 'Beenden')
    $menu2 = GUICtrlCreateMenu('Einstellungen')
    $menuVoreinstl = GUICtrlCreateMenu('Voreinstellungen', $menu2, 1)
    $menuVoreinstlLaden = GUICtrlCreateMenuItem('Voreinstellungen laden', $menuVoreinstl)
    $menuVoreinstlBearb = GUICtrlCreateMenuItem('Voreinstellungen bearbeiten', $menuVoreinstl)
    $menuEinst = GUICtrlCreateMenuItem('Einstellungen', $menu2)
    $menu4 = GUICtrlCreateMenu('User')
    $mHaus = GUICtrlCreateMenuItem('Häuserdaten', $menu4)
    $mLaden = GUICtrlCreateMenuItem('Geschäftsdaten', $menu4)
    $mUser = GUICtrlCreateMenuItem('User', $menu4)
    GUICtrlSetOnEvent($mLaden, 'speichernunter')
    GUICtrlSetOnEvent($mHaus, 'speichernunter')
    GUICtrlSetOnEvent($mUser, 'speichernunter')
    $SliderOben = GUICtrlCreateSlider(20, 0, 218, 32, 0, $TBS_NOTICKS)
    $SliderUnten = GUICtrlCreateSlider(20, 226, 218, 32, BitOR($TBS_TOP, $TBS_LEFT, $TBS_NOTICKS))
    $SliderLinks = GUICtrlCreateSlider(5, 17, 32, 218, $TBS_VERT, $TBS_NOTICKS)
    $SliderRechts = GUICtrlCreateSlider(230, 17, 34, 218, BitOR($TBS_VERT, $TBS_NOTICKS, $TBS_TOP, $TBS_LEFT))
    $Input1 = GUICtrlCreateInput("", 4, 400, 130, 20, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
    $Input2 = GUICtrlCreateInput("", 4, 420, 130, 20, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
    $Input3 = GUICtrlCreateInput("", 4, 440, 130, 20, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
    $Input5 = GUICtrlCreateInput("", 80, 280, 30, 17, BitOR($ES_AUTOHSCROLL, $ES_READONLY, $ES_RIGHT))
    $Input6 = GUICtrlCreateInput("", 80, 295, 30, 17, BitOR($ES_AUTOHSCROLL, $ES_READONLY, $ES_RIGHT))
    $Input7 = GUICtrlCreateInput("", 4, 335, 130, 20, BitOR($ES_AUTOHSCROLL, $ES_READONLY, $ES_RIGHT))
    $Input8 = GUICtrlCreateInput("", 4, 355, 130, 20, BitOR($ES_AUTOHSCROLL, $ES_READONLY, $ES_RIGHT))
    $Input9 = GUICtrlCreateInput("", 137, 400, 130, 20, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
    $Input10 = GUICtrlCreateInput("", 137, 420, 130, 20, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
    $Input11 = GUICtrlCreateInput("", 137, 440, 130, 20, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
    $Label1 = GUICtrlCreateLabel("Koordinaten:", 8, 383, 64, 17)
    $Label2 = GUICtrlCreateLabel(' x - Achse = ', 20, 280, 48, 17)
    $Label3 = GUICtrlCreateLabel(' y - Achse = ', 20, 295, 48, 17)
    $Label5 = GUICtrlCreateLabel('Auswahl', 25, 319, 65, 15, BitOR($ES_AUTOHSCROLL, $ES_READONLY, $ES_RIGHT))
    $Label6 = GUICtrlCreateLabel('Lupe', 20, 262, 65, 17, BitOR($ES_AUTOHSCROLL, $ES_READONLY, $ES_RIGHT))
    $Label7 = GUICtrlCreateLabel("Farbwerte:", 140, 383, 64, 17)
    GUICtrlSetFont($Label1, 8, 400, 4, "MS Sans Serif")
    GUICtrlSetFont($Label7, 8, 400, 4, "MS Sans Serif")
    GUICtrlSetFont($Label5, 9, 800, 4, "MS Sans Serif")
    GUICtrlSetFont($Label6, 9, 800, 4, "MS Sans Serif")
    $Checkbox1 = GUICtrlCreateCheckbox(' fixieren (ALT + 1)', 137, 280, 130, 17, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_RIGHTBUTTON, $BS_MULTILINE, $BS_FLAT, $WS_TABSTOP, $WS_CLIPSIBLINGS), $WS_EX_STATICEDGE)
    $Checkbox2 = GUICtrlCreateCheckbox(' Modi Switch (ALT + 2)', 137, 297, 130, 17, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_RIGHTBUTTON, $BS_MULTILINE, $BS_FLAT, $WS_TABSTOP, $WS_CLIPSIBLINGS), $WS_EX_STATICEDGE)
    $Checkbox3 = GUICtrlCreateCheckbox(' + Pic save (ALT + 3)', 137, 314, 130, 17, BitOR($BS_CHECKBOX, $BS_AUTOCHECKBOX, $BS_RIGHTBUTTON, $BS_MULTILINE, $BS_FLAT, $WS_TABSTOP, $WS_CLIPSIBLINGS), $WS_EX_STATICEDGE)
    $Button1 = GUICtrlCreateButton(" Einloggen ", 157, 337, 90, 20, BitOR($BS_CENTER, $WS_GROUP, $WS_BORDER))
    $Button2 = GUICtrlCreateButton(" City maximieren ", 157, 359, 90, 20, BitOR($BS_CENTER, $WS_GROUP, $WS_BORDER))
    GUICtrlSetOnEvent($Button1, 'Einloggen')
    GUICtrlSetOnEvent($Button2, 'maximieren')
    $hPen = _GDIPlus_PenCreate()
    ;GUICtrlSetResizing ($LupeGUI, $GUI_DOCKAUTO)
    GUISetState(@SW_SHOW, $LupeGUI)
    GUICtrlSetLimit($SliderOben, 192, 0)
    GUICtrlSetData($SliderOben, 45)
    GUICtrlSetLimit($SliderUnten, 192, 0)
    GUICtrlSetData($SliderUnten, 80)
    GUICtrlSetLimit($SliderLinks, 192, 0)
    GUICtrlSetData($SliderLinks, 80)
    GUICtrlSetLimit($SliderRechts, 192, 0)
    GUICtrlSetData($SliderRechts, 120)
    GUICtrlSetData($menu4, 'Userdaten')
    $save = FileOpen(@ScriptDir & '\User.txt', 2)
    $datfile = @ScriptDir & '\User.txt'
    $savdat = 'Userdaten'
    $SliderObenPos = _GUICtrlSlider_GetPos($SliderOben)
    $SliderUntenPos = _GUICtrlSlider_GetPos($SliderUnten)
    $SliderLinksPos = _GUICtrlSlider_GetPos($SliderLinks)
    $SliderRechtsPos = _GUICtrlSlider_GetPos($SliderRechts)
    ;
    $hLupe = GUICreate("", ($dist / 2), ($dist / 2), $Pos[0] + ($dist / 8), $Pos[1] + ($dist / 8), $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST, $WS_EX_STATICEDGE), $LupeGUI)
    GUICtrlSetBkColor(GUICtrlCreateLabel("", 0, 0, ($dist / 2), ($dist / 2)), 0xFF0000)
    GUICtrlSetBkColor(GUICtrlCreateLabel("", 2, 2, (($dist / 2) - $Border), (($dist / 2) - $Border)), 0xABCDEF)
    GUISetState()
    GUISwitch($LupeGUI)
    ;
    _GDIPlus_Startup()
    _WinAPI_SetLayeredWindowAttributes($hLupe, 0xABCDEF, 255)
    $hWnd_Desktop = _WinAPI_GetDesktopWindow()
    $hDC_Source = _WinAPI_GetDC($hWnd_Desktop)
    $hDC_Dest = _WinAPI_GetDC($LupeGUI)
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($LupeGUI)
    WinActivate('Main')

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

    ;DatensatzGUI()

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

    ;Schleife
    While 1;GUIGetMsg(1) <> $GUI_EVENT_CLOSE
    Sleep(10)
    $Pos = MouseGetPos()
    ;Checkbox1 check ' fixieren'
    If _IsPressed('12', $dll) And _IsPressed('31', $dll) Then
    Sleep(50)
    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = $GUI_CHECKED Then
    GUICtrlSetState($Checkbox1, $GUI_UNCHECKED)
    ElseIf BitAND(GUICtrlRead($Checkbox1), $GUI_UNCHECKED) = $GUI_UNCHECKED Then
    GUICtrlSetState($Checkbox1, $GUI_CHECKED)
    EndIf
    EndIf
    ;wenn Checkbox1 'unchecked' löse Lupe von Maus
    If BitAND(GUICtrlRead($Checkbox1), $GUI_UNCHECKED) = $GUI_UNCHECKED Then
    ;Mausposition abfragen
    $Pos = MouseGetPos()
    ; MausAuswahlposition abfragen
    $aWinPos = WinGetPos($hLupe)
    $iX = $aWinPos[0] ; x
    $iY = $aWinPos[1] ; y
    $iW = $aWinPos[2] ; width
    $iH = $aWinPos[3] ; height
    ;InfoPost
    ;Input Zeilen
    GUICtrlSetData($Input1, 'Maus: x = ' & $Pos[0] & ' , y = ' & $Pos[1])
    GUICtrlSetData($Input2, 'Lupe: x = ' & $aWinPos[0] & ' , y = ' & $aWinPos[1])
    GUICtrlSetData($Input3, 'Horiz.: ' & $countLR & ' , Vert.: ' & $countHR)
    ;Wenn sich Mausposition ändert
    If $Pos[0] <> $PosOld[0] Or $Pos[1] <> $PosOld[1] Then
    WinMove($hLupe, "", $Pos[0] + ($dist / 8), $Pos[1] + ($dist / 8))
    $PosOld = $Pos
    $countLR = 0
    $countHR = 0
    GUICtrlSetData($Input5, $iX + ($iW / 2))
    GUICtrlSetData($Input6, $iY + ($iH / 2))
    EndIf
    ;Wenn Bewegungstaste gedrückt
    If _IsPressed('25', $dll) And $iX > $Sl1ScaleMin Then ;links gedrückt
    $countLR = $countLR + (-1)
    WinMove($hLupe, "", $iX - $Scale, $iY)
    GUICtrlSetData($Input5, $iX + ($iW / 2))
    _WinAPI_RedrawWindow(_WinAPI_GetDesktopWindow(), 0, 0, $RDW_INVALIDATE + $RDW_ALLCHILDREN)
    ElseIf _IsPressed('27', $dll) And ($iX + $iW) < $Sl1ScaleMax Then ;rechts gedrückt
    $countLR = $countLR + 1
    WinMove($hLupe, "", $iX + $Scale, $iY)
    GUICtrlSetData($Input5, $iX + ($iW / 2))
    _WinAPI_RedrawWindow(_WinAPI_GetDesktopWindow(), 0, 0, $RDW_INVALIDATE + $RDW_ALLCHILDREN)
    ElseIf _IsPressed('26', $dll) And $iY > $Sl2ScaleMin Then ;hoch gedrückt
    $countHR = $countHR + (-1)
    WinMove($hLupe, "", $iX, $iY - $Scale)
    GUICtrlSetData($Input6, $iY + ($iH / 2))
    _WinAPI_RedrawWindow(_WinAPI_GetDesktopWindow(), 0, 0, $RDW_INVALIDATE + $RDW_ALLCHILDREN)
    ElseIf _IsPressed('28', $dll) And ($iY + $iH) < $Sl2ScaleMax Then ;runter gedrückt
    $countHR = $countHR + 1
    WinMove($hLupe, "", $iX, $iY + $Scale)
    GUICtrlSetData($Input6, $iY + ($iH / 2))
    _WinAPI_RedrawWindow(_WinAPI_GetDesktopWindow(), 0, 0, $RDW_INVALIDATE + $RDW_ALLCHILDREN)
    EndIf
    $SliderObenPos = _GUICtrlSlider_GetPos($SliderOben)
    $SliderUntenPos = _GUICtrlSlider_GetPos($SliderUnten)
    $SliderLinksPos = _GUICtrlSlider_GetPos($SliderLinks)
    $SliderRechtsPos = _GUICtrlSlider_GetPos($SliderRechts)
    If $SliderObenPos <> $PosSlOld[0] Or $SliderUntenPos <> $PosSlOld[1] Or $SliderLinksPos <> $PosSlOld[2] Or $SliderRechtsPos <> $PosSlOld[3] Then
    $PosSlOld[0] = $SliderObenPos
    $PosSlOld[1] = $SliderUntenPos
    $PosSlOld[2] = $SliderLinksPos
    $PosSlOld[3] = $SliderRechtsPos
    EndIf
    draw()
    ;wenn Checkbox1 'checked'
    ElseIf BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = $GUI_CHECKED Then
    $WinPosSave = WinGetPos($hLupe)
    $iX = $WinPosSave[0] ; x
    $iY = $WinPosSave[1] ; y
    $iW = $WinPosSave[2] ; width
    $iH = $WinPosSave[3] ; height
    draw()
    EndIf
    ;
    ;Checkbox2 check ' Modi Switch'
    If _IsPressed('12', $dll) And _IsPressed('32', $dll) Then
    Sleep(50)
    If BitAND(GUICtrlRead($Checkbox2), $GUI_CHECKED) = $GUI_CHECKED Then
    GUICtrlSetState($Checkbox2, $GUI_UNCHECKED)
    ElseIf BitAND(GUICtrlRead($Checkbox2), $GUI_UNCHECKED) = $GUI_UNCHECKED Then
    GUICtrlSetState($Checkbox2, $GUI_CHECKED)
    EndIf
    EndIf
    If BitAND(GUICtrlRead($Checkbox2), $GUI_CHECKED) = $GUI_CHECKED And $menuMode = 0 Then
    $menuMode = 1
    WinSetState($hLupe, '', @SW_HIDE)
    GUISetState(@SW_MINIMIZE, $LupeGUI)
    ToolTip('')
    ;maximieren()
    ElseIf BitAND(GUICtrlRead($Checkbox2), $GUI_UNCHECKED) = $GUI_UNCHECKED And $menuMode = 1 Then
    $menuMode = 0
    WinSetState($hLupe, '', @SW_SHOW)
    GUISetState(@SW_RESTORE, $LupeGUI)
    ToolTip('')
    EndIf

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

    ;Checkbox3 check ' + Pic Save'
    If _IsPressed('12', $dll) And _IsPressed('33', $dll) Then
    Sleep(50)
    If BitAND(GUICtrlRead($Checkbox3), $GUI_CHECKED) = $GUI_CHECKED Then
    GUICtrlSetState($Checkbox3, $GUI_UNCHECKED)
    ElseIf BitAND(GUICtrlRead($Checkbox3), $GUI_UNCHECKED) = $GUI_UNCHECKED Then
    GUICtrlSetState($Checkbox3, $GUI_CHECKED)
    EndIf
    EndIf
    If BitAND(GUICtrlRead($Checkbox3), $GUI_CHECKED) = $GUI_CHECKED Then
    $PicSave = 1
    ElseIf BitAND(GUICtrlRead($Checkbox3), $GUI_UNCHECKED) = $GUI_UNCHECKED Then
    $PicSave = 0
    EndIf

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

    ;X,Y Berechnung per Slider
    $x1 = $SliderObenPos / 192 * $iW
    $X2 = $SliderUntenPos / 192 * $iW
    $X = Round(Min($x1, $X2), 0)
    $y1 = $SliderLinksPos / 192 * $iW
    $Y2 = $SliderRechtsPos / 192 * $iW
    $Y = Round(Min($y1, $Y2), 0)
    $y1 = Round($SliderLinksPos / 192 * $iW, 0)
    $Y2 = Round($SliderRechtsPos / 192 * $iW, 0)
    $w1 = Floor(Abs($SliderObenPos - $SliderUntenPos) / 192 * $iH)
    $h1 = Floor(Abs($SliderLinksPos - $SliderRechtsPos) / 192 * $iW)

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

    ;Tooltip
    If $menuMode = 0 And BitAND(WinGetState($LupeGUI), 2) = 2 Then
    If BitAND(WinGetState($LupeGUI), 16) = 16 Then
    ToolTip('')
    ElseIf BitAND(WinGetState($LupeGUI), 1) = 1 Then
    ToolTip(($aWinPos[0] + ($aWinPos[2] / 2)) & ', ' & ($aWinPos[1] + ($aWinPos[3] / 2)), $iX, $iY + $iH)
    EndIf
    If $SliderLinksPos > $SliderRechtsPos Then
    $Ya = $SliderRechtsPos
    $Y = $SliderRechtsPos + $iY
    $height = $SliderLinksPos - $SliderRechtsPos
    $Y2 = $Y + $height
    Else
    $Ya = $SliderLinksPos
    $Y = $SliderLinksPos + $iY
    $height = $SliderRechtsPos - $SliderLinksPos
    $Y2 = $Y + $height
    EndIf
    If $SliderObenPos > $SliderUntenPos Then
    $Xa = $SliderUntenPos
    $X = $SliderUntenPos + $iX
    $width = $SliderObenPos - $SliderUntenPos
    $X2 = $X + $width
    Else
    $Xa = $SliderObenPos
    $X = $SliderObenPos + $iX
    $width = $SliderUntenPos - $SliderObenPos
    $X2 = $X + $width
    EndIf
    ElseIf $menuMode = 1 Then ;ToolTip
    ToolTip('Datensatz: ' & $savdat & @CRLF & 'Nr.: ' & $num + 1 & ', x=' & $Pos[0] & ' / y=' & $Pos[1] & @CRLF & 'col=' & $col & @CRLF & 'MitteLupe.: ' & $AuswCol & @CRLF & 'MitteAusw.: ' & $AuswMitte & @CRLF & 'AuswChksm: ' & $auswPixCksm, $Pos[0] + 50, $Pos[1] - 10)
    EndIf
    ;Fenster Animation 'Zusammenhang sichern'
    If WinGetState($LupeGUI) = 16 And WinGetState($hLupe) = 2 And $winLupeState = 1 Then
    $winLupeState = 0
    GUISetState(@SW_HIDE, $hLupe)
    WinSetState($hLupe, '', @SW_HIDE)
    ElseIf WinGetState($LupeGUI) = 3 And WinGetState($hLupe) <> 2 Then
    $winLupeState = 1
    GUISetState(@SW_SHOW, $hLupe)
    WinSetState($hLupe, '', @SW_SHOW)
    EndIf
    If _IsPressed('10', $dll) And _IsPressed('01', $dll) Then
    ;If _IsPressed('01', $dll) Then
    $num = $num + 1
    $Haus[$num][0] = $num ;Position
    $Haus[$num][1] = $Pos[0] ;x-Pos
    $Haus[$num][2] = $Pos[1] ;y-Pos
    $Haus[$num][3] = $col ;Mouse PixColor
    $Haus[$num][4] = $AuswCol ;Lupe Mitte Color (!)
    $Haus[$num][5] = $auswPixCksm ;Auswahl Mitte Color
    $Haus[$num][6] = ($iX + $X) ;x oben
    $Haus[$num][7] = ($iY + $Y) ;y oben
    $Haus[$num][8] = ($iX + $X + $w1) ;x unten
    $Haus[$num][9] = ($iY + $Y + $h1) ;y unten
    ;Bild speichern?
    If $PicSave = 1 Then
    $sDir = 'C:\Dokumente und Einstellungen\Besitzer\Desktop\' & StringFormat('%s.%s.%s\%s', @MDAY, @MON, @YEAR, $num)
    DirCreate($sDir)
    $sFile1 = $sDir & "\mColors.txt"
    $sFile2 = $sDir & "\aColors.txt"
    $hFile1 = FileOpen($sFile1, 1) ; 1 = append (anhängen)
    $hFile2 = FileOpen($sFile2, 1) ; 1 = append (anhängen)
    $hBMP = _ScreenCapture_Capture($sDir & '\Lupe.jpg', $iX, $iY, $iX + $iW, $iY + $iH)
    $hBMP2 = _ScreenCapture_Capture($sDir & '\Auswahl.jpg', $iX + $X - 2, $iY + $Y - 2, $iX + $X + $w1, $iY + $Y + $h1)
    $hBMPm = _ScreenCapture_Capture($sDir & '\Maus.jpg', $Pos[0] - $pMGr, $Pos[1] - $pMGr, $Pos[0] + $pMGr, $Pos[1] + $pMGr)
    _ScreenCapture_SaveImage($sDir & '\Lupe.jpg', $hBMP)
    _ScreenCapture_SaveImage($sDir & '\Auswahl.jpg', $hBMP2)
    _ScreenCapture_SaveImage($sDir & '\Maus.jpg', $hBMPm)
    $colors_A = _getPixelColors($Pos[0] - 10, $Pos[1] - 10, $Pos[0] + 10, $Pos[1] + 10, $hFile1)
    $colors_B = _getPixelColors($iX + $X, $iY + $Y, $iX + $X + $w1, $iY + $Y + $h1, $hFile2)
    EndIf
    ;Daten speichern
    FileWrite($save, $Haus[$num][0] & ',' & $Haus[$num][1] & ',' & $Haus[$num][2] & ',' & $Haus[$num][3] & ',' & $Haus[$num][4] & ',' & $Haus[$num][5] & ',' & $Haus[$num][6] & ',' & $Haus[$num][7] & ',' & $Haus[$num][8] & ',' & $Haus[$num][9] & @CRLF)
    Sleep(100)
    ;EndIf
    EndIf
    ;Daten für GUI holen und setzen
    ;$savdat = GUICtrlRead($menu4)
    $Pos = MouseGetPos()
    $col = PixelGetColor($Pos[0], $Pos[1])
    $AuswCol = PixelGetColor($iX + ($iW / 2), $iY + ($iH / 2))
    $AuswMitte = PixelGetColor((($iX + $X) + ($w1 / 2)), (($iY + $Y) + ($h1 / 2))) ;Mitte Auswahlrechteck
    $auswPixCksm = PixelChecksum(($iX + $X), ($iY + $Y), ($iX + $X) + Abs($SliderLinksPos - $SliderRechtsPos), ($iY + $Y) + Abs($SliderObenPos - $SliderUntenPos)) ;Auswahlrechteck x1,y1,x2,y2
    GUICtrlSetData($Input9, 'Maus: ' & PixelGetColor($Pos[0], $Pos[1]))
    GUICtrlSetData($Input10, 'Auswahl: ' & PixelGetColor($iX + ($iW / 2), $iY + ($iH / 2)))
    GUICtrlSetData($Input11, 'AuswChksm: ' & $auswPixCksm)
    GUICtrlSetData($Input7, ' x = ' & $iX + ($Xa / 2) & ', y = ' & $iY + ($Ya / 2))
    GUICtrlSetData($Input8, 'Breite = ' & $width & ', Höhe = ' & $height)
    WEnd
    ;Ende 'Schleife'
    ;Funktionen
    Func DatenGUI()
    ToolTip('')
    WinSetState($hLupe, '', @SW_HIDE)
    GUISetState(@SW_HIDE, $LupeGUI)
    ;GUI
    $DatenGUI = GUICreate("Daten erfassen", 220, 110, -1, -1) ; (220x x 180y) will create a dialog box that when displayed is centered
    GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "SpecialEvents")
    GUISetOnEvent($GUI_EVENT_RESTORE, "SpecialEvents")
    $menu3 = GUICtrlCreateMenu("Dateien")
    $menuopen = GUICtrlCreateMenuItem("Öffnen", $menu3)
    GUICtrlSetOnEvent($menuopen, 'open')
    $menuclose = GUICtrlCreateMenuItem("Schliessen", $menu3)
    GUICtrlSetOnEvent($menuclose, 'schliessen')
    $menuexit = GUICtrlCreateMenuItem("Exit", $menu3)
    GUICtrlSetOnEvent($menuexit, 'Beenden')
    $n1 = GUICtrlCreateList("", 10, 3, -1, 50)
    $bErst = GUICtrlCreateButton("Erstellen", 10, 55, 50, 25)
    GUICtrlSetOnEvent($bErst, 'erstellen')
    $bHinz = GUICtrlCreateButton("Hinzufügen", 70, 55, 65, 25)
    GUICtrlSetOnEvent($bHinz, 'hinzu')
    $bBearb = GUICtrlCreateButton("Bearbeiten", 145, 55, 65, 25)
    GUICtrlSetOnEvent($bBearb, 'bearbeiten')
    GUICtrlSetData($n1, 'Geschäfte|Wohnhäuser|User', 'Geschäfte')
    GUICtrlSetState($bHinz, $GUI_FOCUS) ; the focus is on this button
    GUISetState()
    GUISetState(@SW_SHOW, $DatenGUI)
    ;WinSetState($hLupe, '', @SW_SHOW)
    ;ENDE GUI
    EndFunc ;==>DatenGUI
    Func draw()
    ; Bild per StretchBlt übertragen
    $Lupe = _WinAPI_StretchBlt( _
    $hDC_Dest, 32, 30, 192, 192, _
    $hDC_Source, $iX, $iY, $iW, $iH, _
    $SRCCOPY)
    ;Auswahl 'Auswahlslider'
    $SliderObenPos = _GUICtrlSlider_GetPos($SliderOben)
    $SliderUntenPos = _GUICtrlSlider_GetPos($SliderUnten)
    $SliderLinksPos = _GUICtrlSlider_GetPos($SliderLinks)
    $SliderRechtsPos = _GUICtrlSlider_GetPos($SliderRechts)
    ;Auswahl zeichnen
    _GDIPlus_GraphicsDrawLine($hGraphic, 32, 30 + $SliderLinksPos, 222, 30 + $SliderLinksPos, $hPen); oben
    _GDIPlus_GraphicsDrawLine($hGraphic, 32, 30 + $SliderRechtsPos, 222, 30 + $SliderRechtsPos, $hPen); unten
    _GDIPlus_GraphicsDrawLine($hGraphic, 32 + $SliderObenPos, 30, 32 + $SliderObenPos, 220, $hPen); links
    _GDIPlus_GraphicsDrawLine($hGraphic, 32 + $SliderUntenPos, 30, 32 + $SliderUntenPos, 220, $hPen); rechts
    EndFunc ;==>draw
    Func Min($i, $j)
    If $i > $j Then Return $j
    Return $i
    EndFunc ;==>Min
    Func _WinAPI_StretchBlt($hDestDC, $iXDest, $iYDest, $iWidthDest, $iHeightDest, $hSrcDC, $iXSrc, $iYSrc, $iWidthSrc, $iHeightSrc, $iRop)
    Local $Ret = DllCall('gdi32.dll', 'int', 'StretchBlt', 'hwnd', $hDestDC, 'int', $iXDest, 'int', $iYDest, 'int', $iWidthDest, 'int', $iHeightDest, 'hwnd', $hSrcDC, 'int', $iXSrc, 'int', $iYSrc, 'int', $iWidthSrc, 'int', $iHeightSrc, 'dword', $iRop)
    If (@error) Or (Not IsArray($Ret)) Then
    Return SetError(1, 0, 0)
    EndIf
    Return 1
    EndFunc ;==>_WinAPI_StretchBlt
    Func erstellen()
    ToolTip('')
    WinSetState($hLupe, '', @SW_HIDE)
    WinSetState($DatenGUI, "", @SW_HIDE)
    Switch MsgBox(4, "Angaben Korrekt?", 'Sie wollen die Daten für' & @CRLF & GUICtrlRead($n1) & @CRLF & 'neu erstellen?')
    Case 6 ; JA
    If GUICtrlRead($n1) = 'Geschäfte' Then
    $save = FileOpen(@ScriptDir & '\Geschäftsdaten.txt', 2)
    ElseIf GUICtrlRead($n1) = 'Wohnhäuser' Then
    $save = FileOpen(@ScriptDir & '\Häuserdaten.txt', 2)
    ElseIf GUICtrlRead($n1) = 'User' Then
    $save = FileOpen(@ScriptDir & '\User.txt', 2)
    EndIf
    GUISetState(@SW_HIDE, $DatenGUI)
    GUISetState(@SW_HIDE, $LupeGUI)
    WinSetState($hLupe, '', @SW_HIDE)
    Einloggen()
    maximieren()
    erfassen($save, $datfile)
    Case 7 ; NEIN
    GUISetState(@SW_HIDE, $DatenGUI)
    GUISetState(@SW_SHOW, $LupeGUI)
    WinSetState($hLupe, '', @SW_SHOW)
    EndSwitch
    EndFunc ;==>erstellen
    Func hinzu()
    ToolTip('')
    WinSetState($hLupe, '', @SW_HIDE)
    WinSetState($DatenGUI, "", @SW_HIDE)
    Switch MsgBox(4, "Angaben Korrekt?", 'Sie wollen die Daten für' & @CRLF & GUICtrlRead($n1) & @CRLF & 'erweitern?')
    Case 6 ; JA
    $hinz = 1
    If GUICtrlRead($n1) = 'Geschäfte' Then
    $save = FileOpen(@ScriptDir & '\Geschäftsdaten.txt', 1)
    $datfile = @ScriptDir & '\Geschäftsdaten.txt'
    ElseIf GUICtrlRead($n1) = 'Wohnhäuser' Then
    $save = FileOpen(@ScriptDir & '\Häuserdaten.txt', 1)
    $datfile = @ScriptDir & '\Häuserdaten.txt'
    ElseIf GUICtrlRead($n1) = 'User' Then
    $save = FileOpen(@ScriptDir & '\User.txt', 1)
    $datfile = @ScriptDir & '\User.txt'
    EndIf
    GUISetState(@SW_HIDE, $DatenGUI)
    GUISetState(@SW_HIDE, $LupeGUI)
    WinSetState($hLupe, '', @SW_HIDE)
    Einloggen()
    maximieren()
    erfassen($save, $datfile)
    Case 7 ; NEIN
    GUISetState(@SW_HIDE, $DatenGUI)
    GUISetState(@SW_SHOW, $LupeGUI)
    WinSetState($hLupe, '', @SW_SHOW)
    EndSwitch
    EndFunc ;==>hinzu
    Func bearbeiten()
    If GUICtrlRead($n1) = 'Geschäfte' Then
    $run = 'Notepad.exe ' & @ScriptDir & '\Geschäftsdaten.txt'
    Run($run)
    ElseIf GUICtrlRead($n1) = 'Wohnhäuser' Then
    $run = 'Notepad.exe ' & @ScriptDir & '\Häuserdaten.txt'
    Run($run)
    ElseIf GUICtrlRead($n1) = 'User' Then
    $run = 'Notepad.exe ' & @ScriptDir & '\User.txt'
    Run($run)
    EndIf
    EndFunc ;==>bearbeiten
    Func open()
    $fileopen = FileOpenDialog("Wählen Sie eine Datei aus...", @TempDir, "Alle (*.*)")
    If @error Then
    MsgBox(4096, "Fehler!", 'Abbruch' & @CRLF & @CRLF & 'Keine Datei ausgewählt!')
    Else
    $run = 'Notepad.exe ' & $fileopen
    Run($run)
    EndIf
    EndFunc ;==>open
    Func Einloggen()
    If BitAND($stateface, 1) Then
    $handle = WinGetHandle('Facebook')
    WinSetState($handle, "", @SW_MAXIMIZE)
    $face = 1
    $oIE = _IEAttach('Facebook')
    $hIE = _IEPropertyGet($oIE, "hwnd")
    WinSetState($hIE, "", @SW_MAXIMIZE)
    _IENavigate($oIE, $url, 1)
    WinActivate($oIE)
    _IELoadWait($oIE)
    ElseIf BitAND($statemill, 1) And $face = 0 Then
    $mill = 1
    $handle = WinGetHandle('Millionaire City auf Facebook')
    WinSetState($handle, "", @SW_MAXIMIZE)
    $oIE = _IEAttach('Facebook')
    $hIE = _IEPropertyGet($oIE, "hwnd")
    WinSetState($hIE, "", @SW_MAXIMIZE)
    WinActivate($oIE)
    ElseIf $mill = 0 Then
    $oIE = _IECreate($loginurl, 1, 1, 1, 1); $url, $f_tryAttach=0, $f_visible=1, $f_wait=1, $f_takeFocus=1
    $hIE = _IEPropertyGet($oIE, "hwnd")
    WinSetState($hIE, "", @SW_MAXIMIZE)
    _IELoadWait($oIE)
    $oInputs = _IETagNameGetCollection($oIE, "input")
    $oForm = _IEFormGetCollection($oIE, 0)
    $oUser = _IEGetObjByName($oIE, "email")
    $oPass = _IEGetObjByName($oIE, "pass")
    $oDiv = _IEGetObjById($oIE, "buttons")
    _IEFormElementSetValue($oUser, $sUser)
    _IEFormElementSetValue($oPass, $sPass)
    _IEFormSubmit($oForm)
    _IENavigate($oIE, $url)
    _IELoadWait($oIE)
    Sleep(500)
    _IELoadWait($oIE)
    EndIf
    EndFunc ;==>Einloggen
    Func maximieren()
    WinActivate("Millionaire City auf Facebook")
    WinWaitActive("Millionaire City auf Facebook")
    Sleep(250)
    MouseClick("left", 1010, 165, 1)
    MouseMove(1010, 256, 1)
    MouseDown("left")
    MouseMove(1010, 350, 20)
    MouseUp("left")
    MouseClick("left", 769, 500, 3, 20)
    MouseClick("left", 771, 530, 1)
    Sleep(1000)
    MouseMove(737, 544, 1)
    MouseDown("left")
    MouseMove(749, 408, 30)
    MouseUp("left")
    Sleep(100)
    EndFunc ;==>maximieren
    Func erfassen($save, $datfile)
    _FileReadToArray($datfile, $count)
    If $hinz = 1 Then
    $num = $num + $count[0]
    EndIf
    EndFunc ;==>erfassen
    Func speichernunter()
    Select
    Case @GUI_CtrlId = $mLaden
    GUICtrlSetData($menu4, "Geschäftsdaten")
    $save = FileOpen(@ScriptDir & '\Geschäftsdaten.txt', 2)
    $datfile = @ScriptDir & '\Geschäftsdaten.txt'
    $savdat = "Geschäftsdaten"
    Case @GUI_CtrlId = $mHaus
    GUICtrlSetData($menu4, 'Häuserdaten')
    $save = FileOpen(@ScriptDir & '\Häuserdaten.txt', 2)
    $datfile = @ScriptDir & '\Häuserdaten.txt'
    $savdat = 'Häuserdaten'
    Case @GUI_CtrlId = $mUser
    GUICtrlSetData($menu4, 'Userdaten')
    $save = FileOpen(@ScriptDir & '\User.txt', 2)
    $datfile = @ScriptDir & '\User.txt'
    $savdat = 'Userdaten'
    EndSelect
    EndFunc ;==>speichernunter
    Func SpecialEvents()
    Select
    Case @GUI_CtrlId = $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE, $DatenGUI)
    GUISetState(@SW_SHOW, $LupeGUI)
    WinSetState($hLupe, '', @SW_SHOW)
    Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
    ;MsgBox(0, "Fenster minimiert", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
    Case @GUI_CtrlId = $GUI_EVENT_RESTORE
    ;MsgBox(0, "Fenster wiederhergestellt", "ID=" & @GUI_CtrlId & " WinHandle=" & @GUI_WinHandle)
    EndSelect
    EndFunc ;==>SpecialEvents
    Func schliessen()
    GUISetState(@SW_HIDE, $DatenGUI)
    GUISetState(@SW_SHOW, $LupeGUI)
    WinSetState($hLupe, '', @SW_SHOW)
    EndFunc ;==>schliessen
    Func Beenden()
    _GDIPlus_PenDispose($hPen)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()
    FileClose($save)
    DllClose($dll)
    Exit
    EndFunc ;==>Beenden
    Func _getPixelColors($start_X, $start_Y, $end_X, $end_Y, $File)
    Local $coord[$end_X - $start_X][$end_Y - $start_Y]
    For $X = 0 To UBound($coord, 1) - 1
    For $Y = 0 To UBound($coord, 2) - 1
    $coord[$X][$Y] = PixelGetColor($X + $start_X, $Y + $start_Y)
    FileWrite($File, $X & ',' & $Y & ',' & $coord[$X][$Y] & @CRLF)
    Next
    Next
    Return $coord
    EndFunc ;==>_getPixelColors

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

    Func DatensatzGUI()
    $DatensatzGUI = GUICreate("Datensatz: " & $savdat, 633, 454, 192, 114)
    $ListView1 = GUICtrlCreateListView("||||||||", 208, 80, 250, 150)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 4, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 5, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 6, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 7, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 8, 50)
    _FileReadToArray($datfile, $FileLines)
    For $i = 1 To $FileLines[0]
    $List[$i] = GUICtrlCreateListViewItem($i, $ListView1)
    Next
    GUISetState(@SW_SHOW)
    EndFunc ;==>DatensatzGUI
    ;Ende 'Funktionen'

    [/autoit]
  • Hallo Morrison,

    du dein Skript nicht gründlich genug gesäubert:

    [autoit]

    Func Einloggen()
    If BitAND($stateface, 1) Then
    $handle = WinGetHandle('Facebook')
    WinSetState($handle, "", @SW_MAXIMIZE)
    $face = 1
    $oIE = _IEAttach('Facebook')
    $hIE = _IEPropertyGet($oIE, "hwnd")
    WinSetState($hIE, "", @SW_MAXIMIZE)
    _IENavigate($oIE, $url, 1)
    WinActivate($oIE)
    _IELoadWait($oIE)
    ElseIf BitAND($statemill, 1) And $face = 0 Then
    $mill = 1
    $handle = WinGetHandle('Millionaire City auf Facebook')

    [/autoit]

    Edit: im englischen Forum wurde http://www.autoitscript.com/forum/topic/12…etting-through/ geCLOSEd.

    mfg autoBert

    2 Mal editiert, zuletzt von autoBert (18. März 2011 um 16:18)