Webcam Screenshot ohne GUI

  • hallo habe schon ziemlich viele skripte gefunden das man das aktuelle Webcambild in einer GUI sieht....

    ich suche aber ein Script das im Hintergrund läuft und einen Screenshot alle 10 sekunden speichert...

    ich kenne zwar viele Programme die das können, aber ich brauche es unbedingt als Autoit Script

    wäre schön wenn ihr mir helfen könnt....

  • Hallo Reaker,

    da du den Ausdruck ScreenShot benutzt gehe ich davon aus, dass dieses Bild auf dem Screen dargestellt wird. Wenn dies so ist schau dir doch in der Hilfe die Funktion _ScreenCapture_Capture an. Must nur noch eine Schleife um das Beispiel bauen und den Schleifenzähler und/oder mit Datum und Uhrzeit in den Dateinamen aufnehmen.

    mfg (Auto)bert

  • ich glaube ich habe mich falsch ausgedrückt...

    ich meine das er einen snapshot von der webcam macht, jedoch im hintergrund, d.h. ohne Fenster

  • Hallo,
    in Google nach der Eingabe von "webcam snapshot autoit" gefunden:
    http://www.autoitscript.com/forum/index.php?showtopic=27925&hl=webcam
    ciao
    Andy

  • des skript habe ich auch schon, aber ich habe geschrieben OHNE Fenster, und was müsste ich da weglöschen, dass des fenster nicht erstellt wird?

  • Du kannst doch einfach das
    GuiSetState() - oder so
    weglassen --> das Fenster existiert, ist aber nicht sichtbar.

    There are only 10 types of people in the world:
    Those who understand binary - and those who don't.

  • cool...so funktioniert es schon ganz gut

    ich habe das jetz noch so gemacht das er alle 10 sekunden nen snapshot macht, aber der soll immer als anderer name gespeichert werden..

    wo ist mein Fehler?

    [autoit]


    $count = 0
    $snapfile = "C:\snap" & $count & ".bmp"

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

    Do
    Sleep(10000)

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

    SnapShot() ; enables/disables secure socket layer sending - put to 1 if using httpS
    $count = $count +1

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

    Until $count = 5

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

    also in dem fall sind es jetz 5 snapshots

  • Müsste so gehen

    [autoit]


    Func ShotTheSnap($savedir = @DesktopDir, $delay = 10000, $rpt = 5)
    Local $ctn = 0
    While $ctn <> $rpt
    SnapShot($savedir & "/Snapshot" & $ctn & ".bmp")
    Sleep($delay)
    $ctn =+1
    WEnd
    EndFunc ;==>ShotTheSnap

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

    Func SnapShot($path)
    DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_GRAB_FRAME_NOSTOP, "int", 0, "int", 0)
    DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_FILE_SAVEDIBA, "int", 0, "str", $path)
    EndFunc ;==>SnapShot

    [/autoit]

    Ist aber ungetestet.

  • um nochmal auf den fehler einzugehen:

    [autoit]


    $count = 0
    $snapfile = "C:\snap" & $count & ".bmp"
    ;hier wird der Variable $snapfile der string "C:\snap0.bmp" zugeordnet...
    ;da sich der Wert jedoch pro Durchlauf ändern soll, musst du den "richtigen" Wert in JEDEM Durchlauf neu zuweisen :

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

    Do
    Sleep(10000)
    $snapfile = "C:\snap" & $count & ".bmp"
    SnapShot() ; enables/disables secure socket layer sending - put to 1 if using httpS
    $count = $count +1

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

    Until $count = 5

    [/autoit]


    so sollte es klappen :D

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!