Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание файла в скрипте для Mozilla Firefox, Как работать с файлами в Firefox 
:(
    Опции темы
Чучмек
Дата 31.3.2010, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: нет
Всего: 41



Здравствуйте. 
Подскажите пожалуйста, как (нужно только для  Windows )в скрипте для Mozilla Firefox сохранить строку в текстовый файл и запустиь на выполнение exe?
Я переделываю плагин IE под Firefox.
В IE скрипт у меня выглядит как:
Код

<script language="JavaScript" type="text/javascript"> 
var str="Это надо сохранить в файл";
var filename="D:\\abc\\html.txt";
var exename="D:\\abc\\project1.exe";

var fso=new ActiveXObject("Scripting.FileSystemObject");
var myfile = fso.CreateTextFile(filename,true);
myfile.Write(str);
fso.close;

var Myshell = new ActiveXObject("WScript.Shell");
Myshell.Run(exename+" "+filename);
</script>

Подскажите пожалуйста как записать это дял мозиллы?
Спасибо.


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
EmilRegis
Дата 31.3.2010, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 306
Регистрация: 21.9.2007

Репутация: 1
Всего: 4



никак

Добавлено через 1 минуту и 3 секунды
В Firefox нет поддержки ActiveX
PM MAIL   Вверх
Чучмек
Дата 31.3.2010, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: нет
Всего: 41



А кто сказал что ActiveX?
Я ведь пишу плагин, а не скрипт для страницы. Можно использовать внутренний интерфейс платформы Mozilla.
Я даже нашел кое что:

Код

<script language="JavaScript" type="text/javascript"> 
var file;
var CcLF = Components.classes["@mozilla.org/local/file;1"];
var CiLF = Components.interfaces.nsILocalFile;
var file = CcLF.createInstance(CiLF);

file.initWithPath("C:\\WINDOWS\NOTEPAD.EXE");


var Cc = Components.classes;
var Ci = Components.interfaces;
var mode_bits = 0x01; // from nsIFileChannel
var perm_bits = 0; // from Unix/Posix open(2)
var file_bits = 0; // from nsIFileInputStream

var stream;


// [1] Непосредственное создание
stream = Cc["@mozilla.org/network/file-input-stream;1"];
stream = stream.createInstance(Ci.nsIFileInputStream);
stream.init(file, mode_bits, perm_bits, file_bits);

// [2] Создание на основе транспорта
var trans = Cc["@mozilla.org/network/stream-transport-service;1"];
trans = trans.getService(Ci.nsIStreamTransportService);
trans = trans.createInputTransport(stream,0,-1,true);
var stream2 = trans.openInputStream(0,-1,0);

// [3] Создание на основе канала
var channel = Cc["@mozilla.org/network/local-file-channel;1"]
channel = channel.createInstance(Ci.nsIFileChannel);
channel.init(file, mode_bits, perm_bits);
stream = channel.open();

// В любом случае, работа с потоком средствами JavaScript

var s2 = Cc["@mozilla.org/scriptableinputstream;1"];
s2 = s2.createInstance(Ci.nsIScriptableInputStream);
s2.init(stream);

var bytes = 100;
var content = null;
content = s2.read(bytes);
</script>


но только не могу разобратся


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
Чучмек
Дата 31.3.2010, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: нет
Всего: 41



Записать в файл:
Код

function fromUnicode(charset, data){
var uniConv=Components.classes["@mozilla.org/intl/scriptableunicodeconverter"];
uniConv=uniConv.createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
uniConv.charset = charset;
data = uniConv.ConvertFromUnicode(data);
return data;
};



var newFile = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
newFile.initWithPath("D:\\");
newFile.appendRelativePath('file.txt');
if(!newFile.exists()){
    alert('Файл еще не существует, но будет создан '); 
    newFile.create(0x00, 0666);
    }else{alert('Файл уже существует и будет перезаписан');}

var stream;

stream = Components.classes['@mozilla.org/network/file-output-stream;1'];
stream = stream.createInstance(Components.interfaces.nsIFileOutputStream);
stream.init(newFile,2,0,0);
var str='Это надо сохранить';

str=fromUnicode("windows-1251",str);
stream.write(str, str.length);

stream.close();
alert('+');

Прочитать из файла:
Код

function toUnicode(charset, data){
var uniConv = Components.classes['@mozilla.org/intl/scriptableunicodeconverter'];
uniConv = uniConv.createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
uniConv.charset = charset;
data = uniConv.ConvertToUnicode(data);
return data;
 };



var conv = Components.classes["@mozilla.org/network/protocol;1?name=file"];
conv = conv.createInstance(Components.interfaces.nsIFileProtocolHandler);
var url ="file:\\\D:\\file.txt";
var file = conv.getFileFromURLSpec(url);

var file_size=file.fileSize; 

var stream;
stream = Components.classes["@mozilla.org/network/file-input-stream;1"];
stream = stream.createInstance(Components.interfaces.nsIFileInputStream);
stream.init(file, 1, 0,0);


var s2 = Components.classes["@mozilla.org/scriptableinputstream;1"];
s2 = s2.createInstance(Components.interfaces.nsIScriptableInputStream);
s2.init(stream);


var content = null;
content = s2.read(file_size);
stream.close();

str=toUnicode("windows-1251",content.toString());

alert(str);


Осталось только найти как запускать exe на выполнение.


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
mxt
Дата 1.4.2010, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 6.9.2007

Репутация: нет
Всего: 1



Running applications

а для работы с файлами можно использовать io.js:
http://kb.mozillazine.org/Io.js


и еще почитай о:
https://developer.mozilla.org/en/FileGuide/IO

так на будущее)
--------------------
PM MAIL   Вверх
Чучмек
Дата 3.4.2010, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: нет
Всего: 41



Цитата(mxt @ 1.4.2010,  21:50)
Running applications


 smile 
mxt большое спасибо.



--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
Чучмек
Дата 4.4.2010, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: нет
Всего: 41



А возможно повторить это для оперы?


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
mxt
Дата 4.4.2010, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 6.9.2007

Репутация: нет
Всего: 1



хз,  у оперы туго с разширениями,  аналог виджеты не подходят (нету такого низкоуровнего доступа)
--------------------
PM MAIL   Вверх
Чучмек
Дата 4.4.2010, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: нет
Всего: 41



А есть хоть какой-нибудь способ запустить exe?


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
mxt
Дата 4.4.2010, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 6.9.2007

Репутация: нет
Всего: 1



не знаю такого.   а зачем в общем запускать exe ?
--------------------
PM MAIL   Вверх
Чучмек
Дата 5.4.2010, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: нет
Всего: 41



Цитата(mxt @  4.4.2010,  23:13 Найти цитируемый пост)
а зачем в общем запускать exe 

Надо сделать кнопку на панели браузера, при нажатии на которую запускалсяб exe и обрабатывал фрагмент html кода. Самое простое - сохранить  фрагмент в файл, и передать имя файла запускаемой программе, как параметр командной строки.
Писать полноценный прагин, подключаемый к браузеру в виде dll, в данном случае, неохота (нет времени разбиратся, хотя в будщем собираюсь).
Для оперы, кстати, кнопка с запуском exe создается в виде записи типа
Код

Button№, "name"="Execute program,"C:\windows\notepad.exe","D:\f.txt", , ,"
 
в файле standard_toolbar.ini
А html код можно попробовать сохранить скриптом в cookie, а потом найти его exeшником в файле cookies.dat (или где там у оперы cookieсы?).


Это сообщение отредактировал(а) Чучмек - 5.4.2010, 12:49


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1040 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.