2010-11-18 142 views
4

我将我的桌面应用程序分布在闪存驱动器上,供数以千计的Windows,Mac和Linux用户使用。我有一个HTML起始页面,其中包含文档链接,安装指南,发行说明等等,这些都在闪存驱动器上。我希望用户直接从浏览器进行安装,但这正是防病毒程序试图阻止的(正确的)。无需启动安装程序,只需找到安装程序并让用户自行完成最后一步即可。从网络浏览器打开文件系统文件夹/目录

是否有可能导致主机上的文件系统管理器(资源管理器,Finder等)打开包含该文件的文件夹并将其突出显示?我认为这需要使用JavaScript,对于Windows,Mac和Linux,它可能会有所不同。另外,在大多数浏览器(IE,FF,Chrome,Safari,Opera)中都可以工作。

这是否与解决费马大定理相似的难度等级?

谢谢

回答

2

只要该页面是从本地文件系统加载的,此JS代码应该适用于Windows上的IE和Firefox。你需要在Linux/OSX上进行测试。我不知道你将如何接近铬/狩猎/歌剧。

function execute(command, commandParam) 
{ 

    if (isIE()) { 
    try { 
     activexShell = new ActiveXObject("Shell.Application"); 
     activexShell.ShellExecute(command, commandParam, "", "open", "1"); 
     exit(); 
    } catch (e) { 
     alert("exception " + e.name + ': ' + e.message); 
    } 
    } 
    else { 
    try { 
     netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); 
     var FileFactory = new Components.Constructor("@mozilla.org/file/local;1","nsILocalFile","initWithPath");  
     var program = new FileFactory(command); 
     var process = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces. nsIProcess);   
     process.init(program); 
     process.run(false, commandArray, commandParam.split(" ").length - 1, {}); 
     exit(); 
    } catch (e) { 
     alert("exception " + e.name + ': ' + e.message); 
    } 
    } 
} 

当然,您可能需要签署.js文件才能使其正常工作。欲了解更多信息,请看这里:http://www.mozilla.org/projects/security/components/signed-scripts.html

1

没有。浏览器(或大多数*)阻止这种行为。他们在您的实际文件系统和Web为您提供的内容之间存在隔离墙。只有HTML输入控件可以打破这一点,而且它们也有相当多的保护措施。

* - 您可以使用IE ActiveX控件,但这是仅限IE浏览器。