открытие ссылок в TotalCmd из IE, Opera и FireFox
REGEDIT4ничего не получалось
(По левому клику, а не по пункту в меню)
скорее нет, чем да
если делать свой протокол, например, TC:// - то там можно его заменить, а стандартный вроде нет.
А можно сделать так, чтобы в TC 6.51+ открывалось в отдельной вкладке?
сейчас нет под рукой версии 6.5, но позже посмотрю
var cmd = totalcmd + " /O /T \"/L=%1\"";
спасибо
for (var i = 0; i < 100; ++i)
text = text.replace(pattern, str);
return text;
ужоснах! Так нельзя писать! Писать льзя вот так, например:
for (var text1 = ""; text1 != text;)
{
text1 = text;
text = text.replace(pattern, str);
}
Однако спасибо.
не люблю JavaScript - у меня для него нормально редактора с Intellisense-ом нету.
зы
да, и вообще меня убило, что replace заменяет только первое вхождение
Item, "Open in TC" = Copy link address & Execute program, "d:\prog\sys\file mangers\totalcommander6.53\totalcmd.htm","%c"
спасибо!
Что означает каждая запятая в данной строке?
На примере добавления в меню пункта "Открыть в IE".
Для этого нужно изменить выбранный в настройках файл меню (Настройки - Панели инструментов - Настройки Меню). Сами файлы находятся в папке: Папка Оперы\profile\menu\.
В секцию [Document Popup Menu] добавить пункт:
Item, "Открыть в IE" = Execute program, "iexplore","%u"
Вместо "iexplore" нужно писать полный путь к программе, если он не прописан в реестре Windows (наверно ключ HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths).
"%u" - параметры командной строки, передающиеся в запускаемую программу (в общем случае не обязательны).
%u = URL отображаемого документа
%t = выбранный текст
%s = источник отображаемого документа
%c = текст буфера обмена.
Дальше все это соединяем вместе.
== Открытие TC из Opera-ы ==
Создаем файл TC_from_Opera.js и сохраняем в надежном месте
где totalcmd - это путь к TC
var href = WScript.Arguments(0);
var totalcmd = "\"c:\\Program Files\\totalcmd\\TOTALCMD.EXE\"";
var shell = new ActiveXObject("WScript.Shell");
if (href.indexOf("file://")==0)
{
href = href.replace("file://", "\\\\");
href = replaceAll(href, "/", "\\");
href = replaceAll(href, "%20", " ");
var cmd = totalcmd + " /O \"/L=%1\"";
cmd = cmd.replace("%1", href);
shell.Exec(cmd);
}
function replaceAll(text, pattern, str)
{
for (var text1 = ""; text1 != text;)
{
text1 = text;
text = text.replace(pattern, str);
}
return text;
}
в файл "\Program Files\Opera\defaults\standard_menu.ini"
в раздел [Link Popup Menu] добавляем строку:
Item, "Open in Total Commander" = Execute program, "c:\НадежноеМесто\TC_from_Opera.js","%l"
Внимание:
путь в переменной totalCmd - надо указывать с двойными слэшами
путь в файле standart_menu.ini - с одинарными
pps
Опера может быть и хороший браузер, но справка - очень и очень ужасная.
respect
Полноценно оформлять лень, поэтому решение вкратце:
добавить файл tc.js в chrome/browser.jar/content/browser
function OpenTotalCommander(link)
{
var href = link;
var targetFile = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
targetFile.initWithPath('C:\\Program Files\\totalcmd\\TOTALCMD.EXE');
var process = Components.classes['@mozilla.org/process/util;1'].getService(Components.interfaces.nsIProcess);
process.init(targetFile);
var arguments= [] ;
href = href.replace("file://", "\\\\");
href = replaceAll(href, "/", "\\");
href = replaceAll(href, "%20", " ");
var cmd = "/L=%1";
cmd = cmd.replace("%1", href);
arguments.push("/O");
arguments.push(cmd);
process.run(false, arguments, arguments.length,{});
return true;
}
function replaceAll(text, pattern, str)
{
for (var text1 = ""; text1 != text;)
{
text1 = text;
text = text.replace(pattern, str);
}
return text;
}
в файл chrome/browser.jar/content/browser/browser.xul рядом с такими же похожими строками
добавить строку
<script type="application/x-javascript" src="chrome://browser/content/tc.js"/>
в этот же файл chrome/browser.jar/content/browser/browser.xul после строк вида
<menuitem id="context-savelink"
...
<menuitem id="context-copylink"
...
добавить строки
<menuitem id="context-openlink-in-tc"
label="Open Link in TC"
oncommand="OpenTotalCommander(gContextMenu.linkURL"/>
если в названии папки есть пробел, то открывает надлежащую папку
это какой из вариантов - Ie, Opera или FireFox?
Opera+TC
хм, по стандарту URI кодируются в utf-8 и все символы не из ASCII кодируются эскейп последовательностями. глять что films.hackers выдаёт на русские имена
у меня в IE и в OPera-е русские символы нормально работают, похоже их сам браузер дешифрует.
Соответственно в скрипте TC_from_Opera.js
надо строку var href = WScript.Arguments(0);
заменить на
var href = "";
for (i = 0; i < WScript.Arguments.length; i++)
{
if (i != 0)
href = href + " ";
href = href + WScript.Arguments(i);
}
ps
но если в пути было два пробела подряд, то работать все равно нормально не будет.
2: хоть я это пока еще и не попробовал, но все равно за труд большой респект
У меня такая проблема возникла: в IE пункт меню не появился. Ну да хрен с ним. В лисе пункт меню появился, если выбрать этот пункт, то переходится в ТС, он даже открывается, если не запущен, но в ТС'вской вкладке ничего нового не открывается, т.е. это просто как Alt-Tab выглядит.
Бля, архив это ...
т.е. теперь должно быть:
var arguments= [] ;
href = href.replace("file://///", "\\\\");
href = href.replace("file://", "\\\\");
href = replaceAll(href, "/", "\\");
href = replaceAll(href, "%20", " ");
var cmd = "/L=%1";
cmd = cmd.replace("%1", href);
Большущий респект 'ю, за полезную функцию в FF!
Что-то перестал заходить, что это может быть? Я редактирую с помощью WinRar. У всех последний вариант работает?
(1) Ищём что-то в лориене
(2) Появляется список
(3) Выбираем элемент списка и делаем Open Link in TC
(4) TC открывается, но не на ссылке
Но он откроется правильно, если сначала кликнуть на этот элемент, а потом открыть на ссылке вверху. Кажется, неправильно обрабатывается последовательность Правильно получается только
Где можно скачать нормальный учебник по JScript?
Ёпт, это не в скрипте проблема, а во мне, вначале у лориена не ссылки, а фигась поймёшь что.
:Добавил все. У меня все так же, как и у 'а (кстати, не знаю, как до добавления было, я так делать раньше не пробовал).
Разобрался, тут ещё есть небольшая проблема.
(1) Ищём что-то в лориене
(2) Появляется список
(3) Выбираем элемент списка и делаем Open Link in TC
(4) TC открывается, но не на ссылке
Но он откроется правильно, если сначала кликнуть на этот элемент, а потом открыть на ссылке вверху. Кажется, неправильно обрабатывается последовательность Правильно получается только
Ну да ладно, зато так, как описано - открывается
Не особо большой труд вместо одного раза кликнуть два.
Как говорится, от добра добра не ищщут, так что DarkGay'у спасибо и большой респект
ае. клевая вещь!
ссылку ты случаем не с русскими буквами пытаешься открывать?
ps
в отличие от IE и Opera-ы - Firefox оказывается русские ссылкы мало того, что сам не раскодирует, так еще их и кодирует не по стандарту.
А можно так открывать авишки и музыку сразу из оперы например?
можно
:Не. Английскую полностью (в качестве примера - практически любой запрос из лориена).
ссылку ты случаем не с русскими буквами пытаешься открывать?
Осчастливил бы людей, плагинш бы уж написал бы... (Шутка. А то я тут недавно лису переставлял, вручную опять все проделывал)...
Английские нормально открываются.
надо только помнить, что в лориене есть и http-ссылки, которые ведут на сам же лориен
есть вот такие ссылки http://lorien.local/showdir.pl?host=479&where=57
а есть такие
Вторые открываются в отличии от первых.
firefox 1.5b2
TC 6.53
WinXp
В ТС открыто несколько табов в каждой панели....
Всё прописал?
ссылки не открываются. просто ничего не происходит.
Оставить комментарий
Dasar
Для открытия файловых ссылок из IE в TotalCommander-е - надо сделать следующее:Создать файл totalcmd.htm в надежном месте на диске, указав в переменной totalcmd - свой путь к Total Commander-у.
Будьте внимательны: слэши должны указываться двойные.
создать файл totalcmd.reg, указав ваш путь к файлу totalcmd.htm вместо 'C:\\НадежноеМесто\\'.
Слэши опять же двойные.
Добавить данный файл в реестр (достаточно просто этот файл открыть по enter-у или double click-ом)
Перезапустить IE
По правой кнопке мышки - теперь ссылки можно открывать в TC