Screen-Bild

  • Ich habe ein Script!
    Das aber leider nicht funktioniert!
    und ich find den Fehler nicht!

    Spoiler anzeigen
    [autoit]

    #include <screencapture.au3>
    #include <guiconstants.au3>
    $g1=guicreate("weiss",@desktopwidth,@desktopheight,0,0,0x80000000,0x80)
    winsettrans($g1,"",100)
    guisetbkcolor(0xffffff)
    guisetstate()
    $g2=guicreate("rot",1,1,0,0,0x80000000,0x80)
    winsettrans($g2,"",100)
    guisetbkcolor(0xff0000)
    guisetstate()
    while 1
    winactivate($g2)
    winsetontop($g1,"",1)
    winsetontop($g2,"",1)
    while 1
    if winactive($g1) then
    $clickpos=mousegetpos()
    winmove($g2,"",$clickpos[0],$clickpos[1])
    winsetontop($g1,"",1)
    winsetontop($g2,"",1)
    winactivate($g2)
    while 1
    $secondclick=mousegetpos()
    winmove($g2,"",$clickpos[0],$clickpos[1],$secondclick[0]-$clickpos[0],$secondclick[1]-$clickpos[1])
    if winactive($g1) then
    ;Koordinaten
    $xpos=$clickpos[0] ;X-Position
    $ypos=$clickpos[1] ;Y-Position
    $width=$secondclick[0]-$clickpos[0] ;Breite des Rechtecks
    $height=$secondclick[1]-$clickpos[1] ;Höhe des Rechtecks
    _ScreenCapture_Capture(@ScriptDir & "\z-bild.jpg",$xpos,$ypos,$width,$height)
    exitloop 3
    endif
    wend
    endif
    wend
    wend

    [/autoit]


    ?(?(?(?(8o

    • Offizieller Beitrag

    Hallo

    Spoiler anzeigen
    [autoit]

    #include<ScreenCapture.au3>
    $g1 = GUICreate("weiss", @DesktopWidth, @DesktopHeight, 0, 0, 0x80000000, 0x80)
    WinSetTrans($g1, "", 100)
    GUISetBkColor(0xffffff)
    GUISetState()
    $g2 = GUICreate("rot", 1, 1, 0, 0, 0x80000000, 0x80)
    WinSetTrans($g2, "", 100)
    GUISetBkColor(0xff0000)
    GUISetState()
    While 1
    WinActivate($g2)
    WinSetOnTop($g1, "", 1)
    WinSetOnTop($g2, "", 1)
    While 1
    If WinActive($g1) Then
    $clickpos = MouseGetPos()
    WinMove($g2, "", $clickpos[0], $clickpos[1])
    WinSetOnTop($g1, "", 1)
    WinSetOnTop($g2, "", 1)
    WinActivate($g2)
    While 1
    $secondclick = MouseGetPos()
    WinMove($g2, "", $clickpos[0], $clickpos[1], $secondclick[0] - $clickpos[0], $secondclick[1] - $clickpos[1])
    If WinActive($g1) Then
    ;Koordinaten
    $xpos = $clickpos[0] ;X-Position
    $ypos = $clickpos[1] ;Y-Position
    $width = $xpos + $secondclick[0] - $clickpos[0] ;Breite des Rechtecks
    $height = $ypos + $secondclick[1] - $clickpos[1] ;Höhe des Rechtecks
    ConsoleWrite($xpos & @CRLF)
    ConsoleWrite($ypos & @CRLF)
    ConsoleWrite($width & @CRLF)
    ConsoleWrite($height & @CRLF)
    _ScreenCapture_Capture(@ScriptDir & "\z-bild.jpg", $xpos, $ypos, $width, $height)
    Beep()
    ExitLoop 3
    EndIf
    WEnd
    EndIf
    WEnd
    WEnd

    [/autoit]

    Bei Width und Heigth muss xpos und ypos zugerechnet werden.

    Mfg Spider

    p.s.: du hast ein schlampigen codestil :D

  • THX GtaSpider,
    Jetzt hab ich aber noch ein Problem, dass der Screenshot als Hintergrund Rot angezigt wird! Wie bring ich das rote weg?
    ich habe es schon mit GUICtrlDelete($g1) geht aber leider nicht! ^^ ?(

    • Offizieller Beitrag

    Hallo

    Nicht GuiCTRLDelete sondern GuiDelete:

    Spoiler anzeigen
    [autoit]

    #include<ScreenCapture.au3>
    $g1 = GUICreate("weiss", @DesktopWidth, @DesktopHeight, 0, 0, 0x80000000, 0x80)
    WinSetTrans($g1, "", 100)
    GUISetBkColor(0xffffff)
    GUISetState()
    $g2 = GUICreate("rot", 1, 1, 0, 0, 0x80000000, 0x80)
    WinSetTrans($g2, "", 100)
    GUISetBkColor(0xff0000)
    GUISetState()
    While 1
    WinActivate($g2)
    WinSetOnTop($g1, "", 1)
    WinSetOnTop($g2, "", 1)
    While 1
    If WinActive($g1) Then
    $clickpos = MouseGetPos()
    WinMove($g2, "", $clickpos[0], $clickpos[1])
    WinSetOnTop($g1, "", 1)
    WinSetOnTop($g2, "", 1)
    WinActivate($g2)
    While 1
    $secondclick = MouseGetPos()
    WinMove($g2, "", $clickpos[0], $clickpos[1], $secondclick[0] - $clickpos[0], $secondclick[1] - $clickpos[1])
    If WinActive($g1) Then
    ;Koordinaten
    $xpos = $clickpos[0] ;X-Position
    $ypos = $clickpos[1] ;Y-Position
    $width = $xpos + $secondclick[0] - $clickpos[0] ;Breite des Rechtecks
    $height = $ypos + $secondclick[1] - $clickpos[1] ;Höhe des Rechtecks
    GUIDelete($g1)
    GUIDelete($g2)
    _ScreenCapture_Capture(@ScriptDir & "\z-bild.jpg", $xpos, $ypos, $width, $height)
    ExitLoop 3
    EndIf
    WEnd
    EndIf
    WEnd
    WEnd

    [/autoit]

    Mfg Spider