Ne ho imparata un altra
Grazie
Molto utile per prelevare immagini webcam in giro per il web con un semplice script
Ora Volendo lo farei con un *.cmd ma per semplificare tutto nel vbs come si fa ?
Se volessi fare un archivio giornaliero creando una cartella con nome giorno mese e anno
D:\Documenti\webcam\16_03_2015\
e dare all'immagine
es: webcam_1_16_03_2015.jpg dentro la cartella webcam_1_16_03_2015.jpg
Grazie
Il modo più semplice usare le pianificate di win
Ho notato che da un errore se trova già l'immagine
Se invece la cancello , cioè non trova l'immagine, funziona
error.jpg
Empiricamente al momento risolto così
Tutto nella stessa cartella esempio D:\Documenti\Download\Prova\
Con le pianificate di win faccio eseguire "salva_immagine.vbs"
Secondo file "archivio_cam.cmd"Codice:ImageFile = "webcam.jpg" DestFolder = "D:\Documenti\Download\Prova\" URL = "http://sacilemeteo.altervista.org/_altervista_ht/webcam.jpg" Set xml = CreateObject("Microsoft.XMLHTTP") xml.Open "GET", URL, False xml.Send set oStream = createobject("Adodb.Stream") Const adTypeBinary = 1 Const adSaveCreateOverWrite = 2 Const adSaveCreateNotExist = 1 oStream.type = adTypeBinary oStream.open oStream.write xml.responseBody oStream.savetofile DestFolder & ImageFile, adSaveCreateNotExist oStream.savetofile DestFolder & ImageFile, adSaveCreateOverWrite oStream.close set oStream = nothing Set xml = Nothing set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "archivio_cam.cmd"
Ho una immagine webcam_1.jpgCodice:setlocal set anno=%date:~-4% set mese_anno=%date:~-7,2%_%date:~-4% set giorno=%date:~-10,2% md %anno%\%mese_anno%\%giorno%\ set ora=%TIME:~0,2%.%TIME:~3,2% set ora=%ora: =0% set ore="Foto_ore_%ora%" copy webcam.jpg %anno%\%mese_anno%\%giorno%\%ore%.jpg rename webcam.jpg webcam_1.jpg del webcam.jpg exit
e archivio nella cartella per anno poi mese poi giorno
Personalmente mi trovo piu' a mio agio con PHP che con VBS , ma cmq la logica di programmazione rimane la stessa.
1) Cartella_radice contiene la cartella sotto la quale ci sono le cartelle giornaliere in cui salvo le immagini
2) ricavo la data corrente e la assegno a Cartella_corrente
3) ricavo l'ora corrente (ora+minuti) e la assegno a Nome_img
4) controllo se esiste la cartella in data odierna, se non esiste la creo
5) scarico dal web l' immagine dell webcam e la salvo.
6) fine.....
I nomi sia delle cartelle che delle immagini cosi ,come li ho assegnati , si prestano ad essere ordinati in ordine alfabetico per eventuali slideswow o creazione di video time lapse.
Per cronjob in locale personalmente preferisco Download System Scheduler for Windows, iDailyDiary, Autorota, Launchkey, Clipboards, Daily Diarye' un programma che gira in background semplice da impostare e che non sbaglia un colpo.
lo uso per lanciare i miei script in PHP con timing anche di 1 minuto.
PS :Ho rivisto lo script anche per eliminare la svista del file che non si sovrascrive.
Codice:Set sc = CreateObject("Scripting.FileSystemObject") Cartella_radice = "C:\pippo\" URL = "http://46.19.232.75/record/current.jpg" anno=Year(Date) mese=right ( "00" & Month(Date),2) giorno=right ( "00" & Day(Date),2) ora= right ( "00" & Hour(Now) ,2) minuti= right ( "00" & Minute(Now) ,2) Nome_img = "cam_" & ora & "_" & minuti & ".jpg" cartella_odierna = Cartella_radice & anno &"-" & mese &"-" & giorno & "\" ' se non esiste cartella RADICE...la crea If Not sc.FolderExists(Cartella_radice) Then sc.CreateFolder Cartella_radice ' se non esiste cartella odierna...la crea If Not sc.FolderExists(cartella_odierna) Then sc.CreateFolder cartella_odierna Set xml = CreateObject("Microsoft.XMLHTTP") xml.Open "GET", URL, False xml.Send If xml.Status = 200 Then set oStream = createobject("Adodb.Stream") Const adTypeBinary = 1 oStream.type = adTypeBinary oStream.open oStream.write xml.responseBody oStream.savetofile cartella_odierna & Nome_img, 2 ' OverWrite oStream.close set oStream = nothing End if Set xml = Nothing Set sc = Nothing
Ultima modifica di mariuss; 17/03/2015 alle 10:10 Motivo: correzione path
grazie!f
w
ink già lo usavo con la cam usb, non sapevo che funzionasse anche con immagine presa da pc!
siamo a posto!
grazie a tutti!
Stazione Meteo di Villanova Canavese - Osservazioni in tempo reale
ora la oriento meglio e ci siamo.
Villar Perosa, B.ta Casavecchia (TO) 630 m
Villanova C.se (TO) 376 m slm
@roby4061
hai usato le librerie grafiche di PHP per sovraporre Data e Ora o qualcosa altro ?
Ha usato Fwink
si purtroppo VBS ha a che fare con IE , ma il problema e' facilmente risolvibile sostituendo
questa...
con queste...Codice:URL = "http://46.19.232.75/record/current.jpg"
cosi si aggira il problema della cacheCodice:rnd_num=Int((999 * Rnd) + 1) URL = "http://46.19.232.75/record/current.jpg?" & rnd_num
Segnalibri