mit Maus Auswahlrechteck erzeugen und Daten speichern!?

  • Hallo,
    ich wollte bei gedrückter linker Maustaste ein Auswahlrechteck erzeugen welches beim loslassen
    1. die Auswahl in einem neuen Fenster öffnet (vergrössert)
    2. die Auswahl als Bild (.jpg) und die Koordinaten des Bilds als Textdatei speichert
    naja..aber es passiert nix!

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>
    #include <GDIPlus.au3>

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

    Dim $dll = DllOpen("user32.dll")
    Dim $win = _WinAPI_GetDesktopWindow()

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

    _GDIPlus_Startup()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($win)
    $hPen = _GDIPlus_PenCreate()

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

    While 1
    If _IsPressed('01', $dll) Then
    $mPos = MouseGetPos()
    While _IsPressed('1', $dll)
    Sleep(100)
    If MouseGetPos() <> $mPos Then
    $mPosNew = MouseGetPos()
    EndIf

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

    _GDIPlus_GraphicsDrawLine($hGraphic, $mPos[0], $mPos[0], $mPosNew[0], $mPosNew[0], $hPen) ; oben(?)
    _GDIPlus_GraphicsDrawLine($hGraphic, $mPos[0], $mPos[1], $mPosNew[0], $mPosNew[1], $hPen) ; unten(?)
    _GDIPlus_GraphicsDrawLine($hGraphic, $mPos[1], $mPos[1], $mPosNew[1], $mPosNew[1], $hPen) ; links(?)
    _GDIPlus_GraphicsDrawLine($hGraphic, $mPos[1], $mPos[0], $mPosNew[1], $mPosNew[0], $hPen) ; rechts(?)

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

    WEnd

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

    ; Auswahlpic speichern mit coords

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

    EndIf
    WEnd

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

    DllClose($dll)
    _GDIPlus_PenDispose($hPen)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()

    [/autoit]

    Einmal editiert, zuletzt von Morrison (11. September 2011 um 01:00)

  • Schau dir das mal an, ist evtl eine gute Grundlage für dich.

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>
    #include <ScreenCapture.au3>
    #include <WindowsConstants.au3>

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

    While 1
    If _IsPressed(01) And _IsPressed(53) Then
    $aMousePosDesk = MouseGetPos()
    $hGui = GUICreate("Screen", 0, 0, $aMousePosDesk[0], $aMousePosDesk[1], $WS_POPUP, $WS_EX_TOOLWINDOW+$WS_EX_TOPMOST)
    GUISetBkColor(0x0090ff)
    WinSetTrans("Screen", "", 100)
    GUISetState()
    Do
    $aNewMousePosDesk = MouseGetPos()
    WinMove("Screen", "", $aMousePosDesk[0], $aMousePosDesk[1], $aNewMousePosDesk[0] - $aMousePosDesk[0], $aNewMousePosDesk[1] - $aMousePosDesk[1])
    Until Not _IsPressed(01)
    $WinPosANDScreenKoords = WinGetPos("Screen", "")
    GUIDelete($hGui)
    For $i = 1 To 9999
    If Not FileExists(@DesktopDir & "\DeskScreenPic" & $i & ".jpg") Then
    Sleep(100)
    _ScreenCapture_Capture(@DesktopDir & "\DeskScreenPic" & $i & ".jpg", $WinPosANDScreenKoords[0], $WinPosANDScreenKoords[1], $WinPosANDScreenKoords[0] + $WinPosANDScreenKoords[2], $WinPosANDScreenKoords[1] + $WinPosANDScreenKoords[3])
    ExitLoop
    EndIf
    Next
    EndIf
    WEnd

    [/autoit]