Flasher
Нет. Стоит 415 = дефолтное волшебное число MhtUnPack
Оно и понятно. Если они повязаны на одном плагине, то достаточно было эксперимента с b64.
Не совсем. Некоторые куски кода с форума у меня выдавали нерабочие файлы, если расширение ставилось .b64, а с расширением .uue распаковывались правильно.
Rodny
Ошибка чтения диска.
Попробуй где-нибудь ближе к началу вставить строку TCS.Pause=500
Последний раз редактировалось Tol!k Вс окт 17, 2010 18:57, всего редактировалось 1 раз.
// File: DecodeFromClipboard.js
// Распаковывает mime, uue, b64 текст
// скопированный в буфер обмена в текущую папку
//
// Для работы нужен: Script Helper ActiveX for TC
// http://wincmd.ru/plugring/script_helper.html
//
// В этой версии для работы не нужны WCX плагины (MhtUnPack.wcx)
// Если объект TCSCRIPT.Helper не зарегистрирован, этот скрипт временно
// зарегистрирует его. см. ниже переменную TCWSHELP_PATH
// Корректно обрабатывается ситуация, если файл уже существует.
// Временный файл корректно удаляется, панель TC обновляется.
//
// (c) 2010, lev, Tol!k, Andrey_A, Volniy
// (c) 2011, Total7zip
// Обсуждение: http://forum.wincmd.ru/viewtopic.php?t=13531
//путь к Script Helper ActiveX for TC
var TCWSHELP_PATH = "%COMMANDER_PATH%\\Utils\\TC\\TCWSHelp\\TCWSHelp.exe";
var tcHelper = null;
var wshShell = null;
var bUnreg = false;
try
{
tcHelper = WScript.CreateObject("TCSCRIPT.Helper");
}
catch(e)
{
//если TCWSHelp.exe не зарегистрирован - регистрируем его
wshShell = WScript.CreateObject("WScript.Shell");
wshShell.Run(TCWSHELP_PATH + " /REGSERVER", 1, true);
tcHelper = WScript.CreateObject("TCSCRIPT.Helper");
bUnreg = true;
}
//создаем в текушей папке временный файл и пишем в него содержимое буфера обмена
var fso = WScript.CreateObject("Scripting.FileSystemObject");
var tempFile = tcHelper.GetSrcPath () + "\\" + fso.GetTempName();
var f = fso.CreateTextFile(tempFile, true);
f.Write (tcHelper.GetTextFromClip ());
f.Close ();
f = null;
tcHelper.SetSrcPath (tempFile);
//посылаем команду, без ожидания завершения, TC показывает диалог
tcHelper.SendCommand ("cm_Decode", false);
//убираем путь в диалоге - нам надо декодировать в текущую папку
tcHelper.SendKeystroke ("{BKSP}");
tcHelper.SendKeystroke ("{Enter}"); //нажимаем ОК в диалоге
//удаляем временный файл, try нужен, чтоб дождаться пока TC завершит декодирование
while (true)
{
try
{
WScript.Sleep (1000);
fso.DeleteFile (tempFile);
break;
}
catch(e)
{
}
}
tcHelper.SendCommand ("cm_RereadSource", false);
//чистим, удаяем объекты.
fso = null;
tcHelper = null;
if (bUnreg)
{
//если TCWSHelp.exe не был зарегистрирован - разрегистрируем его
wshShell.Run(TCWSHELP_PATH + " /UNREGSERVER", 1, true);
}
wshShell = null;
WScript.Quit();
вы не правы.
обратите внимание, что этот код вызывается в цикле.
до тех пор пока TC работает с файлом fso.DeleteFile возвращает ошибку и цикл продолжается.
возможно, если спешить, скрипт удалит файл раньше чем TC успеет обратиться к нему.
во-вторых этот параметр влияет только на то, когда скрипт удалит ненужный файл - секундой раньше или позже, мне кажется не важно.
новый декодированный файл становится доступен сразу же, независимо от этого вызова Sleep.
---------------------------
Notice!
---------------------------
The default output filename was not found!
Encoded contents may be corrupted.
Fastcode will save the output file using the input filename.
---------------------------
ОК
---------------------------