ScreenShot Taker ?

  • Hallo zusammen,
    ich bin neu auf dem gebiet und nach langem überlegen ist mir nun eine idee gekommen was ich mal basteln könnte.
    Ein Script das ScreenShots macht!
    Habe auch schon ein bissl mit gearbeitet mit <alt>+<druck> und Paint öfnen spreichen, nur is das prob das die jpg Qualitat bei Paint nicht meinen wünschen enspricht und ich ein Script schreiben möchte das nach möglich keit ein Bild im *.jpg format in einem Ordner speichert ohne das Paint geöfnet werden muss.
    Also ist das möglich?
    Wenn ja was brauch ich alles dafür ?

    Einmal editiert, zuletzt von Lankabel (5. August 2008 um 01:13)

  • Guck dir mal die Funktion _ScreenCapture_Capture() in der Hilfe an.
    Ich hab auch mal so ein Skript gemacht. Habs hier gepostet.
    Wenn de mal nich weiter weißt kannste mal in den code gucken, oder hier noch mal nachfragen.

  • So ich habe nun was gebastelt ^^

    Spoiler anzeigen
    [autoit]


    #include <ScreenCapture.au3>
    Dim $screen
    $screen = "\ScreenShot" & @HOUR & @MIN & @SEC & @MDAY & @MON &".jpg"
    HotKeySet("{printscreen}", "screen")
    HotKeySet("!{printscreen}", "screenwindow")

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

    While 1
    WEnd

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

    Func screen()
    _ScreenCapture_Capture(@MyDocumentsDir & $screen)
    MsgBox(64, "Info", "Screenshot wurde gespeichert in: " & @MyDocumentsDir)
    EndFunc

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

    Func screenwindow()
    $title = WinGetTitle("")
    $window = WinGetHandle($title)
    _ScreenCapture_CaptureWnd(@MyDocumentsDir & $screen, $window)
    MsgBox(64, "Info", "Screenshot wurde gespeichert in: " & @MyDocumentsDir)
    EndFunc

    [/autoit]

    Nun ist stell ich mir die nächste frage.
    Wie kann ich das machen dass, das der nich screen @HOUR @MIN @SEC @MDAY @MON heißt sondern z.B. Screen1 und der nächste screen dann screen 2....

    Mfg

    Lankabel

    • Offizieller Beitrag

    Hallo

    Meinst du so?

    Spoiler anzeigen
    [autoit]

    #include <ScreenCapture.au3>
    Dim $screen
    $screen = "\ScreenShot.jpg"
    HotKeySet("{printscreen}", "screen")
    HotKeySet("!{printscreen}", "screenwindow")

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

    While 1
    WEnd

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

    Func screen()
    _ScreenCapture_Capture(_FileName(@MyDocumentsDir & $screen))
    MsgBox(64, "Info", "Screenshot wurde gespeichert in: " & @MyDocumentsDir)
    EndFunc ;==>screen

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

    Func screenwindow()
    $window = WinGetHandle("")
    _ScreenCapture_CaptureWnd(_FileName(@MyDocumentsDir & $screen), $window)
    MsgBox(64, "Info", "Screenshot wurde gespeichert in: " & @MyDocumentsDir)
    EndFunc ;==>screenwindow

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

    Func _FileName($sFilePath)
    If Not FileExists($sFilePath) Then Return $sFilePath
    Local $sExt = StringTrimLeft($sFilePath, StringInStr($sFilePath, ".", -1, -1))
    Local $sFile = StringTrimRight($sFilePath, StringLen($sExt) + 1)
    Local $i = 0
    While 1
    $i += 1
    If Not FileExists($sFile & $i & "." & $sExt) Then Return $sFile & $i & "." & $sExt
    WEnd
    EndFunc ;==>_FileName

    [/autoit]

    Mfg Spider

  • Spoiler anzeigen
    [autoit]

    #include <ScreenCapture.au3>
    HotKeySet("{END}","_Exit")
    HotKeySet("{printscreen}", "screen")
    HotKeySet("!{printscreen}", "screenwindow")
    Global $nr = 1

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

    While 1
    WEnd

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

    Func _Exit()
    Exit
    EndFunc

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

    Func screen()
    _ScreenCapture_Capture(@MyDocumentsDir &"\screen"&$nr&".jpg")
    MsgBox(64, "Info", "Screenshot wurde gespeichert in: " & @MyDocumentsDir)
    $nr = $nr + 1
    EndFunc

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

    Func screenwindow()
    $title = WinGetTitle("")
    $window = WinGetHandle($title)
    _ScreenCapture_CaptureWnd(@MyDocumentsDir &"\screen"&$nr&".jpg", $window)
    MsgBox(64, "Info", "Screenshot wurde gespeichert in: " & @MyDocumentsDir)
    $nr = $nr + 1
    EndFunc

    [/autoit]

    So gehts wie du meinst. Allerdings schaut er nicht ob die Datei schon existiert und überschreibt ggf. die Screens, wenn du das Script nochmal neu startest.