Einen mit Screen_Capture gemachten Screenshot über den Bildschirm legen

  • Folgende Frage: Wie kann ich ein mit Screen_Capture gemachtes Bild über den gesamten Bildschirn legen. Ein Freund meinte, das wäre möglich und man könne mit Autoit sogar auf dem Bild schreiben, aber ich habe keine Funktion dazu gefunden.

    Wenn das Bild über den Schirm gelegt ist, müsste man eigentlich nichts mehr machen können, man klickt dann ja nicht mehr auf ein Icon, sondern nur auf ein Bild.

    Es ist mir wichtig, dass amn das Bild nicht in einem Programm wie der Windows Fotoanzeige öffnet, oder so ähnlich, sondern dass es wirklich randlos über den Bildschirm gelegt ist.

    Falls jemand weiß, wie man dann noch auf dem Bild etwas schreiben kann, wär es nett, das auch noch zu posten.

    Einmal editiert, zuletzt von kofy (16. Dezember 2010 um 21:01)

  • Erstell eine Gui mit dem Style $WS_POPUP und leg ihn über das ganze Bild. Du kannst das Bild dann mit

    [autoit]

    GuiCtrlCreatePic()

    [/autoit]

    auf die Gui malen.

  • ok danke,

    da gibts bei mir nur noch ein kleines Problem. Ich bin ein wenig faul die ganzen Pixel-Werte auszurechnen und hab mit Koda Gui besorgt. Das läuft auch ganz gut, nur dass ich den Code nicht in Scite einfügen kann. Das is auch weiter nicht schlimm, gehr ja mit Strg C + V, aber die Gui-Stile fnktionnieren nicht. Koda macht das Ganze mit BitOr, aber dann beschwert sich Scite beim ausführen, dass die Variable nicht deklariert sei (weil die Gui-Stile miit einem $-Zeichen davor dargestelt werden).

    Wenn ich das BitOr wegnehme und die Stile mit Komma hintereinander schreibe Klappts auch nicht, genauso wenig wie mit einem Plus-Zeichen.

  • Ich denke du hast die #includes vergessen. Setz

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    [/autoit]


    Mal an den Anfang.

    /EDIT: Wieder zu langsam...

  • Hallo kofy,

    herzlich willkommen im Forum und viel Spass mit AutoIt.

    Hier kannst du dir die Hilfe herunterladen.
    Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebee

    und jetzt zu :

    man könne mit Autoit sogar auf dem Bild schreiben, aber ich habe keine Funktion dazu gefunden.


    Das kannst du mit GDIPlus-Gunktionen lösen, in meinem Snapshot-Tool )Link siehe Signatur)lege ich auf die Bilder damit Text,

    mfg atoBert

  • Also das mit den Includes ändert leider nichts, da kommt genau die gleiche Fehlermeldung.

    Ok, das GDI+ Script schau ich mir mal an, aber das könnte eine Weile dauern, ich hab mich noch nie an GDI+ rangewagt.... aber Hilfe und Tutorial hab ich schon durchgearbeitet, das hat leider nicht geholfen....

    Ich versuch mal den neuesten Scite runterzuladen. Vielleicht passt der mit Koda zusammen.

  • Sollte funktionieren :

    [autoit]

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

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

    _ScreenCapture_Capture(@DesktopDir & "\desk_screen.jpg")
    GUICreate("POPUP GUI", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP)
    GUICtrlCreatePic(@DesktopDir & "\desk_screen.jpg", 0, 0, @DesktopWidth, @DesktopHeight)
    GUISetState()
    While 1
    WEnd

    [/autoit]
  • Hier eine Variante ohne das Bild zwischenzuspeichern

    Spoiler anzeigen
    [autoit]

    #include <ScreenCapture.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #include <WinAPI.au3>

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

    _GDIPlus_Startup()
    $HBITMAP = _ScreenCapture_Capture()
    $hBitmapObj = _GDIPlus_BitmapCreateFromHBITMAP($HBITMAP)

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

    $hGUI = GUICreate("POPUP GUI", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP)
    GUISetState(@SW_SHOW)
    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)

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

    While GUIGetMsg() <> -3
    _GDIPlus_GraphicsDrawImage($hGraphics, $hBitmapObj, 0, 0)
    WEnd

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

    _WinAPI_DeleteObject($HBITMAP)
    _WinAPI_DeleteObject($hBitmapObj)
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_Shutdown()

    [/autoit]
  • Okay, danke für die Antworten. Die Skripts funktionieren alle. An dem Koda-Problem grübel ich noch ein wenig, aber der Grund für diesen Thread ist gelöst.

  • Ich weiß nicht, wo ich den Scite herhab. Der war bei der Autoit-Installation dabei. Für den Installer hab ich einfach Autoit gegooglet. Aber ich kanns mal mit diesem Scite versuchen.

  • Ich hab jetzt den Scite von dieser Seite runtergeladen und der funktioniert zusammen mit dem Koda Form Designer. Der hat auch viel mehr Tools :D

  • Das stimmt, aber da kannt ich diese Seite noch nicht. Ich hab nur von einem Freund von Autoit erfahren und der meinte ich soll autoit googlen um da ran zu kommen. Die ersten paar Funktionen hat er mir dann gezeigt und den Rest hab ich von hier und daus der Hilfe...