ich möchte mit VBA jede Sekunde ein Bild speichern. Bei einem bestimmten Ereignis möche ich die letzte Minute vor diesem Ereignis die gespeicherten Bilder archivieren.
Folgenden Code habe ich gefunden und etwas abgewandelt:
Option Explicit
Const IPCam = "http://192.168.08.15/snapshot.cgi?user=ich&pwd=123"
'im Explorer wird mir das Bild der Cam gezeigt.
Const Verzeichnis = "C:\ich\" 'Speicherort
Public Sub BildSpeichern()
Dim WinHttpReq As Object, oStream As Object, URL as String, Dateiname As String
Dim InsertFoto As Picture
Dateiname = Verzeichnis & Dateiname & Format(Now, "ss") & ".jpg"
'Dateiname ist die Sekunde
Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
WinHttpReq.Open "GET", IPCam, False
WinHttpReq.Send
URL = WinHttpReq.ResponseBody
If WinHttpReq.Status = 200 Then
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
oStream.Write WinHttpReq.ResponseBody 'Das habe ich im IN Gefunden
On Error Resume Next
oStream.SaveToFile Dateiname, 2 'speichern und evtl. ü _
berschreiben
oStream.Close
If ActiveSheet.Shapes.Count > 0 Then ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Delete _
'vorhandenes Picture löschen
Set InsertFoto = ActiveSheet.Pictures.Insert(Dateiname) 'neues Foto anzeigen
End If
End Sub
Nach jedem Aufruf der Sup erhalte ich eine Datei mit dem Bild und den Sekunden als Dateinamen.Leider sind alle Bilder identisch. Erst wenn ich Exel schließe und wieder öffne, bekomme ich ein neues Bild von der IPCAM. Danach sind alle wieder identisch.
Und jetzt die spannende Frage: Wo ist der Fehler?