Rechercher dans l’assistance

Évitez les escroqueries à l’assistance. Nous ne vous demanderons jamais d’appeler ou d’envoyer un SMS à un numéro de téléphone ou de partager des informations personnelles. Veuillez signaler toute activité suspecte en utilisant l’option « Signaler un abus ».

En savoir plus

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

  • 2 réponses
  • 1 a ce problème
  • 2 vues
  • Dernière réponse par 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,{}); }

Toutes les réponses (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

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