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 

Переносной Script Helper ActiveX for TC by Volniy
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Flasher



Joined: 06 Nov 2009
Posts: 13839
Location: Москва

Post (Separately) Posted: Wed Nov 25, 2015 19:54    Post subject: Переносной Script Helper ActiveX for TC by Volniy Reply with quote

    Script Helper ActiveX for TC

    Из справки:
    Quote:
    Управление Total Commander-ом из различных программных сред,
    поддерживающих COM-технологию. Некоторые команды и функции могут
    быть применены в WSH скриптах для целей, никак не связанных с TC.

    Детали работы смотрите в прилагаемом ReadMe.txt.
    Постоянная страница компонента.

    Уже года 3-4 как пользуюсь портабельным Хелпером, но всё никак руки не доходили опубликовать решение, хотя паре человек обещал.
    Что ж, с большим запозданием, но публикую статью на TCKB.

    Также сообщаю, что компонент обновлён до версии 1.0.0.14, здесь появился новый метод GetInfo на основе возвращаемых WMCopyData данных.
    Один пример приведён в статье. Далее публикую vbs-скрипт, отображающий сразу все варианты.
Code:
'===========================================================
' Демонстрация использования метода GetInfo вспомогательного
' для ТС компонента "Script Helper ActiveX for TC by Volniy"
'===========================================================

Set TCHelper = CreateObject("TCScript.Helper")
TCHelper.Pause = 0 : T = vbTab : C = vbCr

For Each N in Split("LP LC LI LN RP RC RI RN SP SC SI SN TP TC TI TN")
  Select Case(Mid(N, 2))
    Case "P" T1 = "Путь"
    Case "C" T1 = "Число объектов"
    Case "I" T1 = "№ объекта под курсором"
    Case "N" T1 = "Имя объекта под курсором"
  End Select
  Select Case(Left(N,1))
    Case "S" T2 = "активной"  : Case "R" T2 = "правой"
    Case "T" T2 = "пассивной" : Case "L" T2 = "левой"
  End Select : Execute N & "= T1 & "" "" & T2 & """ &_
  " панели:"" & T & TCHelper.GetInfo(CStr(N)) & vbCr"
Next: If TCHelper.GetInfo("A") = "L" Then A = "левая" Else A = "правая"

MsgBox T & T & "Активная панель:" & T & T & A & C & C & T & SC & T &_
TC & T & LC & T & RC &T & C & SI & TI & LI & RI & C & SN & TN & LN &_
RN & C & SP & TP & LP & RP,, Space(18) & "Данные WM_CopyData для TC"

 Либо так:

_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.


Last edited by Flasher on Wed Dec 02, 2015 16:53; edited 3 times in total
Back to top
View user's profile Send private message
Staniclaw



Joined: 12 Dec 2010
Posts: 533
Location: Ташкент

Post (Separately) Posted: Wed Nov 25, 2015 22:26    Post subject: Reply with quote

То есть с этой штукой не нужны никакие копания ни в реестре, ни в системных файлах? Всё необходимое будет на флешке? Класс!
_________________
Вечному двигателю -- вечные тормоза!..
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 13839
Location: Москва

Post (Separately) Posted: Wed Nov 25, 2015 22:38    Post subject: Reply with quote

Staniclaw
Я так понял, то были риторические вопросы, ибо в статье об этом написано, надеюсь, понятным языком. Wink
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Staniclaw



Joined: 12 Dec 2010
Posts: 533
Location: Ташкент

Post (Separately) Posted: Wed Nov 25, 2015 22:45    Post subject: Reply with quote

Flasher
Они самые. Всё равно класс. Представляю, как обрадуются сборщики.
_________________
Вечному двигателю -- вечные тормоза!..
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 13839
Location: Москва

Post (Separately) Posted: Sun Nov 29, 2015 13:27    Post subject: Reply with quote

В статье исправлен манифест для Хелпера. Компонент по ссылке со сборкой обновлён.

Staniclaw wrote:
Представляю, как обрадуются сборщики
Ну, пока никто из них не объявился, несмотря на старый манифест. Так что не факт, что сборщики если и будут, то публичные.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 13839
Location: Москва

Post (Separately) Posted: Wed Dec 23, 2015 14:03    Post subject: Reply with quote

Flasher wrote:
В статье исправлен манифест для Хелпера. Компонент по ссылке со сборкой обновлён.
    • Оптимизирован код компонента (по размеру немного ужался).
    • Добавлена полная поддержка Юникода.
    • Добавлено свойство NoArrayReturn.
    • Модифицирован метод GetFilter.
    • Добавлен ReadMe.txt с некоторыми правками.
Есть одна недоделка с декодированием Юникода, шифрованного в ANSI, как это происходит в INI-файлах.
Но автор 2 недели не появлялся, поэтому, чтобы сильно не тянуть, выложил то, что реализовано на данный момент.

[+] В статье смотрите важное дополнение перед п. 7) (совсем вылетело из головы сразу написать об этом).
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
addhaloka



Joined: 09 Nov 2010
Posts: 169

Post (Separately) Posted: Fri Jan 08, 2016 04:21    Post subject: Reply with quote

Flasher
Чёто не хочет работать, выдаёт ошибку Confused Завёлся только после регистрации TCScript.dll, но насколько понимаю, целью было избавиться именно от этого? Проверял с примером отсюда и из статьи, сборка Хелпера также из статьи, TCx64 8.52a, Win 8.1 x64.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 13839
Location: Москва

Post (Separately) Posted: Fri Jan 08, 2016 13:38    Post subject: Reply with quote

addhaloka
Интерпретатор в строку "Команда:" подставлялся тот, что из архива?
И если до этого запускались предыдущие версии, то см. выше [+].
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 9401
Location: Россия, Саратов

Post (Separately) Posted: Fri Jan 08, 2016 14:13    Post subject: Reply with quote

addhaloka
То, что написано здесь про важное дополнение, учтено? Говоря проще, в кнопке или юзер-команде в поле "Команда" путь к wscript.exe перед путём скрипта дописывался? У меня, пока этого не сделал, было ровно то же сообщение.
P.S. О, чуть опередили...
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
addhaloka



Joined: 09 Nov 2010
Posts: 169

Post (Separately) Posted: Fri Jan 08, 2016 17:58    Post subject: Reply with quote

Flasher
С тем, что в архиве - ситуация такая: 7-Zip отказывается его распаковывать, ругаясь на невозможность создать симлинк (может тут собака зарыта - где-то прав не хватает? С запущенным от админа 7-Zip удалось извлечь, но не получается поменять его свойства Very Happy ), а WinRAR просто его не извлекает. Поэтому скопировал интерпретатор из %windir%\SysWOW64. Предыдущие версии не пробовал, вчера впервые решил глянуть.

Avada
С этим я тоже столкнулся, но уже после выяснения проблемы с TCScript.dll - подумал, что:
 Hidden text

но как чуть поздней оказалось - нужно.

С зарегистрированной TCScript.dll - всё прекрасно работает. Необходимость регистрации совершенно не напрягает, не вижу в это ничего страшного - обычно для подобных случаев пользуюсь батником, типа такого:
 Hidden text

но хотелось бы разобраться, и как сейчас подумал - на машине без возможности получения адм. прав, батник наверное уже не поможет.


Last edited by addhaloka on Fri Jan 08, 2016 18:18; edited 1 time in total
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 13839
Location: Москва

Post (Separately) Posted: Fri Jan 08, 2016 18:16    Post subject: Reply with quote

addhaloka wrote:
Поэтому скопировал интерпретатор из %windir%\SysWOW64.
Идём в статью и читаем:
Quote:
для компонентов с 32-битной разрядностью из папки %Windir%\SysWOW64

addhaloka wrote:
Необходимость регистрации совершенно не напрягает
В таком случае в этой ветке особо и делать нечего. Тут про портабельность. См. предисловие в статье.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.


Last edited by Flasher on Mon Jan 11, 2016 15:07; edited 1 time in total
Back to top
View user's profile Send private message
addhaloka



Joined: 09 Nov 2010
Posts: 169

Post (Separately) Posted: Fri Jan 08, 2016 18:23    Post subject: Reply with quote

Flasher wrote:
Идём в статью и читаем:

У меня Win 8.1 x64, а в x64 осях всё 32-х битное лежит именно в SysWOW64.

Flasher wrote:
В таком случае в этой ветке особо и делать нечего.

Ну тогда проехали. Буду сюда заглядывать - может, кто на досуге попробует разобраться, мне чего-то лень. Smile
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 13839
Location: Москва

Post (Separately) Posted: Fri Jan 08, 2016 19:20    Post subject: Reply with quote

addhaloka wrote:
в x64 осях всё 32-х битное лежит именно в SysWOW64.
И правда. Надо будет исправить.
В общем, безотносительно версий, имеем попытки вызова. Если была неудачная, то переходим к [+].

Avada
А ты тестировал на TCx64?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 9401
Location: Россия, Саратов

Post (Separately) Posted: Fri Jan 08, 2016 20:28    Post subject: Reply with quote

Flasher
Нет, только на 32 пока успел. Но сейчас попробовал несколько скриптов на x64 (естественно, уже с другим wscript.exe). Не работает.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4744
Location: Ростов-Дон

Post (Separately) Posted: Mon Jan 11, 2016 14:36    Post subject: Reply with quote

Я проверял на 64-битной системе, используя 32-битный wscript, всё работает как из 32-битного тотала, так и из 64-битного. Компонент на моей машине никогда не устанавливался и не установлен, поэтому портабельность была 146%, я гарантирую это.

Достаточно положить 32-битный wscript.exe (взятый из SysWOW64) в папку с распакованным пакетом из статьи и запускать скрипты только через него (т.е. указывать в командной строке сначала путь к нашей копии wscript, а потом путь к самому скрипту - как и показано в статье), иначе будет запускаться системный wscript, на который манифест из статьи не распространяется (т.к. манифест должен лежать рядом с экзешником), следовательно, никакой портабельной привязки к компоненту не будет.

А ошибка 800A01AD появляется при попытке загрузить модуль другой разрядности (т.е. в данном случае при попытке использования 64-битного wscript).
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…


Last edited by MVV on Mon Jan 11, 2016 15:00; edited 1 time in total
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group