Hallo,
ich bastel immer noch an meiner Lupenfunktion! Jedoch bekomme ich die Auswahl von der Auswahl nicht berechnet, also für das Auswahlrechteck habe ich die richtigen Koordinaten, jedoch aber nicht für die erweiterte Auswahl die ich mit den Slidern bestimmen kann. Es geht Hauptsächlich um die
$AuswAuswColMitte
Variable!!
In Zeile 332 zu finden!
Kann mir da jemand helfen, bitte?
Für weitere Verbesserungen oder Vorschläge wäre ich auch sehr dankbar! Bin leider kein Programmierer, nur Autodidakt, wllt. erbarmt sich ja jemand mein Script zu überarbeiten!
Danke!
Spoiler anzeigen
#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
Dim $Haus[255][10]
Dim $dll = DllOpen("user32.dll")
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, $AuswAuswColMitte
Local $Sl1ScaleMin, $Sl1ScaleMax, $Sl2ScaleMin, $Sl2ScaleMax, $SliderObenPos, $SliderUntenPos, $SliderLinksPos, $SliderRechtsPos
Global $doc, $Anmelden, $oIE, $loggedin, $WinStat, $FaceStat, $maxi, $run, $menuopen, $fileopen, $save, $AuswColMitte, $AuswChksm, $hIE
Local $menu1, $n1, $bErst, $bHinz, $bBearb, $msg, $menustate, $menutext, $hinz, $countl, $num, $Pos, $MausCol, $oInputs, $oForm
Local $oPass, $oUser, $oDiv, $count, $datfile, $DatenGUI, $handle, $datasplit, $mill, $face, $menuexit, $savdat
$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, 600, -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, 'Beenden')
$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, 440, 130, 20, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
$Input2 = GUICtrlCreateInput("", 4, 460, 130, 20, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
$Input3 = GUICtrlCreateInput("", 4, 480, 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, 440, 130, 20, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
$Input10 = GUICtrlCreateInput("", 137, 460, 130, 20, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
$Input11 = GUICtrlCreateInput("", 137, 480, 130, 20, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
$Input12 = GUICtrlCreateInput("", 4, 380, 200, 20, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
$Input13 = GUICtrlCreateInput("", 4, 400, 200, 20, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
$Input14 = GUICtrlCreateInput("", 137, 500, 130, 20, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
$Label1 = GUICtrlCreateLabel("Koordinaten:", 8, 423, 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, 423, 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(" A ", 157, 337, 90, 20, BitOR($BS_CENTER, $WS_GROUP, $WS_BORDER))
$Button2 = GUICtrlCreateButton(" B ", 157, 359, 90, 20, BitOR($BS_CENTER, $WS_GROUP, $WS_BORDER))
GUICtrlSetOnEvent($Button1, 'Beenden')
GUICtrlSetOnEvent($Button2, 'Beenden')
$hPen = _GDIPlus_PenCreate()
;GUICtrlSetResizing ($LupeGUI, $GUI_DOCKAUTO)
GUISetState(@SW_SHOW, $LupeGUI)
GUICtrlSetLimit($SliderOben, ($dist * 2), 0)
GUICtrlSetData($SliderOben, 45)
GUICtrlSetLimit($SliderUnten, ($dist * 2), 0)
GUICtrlSetData($SliderUnten, 80)
GUICtrlSetLimit($SliderLinks, ($dist * 2), 0)
GUICtrlSetData($SliderLinks, 80)
GUICtrlSetLimit($SliderRechts, ($dist * 2), 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 / 4), $Pos[1] + ($dist / 4), $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')
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 = ' & Round($iX, 0) & ' , y = ' & Round($iY, 0))
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 / 4), $Pos[1] + ($dist / 4))
$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
;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
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((Round($aWinPos[0] + ($aWinPos[2] / 2), 0)) & ', ' & Round(($aWinPos[1] + ($aWinPos[3] / 2)), 0), $iX, $iY + $iH)
EndIf
If $SliderLinksPos > $SliderRechtsPos Then
$Ya = $SliderRechtsPos
$Yb = $SliderLinksPos
$Y = $Ya + $iY
$height = Abs($Yb - $Ya)
$Y2 = $Y + $height
Else
$Ya = $SliderLinksPos
$Yb = $SliderRechtsPos
$Y = $Ya + $iY
$height = Abs($Yb - $Ya)
$Y2 = $Y + $height
EndIf
If $SliderObenPos > $SliderUntenPos Then
$Xa = $SliderUntenPos
$Xb = $SliderObenPos
$X = $Xa + $iX
$width = Abs($Xb - $Xa)
$X2 = $X + $width
Else
$Xa = $SliderObenPos
$Xb = $SliderUntenPos
$X = $Xa + $iX
$width = Abs($Xb - $Xa)
$X2 = $X + $width
EndIf
ElseIf $menuMode = 1 Then ;ToolTip
ToolTip('Datensatz: ' & $savdat & @CRLF & 'Nr.: ' & $num + 1 & ', x=' & $Pos[0] & ' / y=' & $Pos[1] & @CRLF & 'col=' & $MausCol & @CRLF & 'MitteLupe.: ' & $AuswColMitte & @CRLF & 'MitteAusw.: ' & $AuswAuswColMitte & @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] = $MausCol ;Mouse PixColor
$Haus[$num][4] = $AuswColMitte ;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
$MausCol = PixelGetColor($Pos[0], $Pos[1])
$AuswColMitte = PixelGetColor(Round($iX + ($iW / 2), 0), Round($iY + ($iH / 2), 0))
$AuswAuswColMitte = PixelGetColor($iX + $Xa + Abs($Xa - $Xb), $iY + $Ya + Abs($Ya - $Yb))
$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, 'AuswahlMitte: ' & PixelGetColor($iX + ($iW / 2), $iY + ($iH / 2)))
GUICtrlSetData($Input11, 'AAuswMitte: ' & $AuswAuswColMitte)
GUICtrlSetData($Input14, 'AuswChksm: ' & $auswPixCksm)
GUICtrlSetData($Input7, ' x = ' & Round($iX + ($Xa / 2), 0) & ', y = ' & Round($iY + ($Ya / 2), 0))
GUICtrlSetData($Input8, 'Breite = ' & $width & ', Höhe = ' & $height)
GUICtrlSetData($Input12, 'SlOben = ' & $SliderObenPos & ', SlUnten = ' & $SliderUntenPos & ', Diff: ' & Abs($SliderObenPos - $SliderUntenPos))
GUICtrlSetData($Input13, 'SlLinks = ' & $SliderLinksPos & ', SlRechts = ' & $SliderRechtsPos & ', Diff: ' & Abs($SliderLinksPos - $SliderRechtsPos))
WEnd
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 _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 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