Windows Script Host

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

HEXFIX
Сообщения: 177
Зарегистрирован: Пт июн 25, 2010 19:54
Откуда: Калининград

Сообщение HEXFIX »

Ну, собственно, портабл версия 32 бит и есть. И не работает, да.
UPD. Неправильно понял. Думал, что портабл емеется в виду сам TC. Буду пробовать. Отпишусь о результатах
HEXFIX
Сообщения: 177
Зарегистрирован: Пт июн 25, 2010 19:54
Откуда: Калининград

Сообщение HEXFIX »

Оказывается, я всё время пользовался портабельной версией и только что узнал об этом :-)
К сожалению, не работает
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

В смысле "узнал"? О таком невозможно не знать, если это не чужая сборка, конечно.
Дата модификации у dll какая? Пример кнопки с TCKB не работает? Интерпретатор откуда тянулся?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
HEXFIX
Сообщения: 177
Зарегистрирован: Пт июн 25, 2010 19:54
Откуда: Калининград

Сообщение HEXFIX »

Чаво-то я совсем запутался :)
Нет у меня никакой .dll. Только файл TCWSHelp.exe. Не оно?
Пример не работающего скрипта:

Код: Выделить всё

'=======================================================
' Создание текстового файла с содержимым буфера обмена
'=======================================================
 
Option Explicit
Dim FileName
'========== Изменяемые параметры =======================
FileName = "Новый файл.txt" 'Имя создаваемого файла
'=======================================================
Dim TCS, Clip, Btn, FSO, OTL, Mess, Title
Set TCS = CreateObject("TCScript.Helper")
Clip = TCS.GetTextFromClip
Set TCS = Nothing
 
If Len(Clip) > 0 Then
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(FileName) Then
Mess = "Буфер обмена содержит текст." & vbNewLine & _
"Заменить содержимое файла " & FileName & _
" текстом из буфера обмена?" & vbNewLine
Title = "Замена содержимого файла"
Else
Mess = "Буфер обмена содержит текст." & vbNewLine & _
"Создать файл " & FileName & _
" с содержимым буфера обмена?" & vbNewLine
Title = "Создание текстового файла"
End If
Btn = MsgBox(Mess, vbYesNo + vbQuestion, Title)
If Btn = 7 Then 'Кнопка No
Set FSO = Nothing
WScript.Quit
End If
Else
WScript.Quit
End If
 
Set OTL = FSO.OpenTextFile(FileName, 2, True)
OTL.Write Clip
OTL.Close
 
Set OTL = Nothing
Set FSO = Nothing
WScript.Quit
UPD. Скачал готовую сборку для TC c tckb.ru, закинул в папку TC, скопировал в эту же папку wscript.exe из system32, перезагрузил комп — не работает
Изображение
Последний раз редактировалось HEXFIX Вт дек 04, 2018 13:37, всего редактировалось 1 раз.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

HEXFIX писал(а):Не оно?
Нет, конечно. Это то, что и было, никакой не Portable. Ссылка на статью дана в первом посте темы.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
HEXFIX
Сообщения: 177
Зарегистрирован: Пт июн 25, 2010 19:54
Откуда: Калининград

Сообщение HEXFIX »

Пока редактировал свой пост ты уже ответил :)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

HEXFIX писал(а):скопировал в эту же папку wscript.exe из system32, перезагрузил комп — не работает
10-ка 32-битная что ли? Перезагружать ничего не надо. Сперва надо разрегистрировать TCWSHelp.exe. Интерпретатор использовать лучше этот.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
HEXFIX
Сообщения: 177
Зарегистрирован: Пт июн 25, 2010 19:54
Откуда: Калининград

Сообщение HEXFIX »

Нет, 64-bit.
Ну ОК, скопировал файл из SysWOW54. Не работает.
ЗЫ. Да, проверил под виндами 1803. Всё работает, как часики.
ЗЫЫ. Ссылка на интерпретатор не открывается
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Ссылка с TCKB рабочая, проверял при выкладке.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

HEXFIX
Принципиальное неиспользование в последних фразах постов точек запрещено правилами форума и придаёт сообщениям недописанный вид. Категорически прошу прекратить эту практику.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
rediffusion
Сообщения: 34
Зарегистрирован: Пн фев 25, 2019 20:24

Сообщение rediffusion »

Flasher писал(а):Ссылка на статью дана в первом посте темы.
Уже 3 дня мучаюсь, пора спросить!
Ну перешёл на ваш сайт. Прочитал несколько раз статью (сайт кстати то работает то нет).

1. ¦
wscript.exe - перебросил в папку из "%Windir%\SysWOW64" в "TCHelper" (в которой всё, что скачал с вашего сайта).
2. ¦
Есть плагин "FileInfo".
[cut]Что же касается tlbid в <typelib>, а также clsid, progid в <comClass>, то эти вещи придётся смотреть в выше оговоренных плагинах либо других прикладных ПО. В плагине FileInfo это будет вкладка ActiveX/OCX. Как правило, сверху рабочей области страницы, где есть uuid(...), вместо троеточия в фигурных скобках записан tlbid, а снизу - clsid.[/cut]
1) Данные tlbid и clsid брать из вашего "TCScript.dll"? Этих uuid там целых 3 штуки.
Хорошо tlbid - он записан вверху.
Ну а этот clsid - в каком низу? Ниже самого первого? Или он самый последний? И да clsid - это тоже начинается на uuid (только ниже) или запись должна начинаться вот с таких строк "clsid" и потом что-то? Если да то такова слова нет "clsid".
3. ¦
А можно uuid брать с других .dll например тех которые расположены по вот такому пути "%Windir%\SysWOW64"?

P.S.
Кстати заметил что некоторые .vbs скрипты работают и без "TCHelper".
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

rediffusion
1. Вообще у TCScript.dll есть своя тема. Для каких целей он понадобился?
2-3. Это не для вас, а для WSH/COM/OLE-разработчиков.
rediffusion писал(а):Кстати заметил что некоторые .vbs скрипты работают и без "TCHelper".
Да неужели?
Последний раз редактировалось Flasher Сб мар 16, 2019 11:49, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
rediffusion
Сообщения: 34
Зарегистрирован: Пн фев 25, 2019 20:24

Сообщение rediffusion »

Flasher

"TCWSHelper" - и всё же весь день провозился! Эти все файлы мне пригодятся в дальнейшем? Стоит оставлять? Посоветуйте что оставить а что удалить?
DemoScripts\
wscript.exe.manifest
wscript.exe
TCWSHelp.exe
TCScript.sxs.manifest
TCScript.dll
SendKeystroke.txt
ReadMe.txt
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

rediffusion
Вопрос лишь в том, будут ли использоваться скрипты с указанием Хелпера. Советую забить TCScript.dll в поиск по разделу. Если что-то приглянётся, то оставлять стоит всё, кроме TCWSHelp.exe, который нужно перед удалением разрегистрировать.
DemoScripts\ — папка с тестовыми скриптами от старого Хелпера. Её (если есть желание изучать коды) логично оставить в первозданном виде и закинуть в %TC%\Scripts\Components\ с остальными файлами. Вместо Components логичны ещё такие варианты: ActiveX, OLEObjects.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Baltazar
Сообщения: 67
Зарегистрирован: Чт окт 01, 2015 17:02

Сообщение Baltazar »

На базе когда-то найденного в сети (а может и здесь на форуме) скрипта, предназначенного для копирования путей с кавычками

Код: Выделить всё

Option Explicit
Dim Delimiter
Delimiter = vbNewLine
Dim TempFile, TCS
Set TempFile = CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0), 1)
Set TCS = CreateObject("TCScript.Helper")

Dim StrInFile, FileNames, M1
FileNames = ""
Do While Not TempFile.AtEndOfStream
  StrInFile = TempFile.ReadLine
  StrInFile = chr(34) & StrInFile & chr (34)
  FileNames = FileNames & StrInFile & Delimiter
Loop
TCS.SetTextToClip(Left(FileNames, Len(FileNames) - Len(Delimiter)))
Set TempFile = Nothing
Set TCS = Nothing
Wscript.Quit
пытался путём обработки регекспами организовать для определённых ftp-серверов (с определёнными ip-адресами) подмену, дабы в конечном итоге при копировании получался локальный для ftp путь. Вот только в итоге обнаружилось, что через %L скрипту передаются пути без адреса сервера и регекспам тупо нечего обрабатывать. Как быть в данном случае ? Существует ли переменная или типа того, которая позволит использовать в скрипте адреса ftp-серверов и пустить их в обработку ? В vbs я не мастак, а уж тем более в vbs с нюансами TCScript :shock: .
Ответить