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':
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>
Quindi nei sorgenti e' riferito come Xchn.
Nel sorgente ho questa funzione che verifica la validita di un path sul PC:
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;
}
}
Credo verifichi se il percorso esiste, ma non capisco bene come funziona: cerca la cartella 请选择下载文件目录 (e' un DVR cinese...) e se non la trova...?
Supponiamo pero' che la cartella sia ok: se premo il tasto DOWNLOAD allora parte questa funzione, che è quella che mi interessa:
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();
}
Perche' se salvo il file ASP in locale (che risulta ovviamente essere un HTML) non funziona?!?
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?