WSH + TCScript = мощное средство автоматизации TC!

Форум о самом популярном файловом менеджере Total Commander

Сообщение Volniy » Ср авг 04, 2004 10:25 pm

<!--QuoteBegin-Ti-Mac+--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Цитата (Ti-Mac)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->2Volniy
Не подскажешь как закрыть запущенный процесс в vbs ?<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Встроенными средствами - никак и это, согласись, хорошо Изображение Ведь если из простого скрипта такое можно будет делать, то тогда скрипт, вложенный, например, в HTML-страничку сможет запросто валить систему или еще какие-нибудь гадости творить. А так убиение процессов возможно только если подключить какой-нибудь под это дело заточенный ActiveX, но при этом IE выдаст запрос на разрешение его установки и пр и пр.
Так что, может в Helper такую байду добавить или это уже слишком? Изображение

У меня, кстати, твой скрипт с выделением папок заработал только после вот такого изменения в коде
Код: выделить все
Dim CurDir, S

Set CurDir = fso.GetFolder(ScrPath)
 For Each S in CurDir.SubFolders
   All = All &  S.Name & "\" & vbCrLf
 Next


<!--QuoteBegin-Alex-A+--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Цитата (Alex-A)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Вот чего спросить хочу: как бы вот этот кусок на JScript выглядел?
aSelection = tc.GetSrcSelectedFiles(false)
For i = 0 To UBound(aSelection)
   WScript.Echo aSelection(i)
Next<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Да выглядеть-то он может по-разному, но вот я только сейчас проверил и увидел, что работать-то оно, блин, не работает. Я все делал из расчета на VBS, а в JScript свои несовместимые типы массивов. Не знаю, что сейчас и делать Изображение Если я переделаю в Коллекции, то скрипты нужно переделывать, которые работают с результатом методов, как с массивами. А для чего тебе на JScript?
Если бы все работатало (или например при Collection), то просто можно было обратиться в таком стиле
Код: выделить все
var i, aSelection;
aSelection = tc.GetSrcSelectedFiles(false);
  for (i in aSelection)   {
     WScript.Echo(aSelection(i));
  }

А сейчас это, блин, не пашет Изображение Изображение
Стоит ли вообще заниматься этой совместимостью? Я могу, например, дописать GetSrcSelectedFilesJS и тп, но это как-то...
Последний раз редактировалось Volniy Чт авг 05, 2004 12:52 pm, всего редактировалось 1 раз.
Volniy
Ст. лейтенант
 
Сообщений: 121
Зарегистрирован: Сб ноя 22, 2003 11:42 pm
Пункты репутации: 0

Сообщение Alex-A » Чт авг 05, 2004 2:29 am

<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->
Да выглядеть-то он может по-разному, но вот я только сейчас проверил и увидел, что работать-то оно, блин, не работает
<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Блин, а я как уже только не извращался, думал чего-то не догоняю Изображение
Ничего переделывать не надо, я просто интереса ради попробовал, но вот где-нить в рид.ми оговорить этот момент было бы неплохо
Alex-A
Сержант
 
Сообщений: 26
Зарегистрирован: Ср апр 03, 2002 3:23 am
Пункты репутации: 0

Сообщение Ti-Mac » Чт авг 05, 2004 1:03 pm

2Volniy
У меня каталоги без пролем выделяются.
<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->
крипт, вложенный, например, в HTML-страничку сможет запросто валить систему или еще какие-нибудь гадости творить<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Так и без этого можно такого западлища настряпать :)
<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Так что, может в Helper такую байду добавить или это уже слишком?<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Тогда его надо назвать ANTI-LAMERHACK.HELPER :)
<span style='color:blue'>Formating C: .................98%</span>
<span style='color:red'>Fatal Error:</span> <span style='color:blue'>found Windows</span>
Ti-Mac
Капитан
 
Сообщений: 168
Зарегистрирован: Вс апр 18, 2004 8:18 am
Откуда: Кемерово
Пункты репутации: 0

Сообщение Alex-A » Чт авг 05, 2004 6:00 pm

<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->
Так что, может в Helper такую байду добавить или это уже слишком?
<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Что-т кажется мне, не надо.
Если сильно нужно, то можно запускать типа taskkill для WinXP
А Helper все ж создается не для того
Хотя может и не прав я ...
Alex-A
Сержант
 
Сообщений: 26
Зарегистрирован: Ср апр 03, 2002 3:23 am
Пункты репутации: 0

Сообщение Volniy » Чт авг 05, 2004 10:02 pm

<!--QuoteBegin-Alex-A+--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Цитата (Alex-A)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Что-т кажется мне, не надо.<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
<!--QuoteBegin-Ti-Mac+--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Цитата (Ti-Mac)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Тогда его надо назвать ANTI-LAMERHACK.HELPER Изображение<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Вы че, ребяты, я ж типа прикалываюсь Изображение А вообще вы уже должны были заметить: когда программер зашел в тупик с новыми идеями, он начинает всякую дрянь пихать в свою прогу (например, калькулятор или там календарь, проигрыватель MP3 или еще чего такого) вот и мне тоже пора Изображение

2Ti-Mac Насчет скрипта: твой вариант у меня ну ни в какую не пашет! Только что еще раз перепроверил. У тебя на компе там точно так?:
Код: выделить все
All = All & chr(34) & S.Name & chr(34) & vbCrLf


Зачем, скажи, нужно в кавычки имена папок-то? Я не понял Изображение. И, главное, а мой-то вариант у тебя пашет?
Volniy
Ст. лейтенант
 
Сообщений: 121
Зарегистрирован: Сб ноя 22, 2003 11:42 pm
Пункты репутации: 0

Сообщение Ti-Mac » Пт авг 06, 2004 10:27 am

2Volniy
Твой вариант работает только с папками без пробелов в имени
<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->А вообще вы уже должны были заметить: когда программер зашел в тупик с новыми идеями, он начинает всякую дрянь пихать в свою прогу (например, калькулятор или там календарь, проигрыватель MP3 или еще чего такого) вот и мне тоже пора<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
кофеварку :)
<span style='color:blue'>Formating C: .................98%</span>
<span style='color:red'>Fatal Error:</span> <span style='color:blue'>found Windows</span>
Ti-Mac
Капитан
 
Сообщений: 168
Зарегистрирован: Вс апр 18, 2004 8:18 am
Откуда: Кемерово
Пункты репутации: 0

Сообщение Egorus » Сб авг 07, 2004 3:41 pm

А не подскажете как можно определить, в архиве ли я нахожусь или нет? Нужно чтобы скрипт понимал что в данный момент на панели открыт архив и распаковывал файл под курсосром во временную папку а затем открывал нужным редактором. Хочется доработать скрипт "Total Commander Multi File Editor" от SAM.
В скрипте FreeArchive у Ti-Mac есть такая строчка:
If Right(trim(TmpDir),1) = "\" Then TmpDir = Left(TmpDir,Len(TmpDir)-1)
объяните плз что это значит, может это и есть что мне нужно?
Последний раз редактировалось Egorus Сб авг 07, 2004 3:44 pm, всего редактировалось 1 раз.
Egorus
Ст. сержант
 
Сообщений: 38
Зарегистрирован: Чт июн 05, 2003 10:03 am
Пункты репутации: 0

Сообщение Volniy » Сб авг 07, 2004 4:37 pm

<!--QuoteBegin-Egorus+Aug 7 2004, 18:41--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Цитата (Egorus @ Aug 7 2004, 18:41)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->А не подскажете как можно определить, в архиве ли я нахожусь или нет? Нужно чтобы скрипт понимал что в данный момент на панели открыт архив...<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Сходу и не задумываясь: проверить существование файла или папки в текущей панели. Если не существуют - значит мы в архиве (или еще в какой-нить "виртуальной реальности" Изображение ) Более однозначно: считываем все расширения в секции [PackerPlugins] wincmd.ini и проверяем нет ли в пути текущей панели в конце сочетания ("." & ОдноИзРасширений). Если так - мы в архиве типа "Расширение".
А упомянутая тобой строка кода в скрипте всего-то убирает лишний обратный слеш в конце пути.

2Ti-Mac Твой вариант скрипта у меня все-таки заработал, но только после увеличении где-то в два раза стандартной паузы (Tcs.Pause=150). А вообще немного странно, почему моим способом не выделяются папки с пробелами. Даже тут у Гислера бага завелась Изображение
Volniy
Ст. лейтенант
 
Сообщений: 121
Зарегистрирован: Сб ноя 22, 2003 11:42 pm
Пункты репутации: 0

Сообщение Ti-Mac » Сб авг 07, 2004 6:11 pm

2Egorus
Это строка просто для того чтобы добавить бэкслеш к пути временного архива если он не приписан

А проверить в архиве ты или нет, если запросить у Тотала путь панели источника. и проверь этот путь на файл командой GetFile. Если возвратит ошибку 53 значит ты не в архиве. Потому что если ты будешь например в архиве C:\temp.rar\index.htm то путь панели будет C:\temp.rar
Последний раз редактировалось Ti-Mac Сб авг 07, 2004 6:15 pm, всего редактировалось 1 раз.
<span style='color:blue'>Formating C: .................98%</span>
<span style='color:red'>Fatal Error:</span> <span style='color:blue'>found Windows</span>
Ti-Mac
Капитан
 
Сообщений: 168
Зарегистрирован: Вс апр 18, 2004 8:18 am
Откуда: Кемерово
Пункты репутации: 0

Сообщение Egorus » Вс авг 08, 2004 12:48 pm

2Volniy
2Ti-Mac
спасибо
Egorus
Ст. сержант
 
Сообщений: 38
Зарегистрирован: Чт июн 05, 2003 10:03 am
Пункты репутации: 0

Сообщение Egorus » Ср авг 11, 2004 6:54 am

Возникла другая проблема, при выполнении скрипта внутри архива пишется:
"Эта функция в архивах не работает"
использую beta5_tcs_helper, на скрипт Ti-Mac FreeArchive выдает тоже самое, видимо косяк с настройками тотала, может кто сталкивался?
Egorus
Ст. сержант
 
Сообщений: 38
Зарегистрирован: Чт июн 05, 2003 10:03 am
Пункты репутации: 0

Сообщение Ti-Mac » Ср авг 11, 2004 11:45 am

2Egorus
Функция распаковки не работает в архиве??? Такую фичу наверно Гислер явно не продумал! :) шучу! Щас протестил - работает всё нормально. Проверь ещё разок можь чо пропустил.
<span style='color:blue'>Formating C: .................98%</span>
<span style='color:red'>Fatal Error:</span> <span style='color:blue'>found Windows</span>
Ti-Mac
Капитан
 
Сообщений: 168
Зарегистрирован: Вс апр 18, 2004 8:18 am
Откуда: Кемерово
Пункты репутации: 0

Сообщение Egorus » Чт авг 12, 2004 5:59 am

2Ti-Mac
распаковка конечно работает, а вот любой скрипт, когда я нахожусь внутри архива не работает, просто не запускается и вываливает указанную выше ошибку, только что установил голый тотал установил tcs_helper, результат тот же. Тепрь думаю попробовать на голой системе.
Egorus
Ст. сержант
 
Сообщений: 38
Зарегистрирован: Чт июн 05, 2003 10:03 am
Пункты репутации: 0

Сообщение Egorus » Пн авг 16, 2004 2:57 pm

Странно, попробовал на только что установленной XP, с заново установленным Total'ом. Та же ошибка. Может я что-то делаю не так.
1. Создаю sample.vbs и записываю в папку C:\Totalcmd\Plugins\TC_helper
2. Иду в меню Start и создаю новый пункт, где в кач. пути до программы указываю C:\Totalcmd\Plugins\TC_helper\sample.vbs в качестве аргумента указывается %L (или ничего не указывается, в зависимости от vbs)
3. Назначаю F9=cm_usermenu1
Выхожу из запускаю Тотал на всякий случай.
Захожу в любой архив (zip или rar), выделяю файл и нажимаю F9. Выскакивает ошибка "Эта функция в архивах не работает".
Я уже не знаю даже что и думать.

2Volniy
почему-то не работает GetSrcSelectedFiles
Возникает ошибка Несоответствие типа, на данную строчку:
S = TCS.GetSrcSelectedFiles(True)
MsgBox S
Egorus
Ст. сержант
 
Сообщений: 38
Зарегистрирован: Чт июн 05, 2003 10:03 am
Пункты репутации: 0

Сообщение Volniy » Пн авг 16, 2004 9:26 pm

<!--QuoteBegin-Egorus+Aug 16 2004, 17:57--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Цитата (Egorus @ Aug 16 2004, 17:57)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->2Volniy
почему-то не работает GetSrcSelectedFiles
Возникает ошибка Несоответствие типа, на данную строчку:
S = TCS.GetSrcSelectedFiles(True)
MsgBox S<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
GetSrcSelectedFiles возвращает список в массиве а не в строке. Тоесть если хочешь показать список в Message сначала преврати массив в строку. Например, так:
Код: выделить все
S = TCS.GetSrcSelectedFiles(True)
S = Join(S, vbCrLf)
MsgBox S
Или вообче обрабатывай по одному файлу:
Код: выделить все
MsgBox S(0)
MsgBox S(1)
Volniy
Ст. лейтенант
 
Сообщений: 121
Зарегистрирован: Сб ноя 22, 2003 11:42 pm
Пункты репутации: 0

Пред.След.

Вернуться в Total Commander

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

cron