Maus abmalen

  • hi
    ich hab ein prog geschrieben das die mausbewegung aufzeichnet,
    wenn man die linke maustaste drückt,
    und dann gibt es die bewegung in einem gui wieder
    ich hab nur einproblem
    da ich das wieder geben mit _GDIPlus_GraphicsDrawLine gemacht hab
    sieht das ein bischen komisch aus
    hier mein Script:

    Spoiler anzeigen
    [autoit]

    #Include <Misc.au3>
    #include <Array.au3>
    #include <GuiConstantsEx.au3>
    #include <GDIPlus.au3>
    Opt("MouseCoordMode",2)

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

    While 1
    If _IsPressed(1) Then
    $pos=MouseGetPos()
    FileWrite("Test.txt",$pos[0]&" "&$pos[1]&" ")
    EndIf
    If _IsPressed(20) Then ExitLoop
    WEnd

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

    $fiel=FileRead("Test.txt")
    $strg=StringSplit($fiel," ")
    ;~ _ArrayDisplay($strg)
    FileDelete("Test.txt")

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

    $x=$strg[1]-150
    $y=$strg[2]-50
    For $i = 1 To $strg[0] - 1 Step 2
    $strg[$i]=$strg[$i]-$x
    $strg[$i+1]=$strg[$i+1]-$y
    Next

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

    $hGUI = GUICreate("Test", 400, 300)
    $hWnd = WinGetHandle("Test")
    GUISetState()
    _GDIPlus_Startup()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    $hPen = _GDIPlus_PenCreate()
    For $i=1 To $strg[0]-1 Step 2
    _GDIPlus_GraphicsDrawLine ($hGraphic, $strg[$i], $strg[$i+1],$strg[$i]+1, $strg[$i+1]+1, $hPen)
    Next
    GUISetState()

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

    While 1
    $msg=GUIGetMsg()
    If $msg=-3 Then Exit
    WEnd

    [/autoit]


    wie kann ich machen das die linien besser wieder gegeben werden
    pls help
    mfg Hans Wurst

    Einmal editiert, zuletzt von HansWurrst (7. Juni 2009 um 13:27)

  • bei mir gehts nicht... beim drücken von space öffnet sich dann n gui aber ohne linie ;)

  • bei mir gehts nicht... beim drücken von space öffnet sich dann n gui aber ohne linie ;)

    Wenn man es auf @Desktopwidth und @DesktopHeight macht geht es und man sieht auch was er meint.

    Spoiler anzeigen
    [autoit]

    #Include <Misc.au3>
    #include <Array.au3>
    #include <GuiConstantsEx.au3>
    #include <GDIPlus.au3>
    Opt("MouseCoordMode",2)

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

    While 1
    If _IsPressed(1) Then
    $pos=MouseGetPos()
    FileWrite("Test.txt",$pos[0]&" "&$pos[1]&" ")
    EndIf
    If _IsPressed(20) Then ExitLoop
    WEnd

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

    $fiel=FileRead("Test.txt")
    $strg=StringSplit($fiel," ")
    ;~ _ArrayDisplay($strg)
    FileDelete("Test.txt")

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

    $hGUI = GUICreate("Test", @DesktopWidth, @DesktopHeight)
    $hWnd = WinGetHandle("Test")
    GUISetState()
    _GDIPlus_Startup()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    $hPen = _GDIPlus_PenCreate()
    For $i=1 To $strg[0]-1 Step 2
    _GDIPlus_GraphicsDrawLine ($hGraphic, $strg[$i], $strg[$i+1],$strg[$i]+1, $strg[$i+1]+1, $hPen)
    Next
    GUISetState()

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

    While 1
    $msg=GUIGetMsg()
    If $msg=-3 Then Exit
    WEnd

    [/autoit]
  • hat den jetzt wer ne lösung ?
    und ich hab jetzt noch ne frage:
    wie kann ich machen das der das dann als bild speichert

  • Also zum Speichern kannst du folgendes machen: Ganz "billig" mit ScreenCapture-Funktionen oder schau dir doch diese hier an: _GDIPlus_ImageSaveToFile

  • gut danke das speichern geht
    aber wie bekomme ich das jetzt mit den strichen besser hin

  • weiß das den niemand

    Einmal editiert, zuletzt von HansWurrst (7. Juni 2009 um 20:14)