本人写了一个客户端程序,通过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>
------解决方案--------------------------------------------------------