Всем доброго времени суток!

Перерыл форум, только похожая тема http://forum.mozilla-russia.org/viewtopic.php?id=17663

Может быть кто-то сталкивался с такой проблемой.
Нужно запустить приложение Win32 из каталога chrome://content/

Как то видимо путь нужно преобразовать...

Выделить код

Код:

showOptionWindow: function()
	{
		try
		{
			var file = Components.classes["@mozilla.org/file/local;1"]
	                     .createInstance(Components.interfaces.nsILocalFile);

			var file = Components.classes['@mozilla.org/file/local;1']
        .createInstance(Components.interfaces.nsILocalFile);
		
		var process = Components.classes['@mozilla.org/process/util;1']
        .getService(Components.interfaces.nsIProcess);
		
		file.initWithPath('chrome://smileystbar/content/app/notepad.exe'); //РУГАЕТСЯ НА ЭТОТ ПУТЬ

        	//file.initWithPath("C:\\WINDOWS\\system32\\winver.exe"); //ТАК ЕСТЕСТВЕННО ЗАПУСКАЕТСЯ.
        
...
		}
		catch(sss){SmileysTBar_Log('SmileysToolBar.Core.showOptionWindow: \n'+sss);}
	},

Ошибка собственно, такая.

SmileysToolBar.Core.showOptionWindow:
[Exception... "Component returned failure code: 0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH) [nsILocalFile.initWithPath]"  nsresult: "0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH)"  location: "JS frame :: chrome://smileystbar/content/smileystbar.js :: anonymous :: line 109"  data: no]

а что мешает не вкладывать файл в jar-архив (если он вообще имеется) и запускать его по прямому системному пути?

Диня

Выделить код

Код:

file.initWithPath('chrome://smileystbar/content/app/notepad.exe'); //РУГАЕТСЯ НА ЭТОТ ПУТЬ

Так он не умеет.
Надо либо строить полный путь, либо использовать класс, который позволяет получать пути к системным папкам.

Перерыл форум, только похожая тема http://forum.mozilla-russia.org/viewtopic.php?id=17663

Так собственно тут проблема решена полностью.
Что ещё надо?

Спасибо всем ответившим!

Дело в том, что этот exe будет идти вместе с плагином... Прилада к FF корни которой уходят в ИЕ...

Просто хотелось запускать именно из JAR архива... т.е. по chrome директории.

Еще момент, попробовал проследить по полученному Chrome пути наличие моего EXEшника 

Выделить код

Код:

chromeDir = service.get("UChrm", Components.interfaces.nsIFile).path;

Не обнаружил там файлов, которые должны распаковаться из моего JAR'a. Необходимо как-то дополнительно указывать, что необходимо файлы распаковывать??

Диня

Не обнаружил там файлов, которые должны распаковаться из моего JAR'a. Необходимо как-то дополнительно указывать, что необходимо файлы распаковывать??

Проще всего файл в JAR и не упаковывать.
Он и так в xpi упаковывается.

Просто хотелось запускать именно из JAR архива... т.е. по chrome директории.

В принципе можно попробовать придумать путь, который позволил бы запускать из jar-а.
Опять же jar - это же зип, а та же ХР с зипом умеет работать как с папкой - так что вполне может понять такой путь.
В крайнем случае наверное можно написать батничек, который будет это всё запускать?..
Опять же можно распаковывать ехе перед запуском, а потом удалять.