Non so bene in che sezione postare questa strana richiesta...
Ho un videorecorder di rete (web-DVR) che monta Linux, a cui accedo da Windows tramite Internet Explorer, che riceve dal DVR pagine ASP contenenti sorgenti Javascript che utilizzano un ActiveX...
Secondo voi in che seziona va?!?![]()
Comunque, il punto è questo: voglio provare ad utilizare le funzioni dell'activex, del quale pero' non ho nessuna documentazione, ma solo un po' di sorgenti javascript da esaminare.
L'activex è definito cosi':
Quindi nei sorgenti e' riferito come Xchn.codice:<object classid="clsid:5EDEA7DC-96C2-4F53-8810-31CF8A0946C2" name="Xchn" width="0" height="0" hspace="0" vspace="0" codebase="iFlyNPSX.CAB#version=0,1,1,0" > </object>
Nel sorgente ho questa funzione che verifica la validita di un path sul PC:
Credo verifichi se il percorso esiste, ma non capisco bene come funziona: cerca la cartella 请选择下载文件目录 (e' un DVR cinese...) e se non la trova...?codice:function testpath() { var down_path; var Shell = new ActiveXObject( "Shell.Application" ); var Folder =Shell.BrowseForFolder(0,'请选择下载文件目录',0); if(Folder != null) { Folder = Folder.items(); // 返回 FolderItems 对象 ; Folder = Folder.item(); // 返回 Folderitem 对象 ; down_path = Folder.Path; // 返回路径 ; document.form1.downpath.value = down_path; } }
Supponiamo pero' che la cartella sia ok: se premo il tasto DOWNLOAD allora parte questa funzione, che è quella che mi interessa:
Perche' se salvo il file ASP in locale (che risulta ovviamente essere un HTML) non funziona?!?codice:function StartDownload() { var ServerIp; var query = document.location.search; //query: id=123456&name=070326172555-070326172700_01.mjpg var ele = query.split("&"); var fileid, filename; var RtpPort = 64030; var status = 0; var filepath ; var zero = 0; alert("Query = '" + query + "'"); fileid = ele[0].substr(ele[0].search("=")+1); filename = ele[1].substr(ele[1].search("=")+1); filepath = form1.downpath.value; //in downloading?? status = form1.Xchn.GetFileDownloadStatus(0); if(status > 0) { return; } window.document.form1.down_progress.value =zero.toString()+"%" ; ServerIp = document.location.hostname; form1.Xchn.Display(1,0); form1.Xchn.SetRtpIp(0,ServerIp); form1.Xchn.SetChannelNum(0,0); form1.Xchn.SetRtpPort(0,RtpPort); form1.Xchn.SetFileDownloadSavePath(0, filepath); form1.Xchn.FileDownloadStart(0, fileid, filename); account = 0; doTimer(); }
O, in altre parole, cosa devo scrivere in un file HTML locale per poter accedere all'activex che Explorer scarica dal DVR, ammesso che sia possibile farlo?

Rispondi quotando