Zmy
|
Posted: Sun Apr 25, 2021 10:14 Post subject: |
|
|
Простым скриптом таких результатов не достичь. Чтобы окна не менялись или изменялись.
Ведь каждая программа сама определяет, сколько экземпляров она может работать. И как она сама себя ведёт.
Со сложными программами, там ещё сложнее. Типа Microsoft Office. Там уже идут системные вызовы DDE.
Короче, тут много ньюансов. Тут надо писать мощную программу, которая будет собирать всю требуемую ей статистику.
Написал я небольшой скрипт. На языке Jscript. Я не знаю, как он будет работать на операционных системах новее, чем семёрка.
Короче в заголовке скрипта есть небольшое описание.
Главное - правильно написать параметры.
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)?true:false;if(b&0x10)
{w=2;}else if(b&0x20){w=3;}else{w=1;};u.Run(h,w,t);WScript.Sleep(100);};k=u=0;WScript.Quit();};funcion()
|
Сохраняете это текст куда-нибудь. Даёте имя, например MoveToOther.js. И расширение должно быть JS.
Создаёте пользовательскую команду в usercmd.ini, в панели инструментов или в меню Старт.
Если появятся какие-нибудь ошибки, то скажете, что пишет или скрин под коврик положите. |
|