Претражи подршку

Избегните преваре подршке. Никада од вас нећемо тражити да зовете или шаљете поруке на број или да делите личне податке. Пријавите сумњиве радње преко „Пријавите злоупотребу” опције.

Сазнај више

Components.interfaces.nsIProcess 参数带空格会被截断,怎样才能用带空格的参数

  • 2 одговорa
  • 1 има овај проблем
  • 2 прегледа
  • Последњи одговор послао mponeto

more options

写火狐扩展时发现,用Components.interfaces.nsIProcess,调用run函数,可以传入参数数组,但是单个参数内,如果包含空格,会被截断,只留空格前的内容,加双引号也没用,如果我要传的参数是带空格的路径,该如何处理 function hello() {

 var oURL = "c:/a/a x";
 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);
 targetFile.initWithPath("D:/temp/a e/1.exe");
 process.init(targetFile);
 var arguments = [oURL];  
 process.run(false, arguments, arguments.length,{});

}

写火狐扩展时发现,用Components.interfaces.nsIProcess,调用run函数,可以传入参数数组,但是单个参数内,如果包含空格,会被截断,只留空格前的内容,加双引号也没用,如果我要传的参数是带空格的路径,该如何处理 function hello() { var oURL = "c:/a/a x"; 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); targetFile.initWithPath("D:/temp/a e/1.exe"); process.init(targetFile); var arguments = [oURL]; process.run(false, arguments, arguments.length,{}); }

Сви одговори (2)

more options

You can't use such code in current Firefox releases. Support for enablePrivilege stopped long ago, so this is not possible.

Only an extension would be able to run code that needs chrome privileges.

more options

我就是在写扩展的时候发现这个问题的,路径参数数组中,参数带空格会被截断