当前位置: 代码迷 >> 跨浏览器开发 >> firefox 启动带参数程序解决方案
  详细解决方案

firefox 启动带参数程序解决方案

热度:8408   发布时间:2013-02-26 00:00:00.0
firefox 启动带参数程序
本人写了一个客户端程序,通过IE启动成功,
为了兼容firefox 也能启动该客户端程序
编写了如下js代码

 function OpenProg()

//可执行程序参数

netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); 
var process = Components.classes['@mozilla.org/process/util;1'].getService(Components.interfaces.nsIProcess); 
var targetFile = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile); 

  var oURL ="123e735e-7cd5-4d72-8a97-9d9900b00163|";
   
  targetFile.initWithPath("xx.exe"); 
  process.init(targetFile); 
  var arguments = [oURL]; //arguments参数必须是数组,否则下面语句不执行 
 process.run(false, arguments, arguments.length);  

}

第一次OpenProg()可以打开程序成功,第二次执行OpenProg()该打开时,提示一下错误。
需要重新启动forefox 才能再次启动程序

错误提示
[Exception... "Component returned failure code: 0xc1f30002 (NS_ERROR_ALREADY_INITIALIZED) [nsIProcess.init]" nsresult: "0xc1f30002 (NS_ERROR_ALREADY_INITIALIZED)" location: "JS frame :: file:///C:/Program%20Files/firefoxTest :: helloOpen :: line 58" data: no]

问:
  是不是程序已经加载如进程,所以不能再加载第二次加载,要不会出错?需要消耗该进程实例对吗
  请高手指点,散分
   


------解决方案--------------------------------------------------------
还是没人回答啊,我帮顶了!
------解决方案--------------------------------------------------------
没做过,帮你顶一下
------解决方案--------------------------------------------------------
把客户端程序做成ACTIVEX插件.在网页里
<object classid="xxxxxxxxxx">
<设置你的参数和值>
</object>
------解决方案--------------------------------------------------------
  相关解决方案