AutoIt Windows Screenshooter v1.84 Build 2019-08-18

  • AutoIt Windows Screenshooter Feature List:

    Erstellt ein Screenshot von

    • jedem sichtbaren Fenster auch als AVI Film (ohne Audio)
    • einer Region auf dem Desktop inkl. Freihand Selektierung
    • von GUI Controls und GUI Menüs
    • von Web Seiten (läuft nur, wenn Aero aktiviert ist!)
    • etc.


    Zusätzliche Features:

    • Vorschau des Bildes inkl. Zoom Optionen
    • kopiert das Bild in den Zwischenspeicher
    • speichert in verschieden Formaten inkl. PDF!
    • Aufnahme eines Bereiches alle x Sekunden über eine Zeit von y Sekunden
    • Erstellen einer GIF Animation von den gespeicherten Bildern (verfügbar nur für Vista oder höhere Betriebssysteme)
    • fügt ein Zeitstempel in das gespeicherte Bild ein
    • simple Bildbearbeitung (Umwandlung in Graustufen, Schwarz/Weiß, Negativ, Rotation um 90°)
    • öffnet das Standard Mail Programm, damit das Bild dort eingefügt werden kann
    • Drucken des Bildes
    • Multimonitor fähig
    • Simples Lineal zum Messen eines Bereiches
    • Simples Bildbearbeitungsprogramm
    • Wasserzeichen hinzufügen
    • frei von zusätzlichen DLLs oder Exe Dateien (pur WinAPI)
    • keine Installation nötig
    • Mulit Sprachen Option (Eng, Deu, Tur, Fra, Rus)


    Einige Funktionen sind unter WinXP und Win Server 2003 nur eingeschränkt oder gar nicht verfügbar!


    Haupt GUI:

    About GUI:

    Screenshooter_About.jpg

    Image Editor:

    Screenshooter_ImageEditor.jpg

    Watermark:

    Watermark.jpg

    Watermark als separates Tools einfach hier klicken: Watermark Image


    Download Source Code: <klick mich an>

    7-Zip Archiv bitte mit neuster 7-Zip Version öffen, da Archiv mit LZMA2 Komprimierungsmethode komprimiert wurde!
    Ferner läuft der Code nur ab Version 3.3.12.0!


    Tastatur Befehle:

    Haupt Fenster:
    Numpad 8: Vorschaufenster nach oben verschieben
    Numpad 2: Vorschaufenster nach unten verschieben
    Numpad 4: Vorschaufenster nach links verschieben
    Numpad 6: Vorschaufenster nach rechts verschieben
    Numpad +: Vorschaufenster vergrößern (oder Mausrad zurück)
    Numpad -: Vorschaufenster verkleinern (oder Mausrad vor)

    F1: gleiche Region nochmals fotografieren
    F5: Windows Namenliste aktualisieren
    PRINTSCREEN: kompletten Desktop fotografieren
    ALT+PRINTSCR: aktives Fenster fotografieren
    F10: Bild Veränderung wieder zurücknehmen
    F11: kompletten Desktop fotografieren inkl. Mauszeiger
    F12: kompletten Desktop fotografieren
    Strg+Alt+F9 "Grab Screen" Modus starten
    Strg+Alt+F12: aktives Fenster mit alternativ Funktion fotografieren (beta)!
    Strg+r: Lineal aufrufen
    Strg+s: Bild speichern
    Strg+x: Programm beenden
    Strg+w: Aufruf des Web Grab Eingabefeldes
    Strg+i: Aufruf des Image Editors
    Strg+m: Aufruf des Watermark Editors
    Strg+z: Rückgängig machen der letzten Operation

    Bildbearbeitungsfenster:
    s: Speichern
    c: Kopieren
    n: Senden an Standard Email Programm
    h: Markierer
    p: Stift
    r: Rechteck
    e: Kreis
    a: Pfeil
    o: Farbe auswählen
    t: Texteingabe
    g: Text konfigurieren
    Strg+z : Rückgängig machen der letzten Operation


    Wasserzeichen Editor:
    Strg+z: Rückgängig machen der letzten Operation


    Oder alternativ zum Verschieben des Vorschaufensters die Maus benutzen. ;)
    Nur für Betriebssysteme mit eingeschaltetem Aero: Doppelklick mit der rechten Maustaste auf Listen Element für alternativ Screenshot (beta)!

    Wenn "Grab Screen" geklickt wurde, kann man in den Control Modus wechsel, in dem man die Strg Taste gedrückt hält. Controls unter der Maus werden mit einem roten Rahmen angezeigt. Strg+Shift nimmt den Screenshot vom Control. Ein Klick auf die rechte Maustaste simuliert den Klick auf die linke Maustaste, damit Menüs aufgerufen werden können. Oder nur die Shift Taste gedrückt halten und Freihand markieren. Wenn die Shift Taste losgelassen wird, dann wird nur der markierte Bereich fotografiert.

    Nur die kompilierte Exe herunterladen: MediaFire.com, 4shared.com oder Softpedia.com


    Kritik? Bugs? Kommentare?

    Gruß,
    UEZ

    You are not allowed to sell this code or just parts of it in a commercial project or modify it and distribute it with a different name!
    Distributing copies of the program in compiled format (exe) must be free of any fee!

    Historie: siehe hier

  • nabend,

    bisher weder kritik noch bug, dafür 1 lob und 2 fragen :)

    also das mit der 30*30 minigui damit der mauszeiger zum markieren nichts
    in aktiven fenstern anklicken kann find ich sehr gelungen, auch das sie bis zum markierungsklick "mitwandert". ich hatte das bisher so gelöst das ich eine riesengui über die kompletten bildschirme gelegt hab.

    das würd ich im eigenen script so übernehmen wenns genehm ist.

    zweite frage: hat deine "interne" bilderzeugung der "greifenden hand" vorteile gegenüber einem fileinclude? oder aus welchem grund diese methode?

  • nabend,

    bisher weder kritik noch bug,...


    Tja, das Leben ist manch mal hart zu einem. :D

    Zitat von andygo


    also das mit der 30*30 minigui damit der mauszeiger zum markieren nichts
    in aktiven fenstern anklicken kann find ich sehr gelungen, auch das sie bis zum markierungsklick "mitwandert". ich hatte das bisher so gelöst das ich eine riesengui über die kompletten bildschirme gelegt hab.

    das würd ich im eigenen script so übernehmen wenns genehm ist.

    Na klar, kannst aus dem Code alles benutzen, was du willst!

    Zitat von andygo

    zweite frage: hat deine "interne" bilderzeugung der "greifenden hand" vorteile gegenüber einem fileinclude? oder aus welchem grund diese methode?

    Bei Fileinstall werden temp. Dateien angelegt. So wird das Bild direkt vom Speicher ausgelesen ohne irgend welche Dateien auf der Platte zu erzeugen! Der Quellcode wird zwar größer, aber egal.


    Danke für dein Feedback! :thumbup:

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Läuft nicht sauber auf WinXP und Win Server 2003, auf Win2000 fast überhaupt nicht! Scheint ein Problem mit GUIRegisterMsg($WM_PAINT, "Redraw") bzw. GUIRegisterMsg($WM_NCPAINT, "Redraw") zu sein! Windows2000 schein zu alt für die GFX Funktionen zu sein!


    Die GdiPlus.dll gibt es erst seit WinXP, deshalb funktioniert es nicht unter Windows 2ooo.
    Sollte jemand noch mit diesem Uralt-System unterwegs sein, dann die GdiPlus.dll in den Ordner system32 kopieren. ;)

    Und die DwmAPI.dll gibt es erst seit Windows Vista, daher wohl die Probleme.

    Du könntest mit @OSVersion die jeweilige Windowsversion abfragen und dementsprechend Deine Funktionen anpassen ...


    Gruß
    Greenhorn


  • Habe das URL Grabben einbaut und jetzt fehlt noch das Zoom Feature für die Vorschau.

    Um das Problem mit OS kleiner Vista zu lösen, habe ich mich entschlossen, diese einfach wegzulassen, da auch der Screenshot
    für Webseiten auf WinXP nicht läuft.

    Ich finde, und das ist meine Meinung, dass WinXP mittlerweile ein obsoletes OS ist und man es langsam in Rente schicken sollte.

    Die nächste Version wird kein WinXP unterstützen!

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Naja, zumindest in Firmen wird XP noch sehr häufig verwendet. Gibt da einige Admins, die das (noch) nicht ändern möchten ;)

    Ich stelle mir die Frage, wie eigentlich der Windowseigene Screenshoter per Alt+Druck bzw. das Office-Programm OneNote die ganzen Probleme löst bzw. angeht, z.B. mit den Webseiten unter XP.
    Gibts da vielleicht die Möglichkeit, einfach vorhandene Strukturen, wie DLLs mitzubenutzen?

  • Naja, zumindest in Firmen wird XP noch sehr häufig verwendet. Gibt da einige Admins, die das (noch) nicht ändern möchten


    Wie lange noch? Viele planen die Umstellung auf Win7, da die Firmen, die noch XP fahren, mit Vista nicht zufrieden sind.

    Vielleicht machen ich einen Thread im Off-Topic auf, damit dieses Thema mal diskutiert werden kann.

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Joa, die Umstellung wird zumindest in den meisten Fällen schon vorbereitet, dauert zwar dann noch einige Jahre (Behörden meine ich besonders ;) ), aber du wirst schon recht haben. Das ist auch egal.

    Mir gings da auch mehr um den zweiten Teil meiner Frage oder soll ich dafür einen extra Thread aufmachen? Theoretisch müsste man zumindest den Windows-Screenshoter ja einfach irgendwo einbinden und weiterverwenden können. Das würde dann nämlich den Umfang extrem senken, wobei du dir ja sicherlich jetzt schon sehr viel Arbeit gemacht hast und das dann schade wäre :)

  • Das mit dem Screenshot für Web Seiten funzt eigentlich ganz gut. Wie das MS im Detail macht, weiß ich nicht. Eigentlicht will ich keine 3rd Party Tools bzw. DLLs benutzen und es soweit wie möglich mit AutoIt Boardmitteln probieren.

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

    Einmal editiert, zuletzt von UEZ (12. Januar 2011 um 22:16)

  • die preview ergibt hier leider nur das:

    [autoit]


    D:\=New=\Windows Screenshooter.au3(1189,37) : ERROR: FileOpen() [built-in] called with wrong number of args.
    Local $hGIFFile = FileOpen($vData)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    D:\=New=\Windows Screenshooter.au3(1232,36) : ERROR: FileOpen() [built-in] called with wrong number of args.
    Local $hGIFFile = FileOpen($vData)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    D:\=New=\Windows Screenshooter.au3 - 2 error(s), 0 warning(s)

    [/autoit]

    edit: ok nun läufts, haben ja nur 2 mal ', 0' gefehlt

    Einmal editiert, zuletzt von andygo (11. Januar 2011 um 23:14)

  • Hmm, das sollte eigentlich keinen Fehler verursachen!

    FileOpen ( "filename" [, mode ] )

    Mode ist optional und Standard ist 0.

    Außerdem wird nichts von der HD nachgeladen, sondern nur vom Speicher!

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • wenn es ok ist, würde ich gern folgenden für mich angepassten codeschnipsel in meinem script integrieren:

    Spoiler anzeigen
    [autoit]


    Func Web_Screenshot($wsurl)
    Local $wsoIE, $wsGUIActiveX, $wsoDocument, $wsoBody, $wsBodyWidth, $wsBodyHeight, $wsoHtml
    Local $wshGUI, $wshWin, $wsaWin
    $wsoIE = ObjCreate("Shell.Explorer.2")
    #region render web site to get height
    $wshGUI = GUICreate("", 1, 1, -1, -1, $WS_POPUP)
    $wsGUIActiveX = GUICtrlCreateObj($wsoIE, 0, 0, 1024, 256)
    With $wsoIE
    .TheaterMode = False
    .FullScreen = True
    .Resizable = False
    .Navigate($wsURL)
    While .ReadyState <> 4
    Sleep(50)
    if $datei4cnt = 0 then exitloop
    WEnd
    if $datei4cnt = 0 then .stop
    EndWith
    if $datei4cnt = 1 then
    $wsoDocument = $wsoIE.document
    $wsoBody = $wsoDocument.body
    $wsoBody.scroll = "no"
    $wsoBody.style.borderStyle = "none"
    $wsBodyWidth = $wsoBody.scrollWidth
    $wsBodyHeight = $wsoBody.scrollHeight
    endif
    GUIDelete($wshGUI)
    #endregion
    if $datei4cnt = 1 then
    $wshGUI = GUICreate("", $wsBodyWidth, $wsBodyHeight, -1, 0, BitOR($WS_CLIPCHILDREN, $WS_POPUP), Default, WinGetHandle(AutoItWinGetTitle()))
    $wsGUIActiveX = GUICtrlCreateObj ($wsoIE, 0, 0, $wsBodyWidth, $wsBodyHeight + 50)
    With $wsoIE
    .TheaterMode = False
    .FullScreen = True
    .Resizable = False
    .Navigate($wsURL)
    While .ReadyState <> 4
    Sleep(50)
    if $datei4cnt = 0 then ExitLoop
    WEnd
    if $datei4cnt = 0 then .stop
    EndWith
    if $datei4cnt = 1 then
    $wsoDocument = $wsoIE.document
    $wsoBody =$wsoDocument.body
    $wsoHtml = $wsoDocument.documentElement
    $wsoBody.scroll = "no"
    $wsoBody.style.borderStyle = "none"
    $wsoHtml.style.overflow = 'hidden'
    $wshWin = WinGetHandle("Program Manager")
    $wsaWin = WinGetPos($wshWin)
    WinMove($wshGUI, "", $wsaWin[0] - $wsBodyWidth + 1, $wsaWin[1] - $wsBodyHeight + 1) ;hide window
    GUISetState(@SW_SHOWNA) ;Show GUI
    Local $wshDC = _WinAPI_GetWindowDC($wshGUI)
    Local $wshDC_Dummy = _WinAPI_GetWindowDC(0)
    Local $wshMemDC = _WinAPI_CreateCompatibleDC($wshDC_Dummy)
    Local $wshBitmap = _WinAPI_CreateCompatibleBitmap($wshDC_Dummy, $wsBodyWidth, $wsBodyHeight)
    _WinAPI_SelectObject($wshMemDC, $wshBitmap)
    _WinAPI_BitBlt($wshMemDC, 0, 0, $wsBodyWidth, $wsBodyHeight, $wshDC, 0, 0, $SRCCOPY)
    _GDIPlus_Startup()
    $wshBmp = _GDIPlus_BitmapCreateFromHBITMAP($wshBitmap)
    _GDIPlus_ImageSaveToFile($wshBmp, $datei4)
    _GDIPlus_BitmapDispose($wshBmp)
    _GDIPlus_Shutdown()
    _WinAPI_DeleteDC($wshMemDC)
    _WinAPI_ReleaseDC($wshGUI, $wshDC)
    _WinAPI_ReleaseDC(0, $wshDC_Dummy)
    _WinAPI_ReleaseDC(0, $wshDC)
    endif
    GUIDelete($wshGUI)
    endif
    EndFunc

    [/autoit]

    kann nämlich ab und zu ganz brauchbar sein :)

  • Habe jetzt das Verschieben und Zoomen des Vorschaufensters hinzugefügt!

    Also wer Interesse hat, einfach im Post#1 downloaden.

    Falls jemand einen Bug findet, bitte Reporten!

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

    Einmal editiert, zuletzt von UEZ (18. Januar 2011 um 12:35)

  • Hi Leute,

    die Zoom Funktion über das Mausrad funktioniert leider nicht in AutoIt Windows Screenshooter v1.08 Build 2011-01-18 Final und ich kann den Fehler nicht sehen!

    Im Prinzip habe ich diese Funktion benutzt:

    Spoiler anzeigen
    [autoit]


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

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

    Opt("GUIOnEventMode", 1)
    Global $hGUI

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

    $hGUI = GUICreate("Test Wheel")

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

    GUISetState()
    GUIRegisterMsg($WM_MOUSEWHEEL, "WM_MOUSEWHEEL")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")

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

    While Sleep(10000)
    WEnd

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

    Func WM_MOUSEWHEEL($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $wParam, $lParam
    If _WinAPI_HiWord($wParam) > 0 Then
    ConsoleWrite("Scrolled up " & @LF)
    Else
    ConsoleWrite("Scrolled down " & @LF)
    EndIf
    Return "GUI_RUNDEFMSG"
    EndFunc ;==>WM_MOUSEWHEEL

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

    Func _Exit()
    GUIDelete($hGUI)
    Exit
    EndFunc

    [/autoit]

    Über das Touchpad gehts, aber nicht über das Mausrad! ?(

    Sieht jemand den Fehler?

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

    • Offizieller Beitrag

    Ich finde deinen Screenshooter absolut geil und habe es in meine Toolsammlung aufgenommen. :thumbup:
    Schade das fast keiner einen Kommentar zu deinem Script abgiebt. Damit muß man aber leider leben, habe auch teilweise über
    150 Downloads in meinen Threads und keiner gibt Feedback. Ist irgendwie frustrierend. :thumbdown:

  • Da kann ich mich nur anschließen, aber wie sagt der Franzose: "C'est la vie"! ;(

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯