[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Andrey_A, ХарВик, chip642  
Форум » • Total Commander • » ТЕСТИРОВАНИЕ СКРИПТОВ для TC » BufferGo.vbs - В буфер заданный текст (Буфер обмена)
BufferGo.vbs - В буфер заданный текст
Andrey_AДата: Среда, 29.02.2012, 18:45 | Сообщение № 1
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7167
Награды: 139
Репутация: 125
Аверин Андрей
Помещает в буфер обмена заданный текст
Используется NirCmd.exe - файл можете скачать в теме: утилиты NirCmd

Доступно только для пользователей


 
shveicarДата: Воскресенье, 21.10.2012, 13:46 | Сообщение № 2
Генерал-лейтенант

На сайте с: 18.05.2012
Город: Санкт-Петербург
Сообщений: 562
Награды: 10
Репутация: 23
Добрый день.
Скрипт конечно удобный, но на мой взгляд, не хватает возможности помещать в буфер обмена весь выделенный текст (все имена выделенных файлов) в текущей панели. Получается, что при таком выделении - копируется имя только верхнего файла, а остальные игнорируются.
Если такая возможность имеется, то прошу добавить ее в скрипт для расширения его функционала.
Особенно интересно чтоб работал параметр %О для всех выделенных файлов.
Спасибо.

И еще одно предложение: (но это видимо уже, должен быть отдельный скрипт) Часто приходится редактировать кнопки на панели задач, особенно пути к скриптам, ввиду их постоянного совершенствования. Поэтому, каждый раз воспользовавшись к примеру данным скриптам, или командой cm_CopyFullNamesToClip, приходиться удалять из пути строки вида
j:\8total\Utils\TCIMG_2.1\GroupDescripts.vbs
поскольку, в кнопке уже есть путь
%COMMANDER_PATH%
Нельзя ли придумать вариант, который будет удалять из копируемого в буфер текста - ненужный фрагмент (допустим отдельный изменяемый пункт в скрипте) или еще лучше, заменять определенный, постоянный фрагмент, - другим, то есть автоматом преобразовывать строку вида
j:\8total\Utils\TCIMG_2.1\GroupDescripts.vbs в
%COMMANDER_PATH%\Utils\TCIMG_2.1\GroupDescripts.vbs
Конечно, если речь идет об изменении одной кнопки, смысла создавать скрипт нет, но стараюсь периодически (раз в месяц) проводить обновления и вот тут то и начинается гимор...


Сообщение отредактировал shveicar - Воскресенье, 21.10.2012, 14:22
 
Andrey_AДата: Воскресенье, 21.10.2012, 14:56 | Сообщение № 3
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7167
Награды: 139
Репутация: 125
Аверин Андрей
Quote (shveicar)
помещать в буфер обмена весь выделенный текст

Для этого есть другой скрипт, который делает с именами что хошь
CopyLineInPathToClip.au3 - Преобразование путей выделенных файлов в различные формы (строки) и отправка полученного в буфер обмена

Quote (shveicar)
Особенно интересно чтоб работал параметр %О для всех выделенных файлов.


Копировать ЧИСТЫЕ ИМЕНА CTRL+SHIFT+N

Доступно только для пользователей

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

Этот функционал добавлю в утилиту TCIMG, там поддержка буфера уже есть , но позже - накопилось 4 интересных функции, которые надо внедрить - как соберусь так сразу всё


 
shveicarДата: Воскресенье, 21.10.2012, 15:50 | Сообщение № 4
Генерал-лейтенант

На сайте с: 18.05.2012
Город: Санкт-Петербург
Сообщений: 562
Награды: 10
Репутация: 23
Ок, Спасибо.
 
Demok1980Дата: Вторник, 14.01.2014, 10:36 | Сообщение № 5
Рядовой

На сайте с: 14.01.2014
Город: Волгоград
Сообщений: 2
Награды: 0
Репутация: 0
Здравствуйте!
Я пытаюсь начать писать скрипты. Пока освоил только метод SendKeys.
Сейчас мне нужно написать скрипт, который просто помещал бы некоторый текст в буфер обмена.
Много просмотрел в Интернете статей, форумов и наткнулся на Ваш.
Здесь нашёл готовый скрипт BufferGo.vbs
Скачал, запустил ничего не происходит.
Не пойму, что сделал не так? Утилиту NirCmd.exe - скачал и поместил в папку Windows.

Что ещё нужно, чтобы ' "Привет" - попал в буфер как "Привет"
И ещё сразу один вопрос: как при помощи VBS загнать в буфер текущую дату?
Знаю, что есть встроенная функция Date, которая возвращает текущую дату.

Спасибо.
 
Andrey_AДата: Среда, 15.01.2014, 04:16 | Сообщение № 6
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7167
Награды: 139
Репутация: 125
Аверин Андрей
Цитата Demok1980 ()
Утилиту NirCmd.exe - скачал и поместил в папку Windows.

Значит необходимо изменить путь. В шапке темы КОЛЛЕКЦИЯ СКРИПТОВ есть описание "Как использовать скрипты"

Для отправки в буфер обмена может использоваться любая утилита, которая имеет умеет работать с буфером:
- Через NirCmd
Доступно только для пользователей

Через TCIMG

Код
' отправить слово "Привет" в буфер обмена
Dim WSH : Set WSH = WScript.CreateObject("WScript.Shell")
TCIMG = GetPath("%COMMANDER_PATH%\TCIMG.exe") ' путь до утилиты TCIMG
Text = "Привет"
WSH.Run Chr(34) & TCIMG & Chr(34) & " clpup=" & Text , 2,True
Function GetPath(pPath) : GetPath = WSH.ExpandEnvironmentStrings(pPath) : End Function


Код
' отправить дату в буфер обмена  
Dim WSH
Set WSH = WScript.CreateObject("WScript.Shell")
TCIMG = GetPath("%COMMANDER_PATH%\TCIMG.exe") ' путь до утилиты TCIMG
WSH.Run Chr(34) & TCIMG & Chr(34) & " clpup=" & Date , 2,True
Function GetPath(pPath) : GetPath = WSH.ExpandEnvironmentStrings(pPath) : End Function


Рекомендую начать изучать Autoit - он более функционален.


 
Demok1980Дата: Четверг, 23.01.2014, 21:18 | Сообщение № 7
Рядовой

На сайте с: 14.01.2014
Город: Волгоград
Сообщений: 2
Награды: 0
Репутация: 0
Спасибо огромное!
Всё получилось. good

Добавлено (23.01.2014, 21:18)
---------------------------------------------
Доброго времени суток!

Подскажите, пожалуйста, можно ли сравнить содержимое буфера обмена с каким-нибудь значением, чтобы можно было создать условие.
Например, есть константа 10, а в буфере содержится число 5. Если значение буфера рано константе, то продолжение выполнения, нет - завершение работы.

Если такое возможно, то как это реализовать в программном коде VBS?

Спасибо.

 
Andrey_AДата: Четверг, 23.01.2014, 22:05 | Сообщение № 8
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7167
Награды: 139
Репутация: 125
Аверин Андрей
Цитата Demok1980 ()
сравнить содержимое буфера обмена


Код
Clip = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
If Clip = "5" Then
   MsgBox "Переменная Clip =" & vbNewLine & "<" & Clip & ">"
Else
   MsgBox  "упс"
End If


 
Форум » • Total Commander • » ТЕСТИРОВАНИЕ СКРИПТОВ для TC » BufferGo.vbs - В буфер заданный текст (Буфер обмена)
  • Страница 1 из 1
  • 1
Поиск:

Интеллектуальные права и отказ от ответственности