Переносной Script Helper ActiveX for TC by Volniy
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Автоматизация Total Commander

#1: Переносной Script Helper ActiveX for TC by Volniy Author: FlasherLocation: Москва PostPosted: Wed Nov 25, 2015 19:54
    —
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"

 Либо так:


Last edited by Flasher on Wed Dec 02, 2015 16:53; edited 3 times in total

#2:  Author: StaniclawLocation: Ташкент PostPosted: Wed Nov 25, 2015 22:26
    —
То есть с этой штукой не нужны никакие копания ни в реестре, ни в системных файлах? Всё необходимое будет на флешке? Класс!

#3:  Author: FlasherLocation: Москва PostPosted: Wed Nov 25, 2015 22:38
    —
Staniclaw
Я так понял, то были риторические вопросы, ибо в статье об этом написано, надеюсь, понятным языком. Wink

#4:  Author: StaniclawLocation: Ташкент PostPosted: Wed Nov 25, 2015 22:45
    —
Flasher
Они самые. Всё равно класс. Представляю, как обрадуются сборщики.

#5:  Author: FlasherLocation: Москва PostPosted: Sun Nov 29, 2015 13:27
    —
В статье исправлен манифест для Хелпера. Компонент по ссылке со сборкой обновлён.

Staniclaw wrote:
Представляю, как обрадуются сборщики
Ну, пока никто из них не объявился, несмотря на старый манифест. Так что не факт, что сборщики если и будут, то публичные.

#6:  Author: FlasherLocation: Москва PostPosted: Wed Dec 23, 2015 14:03
    —
Flasher wrote:
В статье исправлен манифест для Хелпера. Компонент по ссылке со сборкой обновлён.
Есть одна недоделка с декодированием Юникода, шифрованного в ANSI, как это происходит в INI-файлах.
Но автор 2 недели не появлялся, поэтому, чтобы сильно не тянуть, выложил то, что реализовано на данный момент.

[+] В статье смотрите важное дополнение перед п. 7) (совсем вылетело из головы сразу написать об этом).

#7:  Author: addhaloka PostPosted: Fri Jan 08, 2016 04:21
    —
Flasher
Чёто не хочет работать, выдаёт ошибку Confused Завёлся только после регистрации TCScript.dll, но насколько понимаю, целью было избавиться именно от этого? Проверял с примером отсюда и из статьи, сборка Хелпера также из статьи, TCx64 8.52a, Win 8.1 x64.

#8:  Author: FlasherLocation: Москва PostPosted: Fri Jan 08, 2016 13:38
    —
addhaloka
Интерпретатор в строку "Команда:" подставлялся тот, что из архива?
И если до этого запускались предыдущие версии, то см. выше [+].

#9:  Author: AvadaLocation: Россия, Саратов PostPosted: Fri Jan 08, 2016 14:13
    —
addhaloka
То, что написано здесь про важное дополнение, учтено? Говоря проще, в кнопке или юзер-команде в поле "Команда" путь к wscript.exe перед путём скрипта дописывался? У меня, пока этого не сделал, было ровно то же сообщение.
P.S. О, чуть опередили...

#10:  Author: addhaloka PostPosted: Fri Jan 08, 2016 17:58
    —
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

#11:  Author: FlasherLocation: Москва PostPosted: Fri Jan 08, 2016 18:16
    —
addhaloka wrote:
Поэтому скопировал интерпретатор из %windir%\SysWOW64.
Идём в статью и читаем:
Quote:
для компонентов с 32-битной разрядностью из папки %Windir%\SysWOW64

addhaloka wrote:
Необходимость регистрации совершенно не напрягает
В таком случае в этой ветке особо и делать нечего. Тут про портабельность. См. предисловие в статье.

Last edited by Flasher on Mon Jan 11, 2016 15:07; edited 1 time in total

#12:  Author: addhaloka PostPosted: Fri Jan 08, 2016 18:23
    —
Flasher wrote:
Идём в статью и читаем:

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

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

Ну тогда проехали. Буду сюда заглядывать - может, кто на досуге попробует разобраться, мне чего-то лень. Smile

#13:  Author: FlasherLocation: Москва PostPosted: Fri Jan 08, 2016 19:20
    —
addhaloka wrote:
в x64 осях всё 32-х битное лежит именно в SysWOW64.
И правда. Надо будет исправить.
В общем, безотносительно версий, имеем попытки вызова. Если была неудачная, то переходим к [+].

Avada
А ты тестировал на TCx64?

#14:  Author: AvadaLocation: Россия, Саратов PostPosted: Fri Jan 08, 2016 20:28
    —
Flasher
Нет, только на 32 пока успел. Но сейчас попробовал несколько скриптов на x64 (естественно, уже с другим wscript.exe). Не работает.

#15:  Author: MVVLocation: Ростов-Дон PostPosted: Mon Jan 11, 2016 14:36
    —
Я проверял на 64-битной системе, используя 32-битный wscript, всё работает как из 32-битного тотала, так и из 64-битного. Компонент на моей машине никогда не устанавливался и не установлен, поэтому портабельность была 146%, я гарантирую это.

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

А ошибка 800A01AD появляется при попытке загрузить модуль другой разрядности (т.е. в данном случае при попытке использования 64-битного wscript).


Last edited by MVV on Mon Jan 11, 2016 15:00; edited 1 time in total

#16:  Author: addhaloka PostPosted: Mon Jan 11, 2016 14:56
    —
MVV wrote:
Я проверял на 64-битной системе...

А какая система - 7, 8, 10? Просто сталкивался и раньше - не факт, что то, что работает в Win 7 x64, будет нормально работать в Win 8.1 x64. Проверял точно так же - но у меня не работает в 8.1 x64.

MVV wrote:
Windows 7x64

Может, поэтому всё работает. Confused

MVV wrote:
А ошибка 800A01AD появляется при попытке загрузить модуль другой разрядности (т.е. в данном случае при попытке использования 64-битного wscript).

wscript.exe у меня, разумеется, 32-х битный - поэтому, почему такая ошибка я не знаю. Ещё раз повторю, что после regsvr32 TCScript.dll всё работает, как часики...

p.s. Есть идейка - попробовать взять и использовать wscript.exe из Win 7 или XP. Попозже проверю.


Last edited by addhaloka on Mon Jan 11, 2016 15:45; edited 2 times in total

#17:  Author: MVVLocation: Ростов-Дон PostPosted: Mon Jan 11, 2016 15:01
    —
В моём предыдущем посте - Windows 7x64 Enterprise (Windows 8+ я на нюх не переношу и не использую).

#18:  Author: addhaloka PostPosted: Mon Jan 11, 2016 15:59
    —
addhaloka wrote:
p.s. Есть идейка - попробовать взять и использовать wscript.exe из Win 7 или XP. Попозже проверю.

Ну вот, что и требовалось доказать - заменил восьмёрочный wscript.exe на взятый из XP SP3 - и всё заработало без регистраций и смс Very Happy

#19:  Author: FlasherLocation: Москва PostPosted: Mon Jan 11, 2016 16:00
    —
addhaloka wrote:
Может, поэтому всё работает.
Не уверен, что в этом дело. Вон Avada пишет, что у него тоже Win7 x64. Интерпретатор он брал как раз таки из Win x32.

addhaloka wrote:
заменил восьмёрочный wscript.exe
А можно скинуть его, глянуть?

P.S. Будем думать, что у всех dll такой перец. Very Happy

#20:  Author: MVVLocation: Ростов-Дон PostPosted: Mon Jan 11, 2016 16:10
    —
addhaloka,
Думаю, лучше тогда взять wscript из Windows 7, может, там что-то доработали или поправили со времён хрюши.
Flasher,
Наверное, лучше всего будет просто включить файл от Windows 7 в архив.


Last edited by MVV on Mon Jan 11, 2016 16:10; edited 1 time in total

#21:  Author: addhaloka PostPosted: Mon Jan 11, 2016 16:10
    —
Flasher wrote:
А можно скинуть его, глянуть?

А какой, из 8.1 или из XP? Впрочем, чтобы не заморачиваться, вот оба: http://www.upload.ee/files/5471869/wscript.7z.html

MVV wrote:
addhaloka,
Думаю, лучше тогда взять wscript из Windows 7, может, там что-то доработали или поправили со времён хрюши.

Спасибо. Да, наверно так лучше будет - тоже работает и поддержка XP/2000 пока ещё присутствует.


Last edited by addhaloka on Mon Jan 11, 2016 16:17; edited 1 time in total

#22:  Author: MVVLocation: Ростов-Дон PostPosted: Mon Jan 11, 2016 16:17
    —
У меня на Windows 7 твой восьмёрочный выдает вообще странную ошибку, когда запускаю с путём к скрипту:
Quote:
Ошибка при выполнении сервера сценариев Windows. (Длина выданной программой команды слишком велика. )


Last edited by MVV on Mon Jan 11, 2016 16:19; edited 1 time in total

#23:  Author: FlasherLocation: Москва PostPosted: Mon Jan 11, 2016 16:19
    —
MVV
WScript.exe может обновляться в хотфиксах. Вдруг кому новая версия понадобится.
В статье я убрал указание на симлинк и из архива снёс. Пути к папкам поправил.

addhaloka
Нужен был именно 8-чный. XP-шный я и раньше использовал.
Так вот, 8-й оказался на 7 Кб больше, несмотря на ту же версию. Что в него ещё напичкали, понятия не имею, но на Win7 x32 он также с моей сборкой работать отказался.

#24:  Author: addhaloka PostPosted: Mon Jan 11, 2016 16:29
    —
MVV wrote:
У меня на Windows 7 твой восьмёрочный выдает вообще странную ошибку, когда запускаю с путём к скрипту:

Flasher wrote:
Что в него ещё напичкали, понятия не имею, но на Win7 x32 он также работать отказался.

Ребята из M$ стараются. В Win 10, как говорят, ещё веселей. Smile



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group