Вставка содержимого буфера в новый файл (текст/изображениe)

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

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

Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

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

Сообщение Flasher »

Мне, если честно, всё равно, кто чем в конечном счёте будет пользоваться, мой спич был о другом (о темах и вопросах, оставшихся без ответов не по причине их незнания).
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Lisabon
Сообщения: 147
Зарегистрирован: Чт фев 17, 2011 23:11

Сообщение Lisabon »

Есть скрипт.
Кто-нибудь может доработать скрипт? Чтобы, если в буфере юникод, то создаёт файл в кодировке юникод, а если символов юникод нет, то создаёт файл в кодировке ANSI.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Lisabon
Памятка по скриптам написана и прикреплена для того, чтобы её читали.
Во-первых, скрипты оформляются кодами, а не цитатами.
Во-вторых, если скрипт с нашего форума, его вообще не следует дублировать, достаточно ссылки.
Цитата в предыдущем посте заменена ссылкой.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Lisabon
Правил как-то у себя этот скрипт, вот как выглядит:

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

'======================================================================================
' Назначение: cоздание в активной панели файла с текстом из буфера обмена (при наличии)
' Условие:    пустой путь запуска
' Параметр:   <имя файла>
'======================================================================================
Set FSO = CreateObject("Scripting.FileSystemObject")
Dim WSH : Set WSH = CreateObject("WScript.Shell")
R = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407"
On Error Resume Next
A = WSH.RegRead(R) : If A > 0 Or Err.Number <> 0 Then WSH.RegWrite R, 0, "REG_DWORD"
Clip = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
If A > 0 Then WSH.RegWrite R, A, "REG_DWORD"
On Error Goto 0
If IsNull(Clip) Or Trim(Clip) = "" Then WSCript.Quit
With New Regexp
  .Pattern = "[^ !-‚-›‘’–—\u0080-\u00FF\u0400-\u04FF\u20A0-\u20CF\u2100-\u214F\w]"
  .Global = True : If .Test(Clip) Then Enc = True Else Enc = False
End With : Name = WScript.Arguments(0) : Ext = FSO.GetExtensionName(Name)
F = WSH.CurrentDirectory & "\" & FSO.GetBaseName(Name) : FN = F & "." & Ext
While FSO.FileExists(FN) Or FSO.FolderExists(FN)
  i = i + 1 : FN = F & " (" & i & ")" & "." & Ext
Wend : FSO.CreateTextFile(FN,,Enc).Write Clip
WSH.Exec "%COMMANDER_EXE% /A /O /S /L=""" & FN & """"
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Mailk
Сообщения: 251
Зарегистрирован: Сб янв 16, 2010 20:19

Сообщение Mailk »

Flasher
Ошибка у меня " Индекс выходит за пределы допустимого диапазона"
Код 800А0009
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Памятка в помощь.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Decor
Сообщения: 19
Зарегистрирован: Сб апр 22, 2017 16:12

Сообщение Decor »

Прошу у вас помощи по батнику в шапке...
Мне необходима эта функция, но до конца не разобрался.

Что я сделал:
1. Поместил nircmd и bat в папку коммандера.
2. В батнике прописал путь до nir - set nircmd=%COMMANDER_PATH%\nircmd.exe
3. В usercmd.ini создал пользовательскую команду:
[em_usercmd1]
cmd=%COMMANDER_PATH%\nir.bat
param="?%O"
menu=Вставка из буфера
4. В панели инструментов присвоил иконку для запуска em_usercmd1
Всё...

В результате, если изображение есть в буфере, по нажатию иконки оно не вставляется в текущую папку. Да и вообще никуда не вставляется. Лишь Тотал вываливает окошко "Введите параметр командной строки".
Но.., если запустить батник напрямую, то картинка создаётся в виде файла без расширения в папке, где находится сам батник. То есть сам-то батник работает исправно, но как сделать это для любой другой папки я разобраться не смог.

Что я сделал не так?
Как это можно исправить?
Может кто подскажет...
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Decor
1. См. п. 7 памятки подфорума.
2. %nircmd% лучше всюду взять в кавычки.
Точку и расширение нужно самому прописывать:
Формат изображения определяется nircmd по расширению
Только в конец 9-й строки почему-то автор не прописал их как умолчание для имени с датой. То же самое можно сделать для параметра, дописав их после %O.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Decor
Сообщения: 19
Зарегистрирован: Сб апр 22, 2017 16:12

Сообщение Decor »

Насколько вижу, везде %nircmd%
п. 7 прочитал про путь.
Всё равно не пашет...
Ну что ж.., как есть...
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

"вижу", "прочитал" = "не пашет". :?
"исправил", "очистил" = "запахало". 8)
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Decor
Сообщения: 19
Зарегистрирован: Сб апр 22, 2017 16:12

Сообщение Decor »

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

Сообщение Flasher »

А что ж ещё?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Decor
Сообщения: 19
Зарегистрирован: Сб апр 22, 2017 16:12

Сообщение Decor »

Ну ясно...
Если ломается двигатель в машине, то ради единственно ремонта,
я не буду глубоко изучать двигатель и подробности его ремонта,
а просто сдам в мастерскую, потому как необходимых знаний
для этого у меня недостаточно... В крайнем случае, спрошу совета
у знающих людей.

До конца довести этот батник я не смогу...
Не получается у меня, не хватает знаний в этой теме,
а внимательно изучать принципы написания скриптов,
использования параметров и прочее, а то есть то,
что мне никогда больше в жизни не пригодится,
на это нет времени и не считаю необходимым
в данном случае.

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

Сообщение Flasher »

Много букв, и все ни о чём. По существу предложенных исправлений ничего не написано. Одна вода.
Хотите результата, переходите к конструктиву. И изучать скрипты (окромя принципов использования, отражённых в памятке) тут не предлагалось.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить