Avada

|
Posted: Thu Mar 25, 2010 22:52 Post subject: |
|
|
kadvlad
http://forum.wincmd.ru/viewpost.php?p=24760. Скрипт от mozers™. Но там этот скрипт не качается. Вот его текст в варианте, используемом мною. Имя файла указано в первой строке.
Code: | // em_configChangeIniFiles.js
// Version: 1.1
// Открытие файлов настройки Total Commander в редакторе, заданном в диалоге ТС "Настройка: Правка по F4"
// mozers™ <mozers@mail.ru> (Вопросы, предложения...)
// ============================================================
// Желающие использовать редактор, отличный от заданного в диалоге ТС "Настройка: Правка по F4"
// могут указать его тут:
var editor = '%ProgramFiles%\\EmEditor\\EmEditor.exe';
// Имя пользовательского файла FTP настроек (если не будет найден, то откроется wcx_ftp.ini)
var ftp_ini_name = 'ftp.ini';
// Инициализируем нужные нам ActiveX объекты
try {
var WshShell = new ActiveXObject('WScript.Shell');
var fso = new ActiveXObject('Scripting.FileSystemObject');
} catch(e) {
WScript.Echo('Для работы скрипта необходима установка Windows Script Host (WSH)!');
WScript.Quit();
}
try { var TCS = new ActiveXObject('TCScript.Helper') } catch(e) {}
// Находим местоположение wincmd.ini
var wincmd_ini = WshShell.ExpandEnvironmentStrings('%COMMANDER_INI%');
if (wincmd_ini == '%COMMANDER_INI%') {
WScript.Echo('Скрипт расчитан на работу с Total Commander верcии 6.55 или выше!');
WScript.Quit();
}
// Если заданный вручную редактор отсутствует, то берем редактор, заданный в диалоге ТС "Настройка: Правка по F4"
if (editor != ''){
editor = WshShell.ExpandEnvironmentStrings(editor);
if (!fso.FileExists(editor)){editor = ''}
}
if (editor == ''){
// Находим путь к редактору
editor = ReadINI (wincmd_ini, 'Editor', 'notepad.exe')
if (editor == 'none') {
editor = 'notepad.exe'
} else {
if (/%1/.test(editor)) { // это - для тех, кто после пути к редактору дописал %1
editor = editor.replace(/"*([^"]*)"*.*/,'$1')
}
}
}
if (!fso.FileExists(editor)){
WScript.Echo('Заданный редактор\N' + editor + '\nне найден!');
WScript.Quit();
}
// Обрамляем editor в кавычки
if (!/^\"/.test(editor)) {editor = '"' + editor + '"'}
// Находим местоположение файлов настройки
var profile_path = wincmd_ini.replace(/[^\\]*$/,'');
var ftp_ini = profile_path + ftp_ini_name;
if (!fso.FileExists(ftp_ini)) {ftp_ini = profile_path + 'wcx_ftp.ini'}
var usercmd_ini = profile_path + 'usercmd.ini';
// Находим местоположение файла меню
var wincmd_mnu = ReadINI (wincmd_ini, 'MainMenu','');
if (!/\\/.test(wincmd_mnu)) {
wincmd_mnu = WshShell.ExpandEnvironmentStrings('%COMMANDER_PATH%\\LANGUAGE\\' + wincmd_mnu)
}
// Открываем файлы в заданном редакторе
EditFile (ftp_ini);
EditFile (wincmd_ini);
WScript.Quit();
// = = = = = = = = Ф У Н К Ц И И = = = = = = = =
// Открытие файла в редакторе
function EditFile (filename){
if (fso.FileExists(filename)){
WshShell.Run(editor + ' "' + filename + '"', 1, false)
}
}
// Чтение заданного ключа из файла
function ReadINI (filename, key, default_key){
// Если имеется установленный WSH Helper ActiveX for Total Commander (c)Volniy, то будем использовать его.
if (TCS) {
var value = TCS.INIRead(filename, 'Configuration', key, default_key);
value = WshShell.ExpandEnvironmentStrings(value);
return value;
} else {
// Если нет, то обходимся встроенными средствами
var value = default_key;
if (fso.FileExists(filename)) {
if (fso.GetFile(filename).Size > 0) {
var file = fso.OpenTextFile(filename, 1, false);
var re = new RegExp('^'+key+'\s*=','i');
while (!file.AtEndOfStream){
var text = file.ReadLine();
if (re.test(text)){
value = WshShell.ExpandEnvironmentStrings(text.replace(/^.*=/,''));
break;
}
}
file.Close();
}
}
return value;
}
}
|
В строке с var editor заменить указанный редактор на свой.
P.S. Склероз, однако. Я этот скрипт уже один раз на форуме выкладывал: [TC7.5pb1] Внутренние ассоциации для cm_ConfigChangeIniFiles _________________ Даже самая богатая фантазия
Не представит себе наши безобразия.
Last edited by Avada on Fri Mar 26, 2010 09:59; edited 1 time in total |
|