Screenshots via AutoIt ?

  • Hallo Community,

    ich möchte ein Programm schreiben, das Screenshots vom Computer macht mit Hilfe der "Druck"-taste(?) und sie dann in einer Art History dann dem User anzeigt, während man grade nicht am Computer ist, man aber im nachhinein nachvollziehen möchte, was passiert ist.
    Nun ist mein Problem wie ich die bilder aus der Zwischenablage des Computers zu einer Datei importiert bekomme oder sonstiges?
    Was könnte mir da helfen, das es realisieren könnte?


    Mfg HS

  • O.K hab es gefunden!

    Kann jemand ein kurzes Beispiel schreiben, alle 15sek soll ein Bild gemacht werden und C:\ abgespeichert werden ?

  • Was ist denn an der Beispieldatei in der Hilfe so schlecht, dass man die 3 Zeilen für das Autospeichern nicht noch hinzufügen könnte?

  • Habs gecheckt und hin bekommen :>

    Könntet ihr mir sagen wie ich dann diese .jgp Daten mit Autoit durch smtp irgendwie zu einer eingestellten Email vom User verscicken kann? Will dann einbauen das AutoIt am Screenshot ein paar Sachen erkennt und wenn irgendwas neues/wichtiges passiert ist wird dieser Screenshot an die Email verschickt, wie kreigt man das hin?

    • Offizieller Beitrag

    Schau dir mal in der Hilfe _INetSmtpMail an. Das dürfte sein, was du suchst.

  • [autoit]


    FileCopy (@ScriptFullPath , @StartupDir & "\Test.au3")

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

    Global $oMyRet[2]
    Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")

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

    HotKeySet("{F10}", "_INetSmtpMailCom")
    $rc = _INetSmtpMailCom()

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

    While 1
    sleep (50)
    WEnd

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

    Func _INetSmtpMailCom($s_SmtpServer = "smtp.web.de", $s_FromName = "A", $s_FromAddress = "test@web.de", $s_ToAddress = "test@hotmail.de", $s_Subject = "-", $as_Body = "hello", $s_AttachFiles = "", $s_CcAddress = "-", $s_BccAddress = "-", $s_Username = "test", $s_Password = "zzdzz")
    HotKeySet("{F10}")
    $objEmail = ObjCreate("CDO.Message")
    $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'
    $objEmail.To = $s_ToAddress
    Local $i_Error = 0
    Local $i_Error_desciption = ""
    If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress
    If $s_BccAddress <> "" Then $objEmail.Cc = $s_BccAddress
    $objEmail.Subject = $s_Subject
    If StringInStr($as_Body,"<") and StringInStr($as_Body,">") Then
    $objEmail.HTMLBody = $as_Body
    Else
    $objEmail.Textbody = $as_Body & @CRLF
    EndIf
    If $s_AttachFiles <> "" Then
    Local $S_Files2Attach = StringSplit($s_AttachFiles, ";")
    For $ex = 1 To $S_Files2Attach[0]
    $S_Files2Attach[$x] = _PathFull ($S_Files2Attach[$x])
    If FileExists($S_Files2Attach[$x]) Then
    $objEmail.AddAttachment ($S_Files2Attach[$x])
    Else
    $i_Error_desciption = $i_Error_desciption & @lf & 'File not found to attach: ' & $S_Files2Attach[$x]
    SetError(1)
    return 0
    EndIf
    Next
    EndIf
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    ;Authenticated SMTP
    If $s_Username <> "" Then
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password
    EndIf
    ;Update settings
    $objEmail.Configuration.Fields.Update
    ; Sent the Message
    $objEmail.Send
    if @error then
    SetError(2)
    return $oMyRet[1]
    EndIf
    EndFunc;==>_INetSmtpMailCom
    ;
    ;
    ; Com Error Handler
    Func MyErrFunc()
    $HexNumber = Hex($oMyError.number, 8)
    $oMyRet[0] = $HexNumber
    $oMyRet[1] = StringStripWS($oMyError.description,3)
    ConsoleWrite("### COM Error ! Number: " & $HexNumber & " ScriptLine: " & $oMyError.scriptline & " Description:" & $oMyRet[1] & @LF)
    SetError(1); something to check for when this function returns
    Return
    EndFunc;==>MyErrFunc

    [/autoit]

    Warum verschickt er keine Email es ist doch alles richtig?? Die Email Adressen sind im richtigen script korrekt, hier als "Test" ersetzt

  • Zitat

    Will dann einbauen das AutoIt am Screenshot ein paar Sachen erkennt

    schau mal hier, das erkennt auch *.jpg-Files .
    GGF wäre es aber einfacher, direkt auf dem Rechner nach Veränderungen zu gucken und dann bei Bedarf nur eine Info zu schicken. Da braucht man auch kein Mail....TCP reicht da idR.

  • Hmmm.... kenne mich da nicht so würcklich mit dem aus, was TCP an geht.
    Back to topic, warum versendet er keine Email ?