Mit Grafiken auf dem Bildschirm 'rummalen'

  • Hallo,
    ist es möglich mit AutoIt freie Grafiken auf den Bildschirm zu malen?

    Konkret:
    screenshot.au3 würde ich gerne erweitern, dass man vor dem 'Abknipsen' noch etwas einkreisen, markieren evtl. auch mit dem Stift frei einzeichnen kann.

    Ein einfacher Kreis, denn man beliebig 'ziehen' kann, würde wohl auch schon reichen.

    Ich dachte ich habe so was ähnliches schon mal irgendwie/-wo gesehen, aber jetzt wo ich es brauche finde ich es leider nicht mehr.

    So weit bin ich schon mal gekommen:

    [autoit]

    #include <GUIConstants.au3>

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

    $AuswahlGUI = GUICreate("TEST", 80, 50, 10, 10, $WS_POPUP, BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW)); erstellen eines GUI-Fensters

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

    $test =GuiCtrlCreateGraphic(0, 0, 80,50)
    GUICtrlSetGraphic(-1,$GUI_GR_ELLIPSE, 0,0, 80,50)
    GUICtrlSetGraphic(-1,$GUI_GR_COLOR, 0xa03325,0xc0c0ff)

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

    GUISetCursor(3, 1, $AuswahlGUI); Mouse-Cursor umschalten, Kreuz
    GUISetState(); öffnen des GUI-Fensters
    WinSetTrans("TEST", "", 50)

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


    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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


    Frage 1:
    Wie bekomme ich den Hintergrund komplett transparent, aber den Vordergrund (das Control) NICHT transparent? (also ein richtig schöner Kreis auf dem Bildschirm). Gibt es evtl. eine andere Lösung?

    Frage 2:
    Gibt es eine Style-Option, welche die Standard-Verschiebe-Funktion verwendet? (wie: oberen Balken, Maustaste gedrückt halten + verschieben). Ansonsten muss ich es selbst programmieren die Grafik auf dem Bildschirm hin + her zu schieben.

    Vielen Dank
    viele Grüße
    Carsten

  • Danke für den Hinweis.

    Es ist aber nicht das was ich wollte.
    Ich brauche eine Grafik OHNE Gui dahinter - einfach nur einen Kreis (oder ein Rechteck) auf dem Bildschirm.

    Aber ich habe zufällig was entdeckt was manchmal auch sehr hilfreich sein kann:
    Mit diesem kleinen Tool kann man Bildschirmbereiche schützen, in dem einfach eine unsichtbare (fast unsichtbare) GUI darüber gelegt wird. Diese hier kann man zwar nicht verschieben, aber da man an allen Ecken vergrößern/verkleinern kann, lässt sie sich dennoch beliebig auf dem Bildschirm platzieren.

    Hiermit kann man z.B. die untere Win-Statusleiste komplett abdecken und diese ist damit mit der Maus nicht mehr zu erreichen. Ideal z.B. wenn Kinder oder Anfänger (unbeaufsichtigt) im Internet surfen *grins*


    [autoit]

    #include <GUIConstants.au3>

    $AuswahlGUI = GUICreate("TEST", 100, 100, 300, 300, $WS_SIZEBOX+$WS_POPUP , BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW)); erstellen eines GUI-Fensters ; $WS_POPUP
    GUISetBkColor (0x00ff00)
    ;GUISetCursor(3, 1, $AuswahlGUI); Mouse-Cursor umschalten, Kreuz - bei Bedarf
    GUISetState(); öffnen des GUI-Fensters
    WinSetTrans("TEST", "", 50)

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]

    Nachtrag: Die ESC-Beenden-Funktion muss natürlich noch raus .......

    Einmal editiert, zuletzt von Carsten (8. November 2007 um 10:00)