Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Script Request 
Author Message
Zmy



PostPosted: Mon Apr 26, 2021 07:35    Post subject: Reply with quote

Посмотрел я, почему при ожидании стандартное средство просмотра фотографий Windows вываливается с ошибкой.
Потому что, оно запускается не просто так, а в процессе-оболчке (в обёртке, как svchost).
Только оно в dllhost.exe.
Т.е., сервер сценариев не может отследить окончание процесса, который назначен, как MIME-средство просмотра такого типа файла.
Измените средство просмотра для изображений по-умолчанию на прогу по-проще, тогда все проблемы исчезнут.
Типа, Imagine.exe или что-то другое.

На счёт руских символов, я вроде поправил. Вот, я даже снял видео.
Поставьте в настройках плеера качество 720.

https://disk.yandex.ru/i/4Tc0wnDBXwgh0w

Code:

// Команда:
// "C:\Folder\MoveToOther.js"
// Параметр:
// 17 "%T" "%P%S"

// Кавычки обязательны.
 
//  Skip    == 0
//  Count   == 1
//  Rewrite == 2
   
//  Wait    == 4
   
//  View    == 8    Normal
//  View    == 16   Turned
//  View    == 32   Maximaze

// В начале первый аргумент равен нулю.
// Складываем флаги, чтобы получилось одно число. По группам. Пример:
// Я хочу, чтобы при существованиии такого же файла в целевой директории включился счётчик (к первому аргументу прибавляю 1),
// или хочу перезаписать существующий файл (прибавляю 2).
// В противном случае, ничего не произойдёт.
//
// Дальше. Я хочу, чтобы файлы запустились одновременно. Я к предыдущему итогу должен прибавить 4.
// Дальше. Я хочу окно в нормальном виде (прибавляю 8), или я хочу видеть в свёрнутом (прибавляю 16), или в максимальном виде (прибавляю 32).
//
// В итоге, получаю сумму флагов. Например 17. Что значит, окно в свёрнутом виде, и прибавляется счётчик, при совпадении имён.

// И первому аргументу присваиваю этот итог.   


function funcion(){var g=WScript.Arguments.length;if (g<3){WScript.Echo
('Wrong Parameteres.   \n\nExample: \n\n\n\nCommand:'+'     \n\n"C:\\Kemp\\MoveAndRun.js"\n\n\nArguments:\n\n17 "%T" "%P%S"');
WScript.Quit();};var z=WScript.Arguments(1),b=parseInt(WScript.Arguments(0),10),
k=new ActiveXObject("Scripting.FileSystemObject"),u=new ActiveXObject("WScript.Shell");if
(z.substr(z.length-1,z.length)=='\\'){z=z.substr(0,z.length-1);};z+="\\";if (!k.FolderExists(z)){
WScript.Echo('Target Folder not Exist.  \n\n\n'+z+" \n");k=u=0;WScript.Quit();};var i=2,n=w=r=t="",q=h=0;for(;i<g;i++)
{n=WScript.Arguments(i);q=n.lastIndexOf("\\");w=n.charAt(q);r=n.substr(parseInt(q,10)+1);h=r.lastIndexOf(".")+1;t=
r.substr(h);w=r.substr(0,parseInt(h,10)-1);h=n.substr(0,parseInt(q,10)+1);if (z.toLowerCase()==h.toLowerCase())
{WScript.Echo("Source and Target Folders Identical. \n\n\n"+h+"\n\n"+z+" \n");break;};q=1;h=z+r;if
(k.FileExists(h)){if (b&0x1){while(k.FileExists(h)){q+=1;h=z+w+"_"+q+"."+t;};}else if
(b&0x2){w=k.GetFile(h);if(w.attributes&1){w.attributes=0;WScript.Sleep(100);};k.DeleteFile(h);}else{continue;};};if
(!k.FileExists(n)){continue;};k.MoveFile(n,h);WScript.Sleep(500);t=(b&0x04)?1:0;if(b&0x10)
{w=2;}else if(b&0x20){w=3;}else{w=1;};u.Run('"'+h+'"',w,t);WScript.Sleep(200);};k=u=0;WScript.Quit();};funcion()

View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group