Описание функции


ClipGet

Возвращает текст из буфера обмена.

ClipGet()

Возвращаемое значение

Успех:Возвращает строку, содержащую текст из буфера обмена
Ошибка:Устанавливает значение @error
1 - буфер обмена пуст.
2 - буфер обмена содержит не текстовое значение.
3, 4 - невозможно получить доступ к буферу обмена.

Примечания

Если в буфере обмена содержится несколько файлов/каталогов, их имена будут возвращены, как текст, разделённый символом @LF.

Функцию можно подключить через команду exect

См. также

ClipPut

Примеры:
 Как создать кнопку?

$var_s=ClipGet()

exect=$var_s1=ClipGet()||$var_bb=ClipPut('текст~~в~~буфер~~обмена')||$var_s2=ClipGet() GLOBALEXECT<a> ;; пример работы с буфером обмена

exect=$var_s=ClipGet()||$var_i=StringInStr('$var_s','\')||MsgBox(4096,'Результат','$var_i') GLOBALEXECT<a> ;; пример проверки нахождения в буфере обмена пути или ссылки, проверяется символ "\" , переменная $var_i либо 0 либо число больше 0

exect=$var_s=ClipGet()||$var_i=StringInStr('$var_s','\') <IF> $var_i = 0 <THEN> brwsr=$var_s <ELSE> openf=$var_s||x||explorer<open> <ENDIF> ;; открыть в зависимости содержимого буфера обмена: если ссылка, то в браузере, если путь то в редакторе

exect=$var_i=Execute(ClipGet())||MsgBox(4096,'Результат','$var_i') bufsr=##$var_i ;; выполнить математическое выражение в буфере обмена, к примеру: (1+2)*3+2^3

exect=$var_i=Execute(ClipGet()+1)||MsgBox(4096,'Результат','$var_i') bufsr=##$var_i ;; прибавить к числу в буфере обмена единицу

exect=_ViewValues(ClipGet()) ;; просмотр содержимого буфера обмена

exect=$var_n1=StringLen(ClipGet()) GLOBALEXECT<a> ;; записать в переменную $var_n1 количество символов строки буфера обмена

exect=$var_n1=StringLen(ClipGet())*52 GLOBALEXECT<a> ;; записать в переменную $var_n1 количество символов строки буфера обмена, умноженное на 52

exect=$var_k1=StringLen(ClipGet())*52&'x85' GLOBALEXECT<a> ;; записать в переменную $var_n1 количество символов строки буфера обмена, умноженное на 52 добавив строку "x85"

exect=$var_s=ClipGet() <IF> $var_s <> 320x240 <THEN> exect=$var_s='100x100' <ENDIF> GLOBALEXECT<a> ;; если содержимое буфера обмена не равно строке 320x240, то переменная $var_s=100x100

exect=$var_s=ClipGet()||$var_n=StringRegExp('$var_s','(\d{1,4}x\d{1,4})') <IF> $var_n = 0 <THEN> exect=$var_s='100x100' <ENDIF> exect=_ViewValues('$var_s') ;; если содержимое буфера обмена не является строкой вида 0x0 или 00x00 или 000x000 или 0000x0000 (где вместо нуля может быть любая цифра), то переменная $var_s=100x100

exect=$var_s0=ClipGet()||$var_s1=StringRegExp('$var_s0','(\d{1,4}x\d{1,4})')=0?'100x100':'$var_s0'||_ViewValues('$var_s1') ;; если содержимое буфера обмена не является строкой вида 0x0 или 00x00 или 000x000 или 0000x0000 (где вместо нуля может быть любая цифра), то переменная $var_s=100x100

exect=$var_s1=StringRegExp(ClipGet(),'(\d{1,4}x\d{1,4})')=0?'100x100':ClipGet()||_ViewValues('$var_s1') ;; если содержимое буфера обмена не является строкой вида 0x0 или 00x00 или 000x000 или 0000x0000 (где вместо нуля может быть любая цифра), то переменная $var_s=100x100

imgpr=1 exect=$var_s=ClipGet()||$var_sz=(_ArrayToString(_ArrayPermute(StringSplit('$var_s','"''"',2)),'~~',1)) bufsr=##$var_sz||formt<sps36> ;; записать в буфер обмена анаграмму слова, находящегося в буфере обмена и разбить по 10 слов в строке. Если в слове более 10 символов, то для создание анаграммы понадобится длительное время

imgpr=1 exect=$var_sz=(_ArrayToString(_ArrayPermute(StringSplit(ClipGet(),'"''"',2)),'~~',1)) bufsr=##$var_sz||formt<sps36> ;; записать в буфер обмена анаграмму слова, находящегося в буфере обмена и разбить по 10 слов в строке. Если в слове более 10 символов, то для создание анаграммы понадобится длительное время
exect=$var_s=NOT~~ClipGet()?_Exit():0 ;; если буфер обмена пуст, то завершение работы (можно вставлять перед серией команд для проверки)

exect=$var_s=NOT~~ClipGet()?_Exit():'Буфер~~не~~пустой'||_ViewValues('$var_s') ;; если буфер обмена пуст, то завершение работы (можно вставлять перед серией команд для проверки)

exect=$var_ac=StringRegExp(ClipGet()&@CR&@CR,'(?m)^([^\r\n]*)',3)||$var_ab=StringSplit('TOTALCMD#BAR#DATA|%%COMMANDER_PATH%%\TCIMG.exe|#|Wcmicons.dll,0|','|',2)||$var_ab[2]=$var_ac[0]||$var_ab[4]=$var_ac[1]||_ArrayToClip($var_ab,@CRLF) ;; из 2-х строк в буфере обмена (команда и описание) создать кнопку TCIMG для Total Commander и записать в буфер обмена

exect=_ViewValues(ClipGet(),'Просмотр~~буфера~~обмена',700,400) ;; просмотр содержимого буфера обмена с заданными размерами окна

exect=_ViewValues(StringRegExp(ClipGet(),'(?m)^([^\r\n]*)',3)) ;; разбить содержимое буфера обмена в массив построчно и просмотр массива

exect=_ViewValues(ClipGet(),'Просмотр~~буфера~~обмена',600,500,0,0,-1,14,'FFFF00','050000') ;; просмотр содержимого буфера обмена

exect=$var_aa=_ArrayCreate(1,2) slist=PS<$f70//1//0//bar> forpgs <FOR> 1 <TO> GLOBALSLIST<0> sends=GLOBALSLIST<:INDEX:>||#Sbar5||@CRLF!!,~~ exect=$var_s='GLOBALSENDS<1>'=''''?'''':_ArrayAdd($var_aa,'GLOBALSLIST<:INDEX:>'&'~~'&'GLOBALSENDS<1>') <NEXT> exect=||_ViewValues($var_aa,'Поиск~~фразы~~'&ClipGet()&'~~в~~командах') ;; отобразить в таблице номера кнопок и имена панелей инструментов Total Commander, в которых в команде присутствует фраза из буфера

iniwr=%%TCIMG_INI%%||Commands||"%O"||ClipGet() ;; записать в TCIMG.ini©Commands в секцию [Commands] в ключ именем файла под курсором, значение из буфера обмена

exect=$var_item=ClipGet() folds="%p"||[combo=BOX_XX] ;; пример передачи буфера обмена в параметр [combo]

exect=$var_item=StringRegExpReplace(ClipGet(),'[\r\n]+','|') folds="%p"||[combo=BOX_XX] ;; пример передачи списка из буфера обмена в параметр [combo]

exect=_ViewValues(ClipGet())||redit<1> ;; просмотр содержимого буфера обмена, класс элемента просмотра RichEdit

exect=$var_s=_StringConv(ClipGet(),'#Q')||_ViewValues('$var_s') ;; просмотреть кодированное в HEX содержимое буфера обмена

bufsr=##<info=x5> exect=ToolTip(ClipGet(),800,500,'Информация',1,1)||Sleep(5000) ;; записать в буфер обмена количество файлов в активной панели и отобразить в информационном окне

exect=$var_a=StringSplit(ClipGet(),Null,2)||_ViewValues($var_a) ;; пример разбития содержимого буфера обмена посимвольно

exect=$var_a=StringSplit(ClipGet(),Null,2)||$var_a=_ArrayUnique($var_a)||_ViewValues($var_a) ;; пример разбития содержимого буфера обмена посимвольно и удаления дубликатов

exect=$var_a=StringSplit(ClipGet(),Null,2)||$var_a=_ArrayUnique($var_a) asave=var_a||"%pListSym.txt"||upd<1>||all|| ;; записать в файл ListSym.txt в активную панель уникальные символы из содержимого буфера обмена

lists=%Z%WL||##path<4> exect=$var_s=_GTR(ClipGet(),'ru|en',1,1)||_ViewValues('$var_s') ;; перевести выделенные имена объектов без расширения в Yandex (требуется подключение к интернету)

exect=$var_s=ClipGet()||$var_i=StringRegExp(ClipGet(),'([^A-Za-z\d])',0)?MsgBox(48+4096,'Результат','Число~~в~~буфере~~не~~является~~хэшем.')&_Exit():1||$var_i=StringLen('$var_s')||$var_n=$var_i=8?3:($var_i=32?1:($var_i=64?6:($var_i=128?8:MsgBox(48+4096,'Результат','Число~~в~~буфере~~не подходит~~под~~условие~~проверки.')&_Exit())))||$var_path=$var_n&'%P%N' <IF> <info=f$var_path|1//> = $var_s <THEN> exect=MsgBox(64+4096,'Результат','Контрольные~~суммы~~совпадают.') <ELSE> exect=MsgBox(48+4096,'Результат','Контрольные~~суммы~~не~~совпадают.') <ENDIF> ;; сравнить контрольные суммы файла под курсором и буфера обмена, в зависимости от длины строки буфера: если 8, то сравнение происходит по CRC32, если 32 - MD5, если 64 - SHA256, если 128 - SHA512, в сплывающем окне с ручным закрытием, сообщить результат

tcimg=$cm498 bufsr=##wintxt<1|TBUTTONCHANGEDLG|0|+tcTCCUZBAR1|1|#hide#> lists=cliplist||##path<0|0|1> iniwr=%%COMMANDER_PATH%%\Wincmd.ini||Buttonbar||Buttonbar||ClipGet() rstart ;; сделать текущую панель инструментов по умолчанию при запуске

iniwr=%%TCIMG_PATH%%\TCIMGU.ini||Commands||"%O"||ClipGet() ;; добавить в TCIMGU.ini в секцию Commands ключ именем файла под курсором и значением из буфера

global copyy=%%TCIMG_PATH%%\TCIMGGO.exe||x||<input=Новый~~лаунчер|Введите~~имя~~для~~нового~~лаунчера||300|120> iniwr=%%TCIMG_PATH%%\TCIMGU.ini||Commands||<info=o72GLOBALCOPYY<1>>||ClipGet() ;; создать копию файла TCIMGGO.exe с именем вводимом в диалоге и присвоении ему в секции Commands значение из буфера

lists=%Z%WL||##path<4>||&&(?i)[^a-zа-яё\s]!!~~||#G7||&&(?i)([a-za-яёЁ]+).*!!$1 exect=ToolTip(ClipGet(),<info=x165>,<info=x166>,'i',1,1)||Sleep(600) ;; копировать первые слова имен выделенных объектов и отобразить в информационном окне

lists=%Z%WL||##path<4>||&&(?i)[^a-zа-яё\s]!!~~||#G7||&&(?i)([a-za-яёЁ]~~[a-za-яёЁ]+).*!!$1 exect=ToolTip(ClipGet(),<info=x165>,<info=x166>,'i',1,1)||Sleep(600) ;; копировать первые два слова имен выделенных объектов и отобразить в информационном окне

exect=$var_s=StringRegExp(ClipGet(),'(?i)^[a-z]',0)?'1,2':'2,1' sends=-1!!-1||#L$var_s GLOBALSENDS<a> ;; если в буфере обмена первая буква кириллицы, то поменять 1-ю и 2-ю строки

bufsr=^^||formt<54,63,U16> infht=-1||Образец~~буфера||@$f250\Files\Htm\Example2.htm||400||220||10||10||1||244 ;; вывести в информационном окне строки из буфера (в шаблоне указанна вставка ClipGet())

exect=$var_a=StringSplit(ClipGet(),@CR,2)||_ViewValues($var_a) ;; построчный просмотр буфера обмена в таблице

exect=$var_s=_GTR(ClipGet(),'en|ru',1,1) textv=$var_s ;; перевести фразу из буфера обмена с английского на русский в Yandex (требуется подключение к интернету)

exect=Run(@ComSpec&'~~/k~~'&ClipGet()) ;; вызов консоли и передача параметров из буфера обмена (консоль остаётся открытой)

exect=$var_a=StringToASCIIArray(ClipGet())||_ViewValues($var_a) ;; отобразить в таблице коды ASCII символов строки буфера обмена

exect=$var_item=ClipGet() shape=1 sends=@[combo=BOX_U29.1]??1||^^~~ renms=%WL||GLOBALSENDS<1>||bkt<[combo=BOX_U5]!!!!!![combo=BOX_U4]!!1> renms=$GLOBALRENMS1||#G7||upd<1> ;; переименовать выделенные элементы в имя из буфера обмена, включается счетчик, выбор разделителя и разрядность счетчика в диалоговом окне

aends=-1??-1||&&([^=]+)(=)(.+)!!$1@CRLF$3 exect=$var_stroka=##GLOBALAENDS<1> GLOBALAENDS<c2> iniwr=$f257||Russian||$var_stroka||ClipGet() ;; добавить в TCIMGU.lng в секцию [Russian] содержимое буфера (ключ=значение)

creat=$f250||TCIMGU.lng||code<1>||owrite<8> aends=-1??-1||&&([^=]+)(=)(.+)!!$1@CRLF$3 bends=$GLOBALAENDS??-1||?T|p2#2|d,1:-1 cends=$GLOBALAENDS??-1||?T|p1#2|d,1:-1 <FOR> 1 <TO> GLOBALBENDS<0> GLOBALCENDS<c:INDEX:> iniwr=$f257||Russian||GLOBALBENDS<:INDEX:>||ClipGet() <NEXT> ;; добавить в TCIMGU.lng в секцию Russian шаблоны диалоговых окон из буфера обмена

exect=ClipPut(BinaryToString(StringToBinary(ClipGet(),2))) ;; декодировать в буфера обмена строку UTF-16 LE 1200 в ANSI 1251

vends=x||?V|##|Execute(StringRegExpReplace(ClipGet(),'(.)','$1+')&0) GLOBALVENDS<a> ;; суммировать номера числа из буфера обмена

exect=$var_i=Number(ClipGet())||$var_n=Round($var_i)+Mod(Round($var_i),2)||_ViewValues($var_n) ;; если в буфере обмена число нечётное или с плавающей точкой, то округлить его до ближайшего чётного числа в большую сторону

exect=$var_i=Number(ClipGet())||$var_n=Floor($var_i)-Mod(Floor($var_i),2)||_ViewValues($var_n) ;; если в буфере обмена число нечётное или с плавающей точкой, то округлить его до ближайшего чётного числа в меньшую сторону

exect=MsgBox(4096+64,'Результат','Фраза~~из~~буфера~~обмена~~встречается~~в~~файле~~'&(StringSplit(FileRead('%P%N'),ClipGet(),1)[0]-1)&'~~раз(а)') ;; получить количество раз встречающейся фразы из буфера обмена в файле под курсором

exect=SplashTextOn('Заголовок',StringReplace(ClipGet(),'&','&&'),200,50)&Sleep(3000)&SplashOff() ;; пример окна с текстом из буфера обмена (удвоение для корректного отображения символа "&")

<PRESW=13> keybd=0~~^c exect=$var_s=StringRegExp(StringLeft(ClipGet(),1),'[а-яё]')?_CmdCm('bufsr=@@QWERTYinENG'):_CmdCm('bufsr=@@QWERTYinRUS') keybd=0~~+{INSERT} <PRESW=1B> :EXIT: <PRESWEND> ;; при нажатии на клавиши "Pause" проверяет буфер обмена: если первая буква русская, то переводит всё содержимое буфера обмена в клавиатурные английские буквы, если нет, то наоборот, затем вставляет текст в активный окно программы

funau=GetInfoSite|ClipGet() GLOBALFUNAU1<a> ;; получение содержимого страницы интернета через функцию GetInfoSite (ссылка из буфера обмена)

funau=GetInfoSite|ClipGet()|POST|0 GLOBALFUNAU1<a> ;; получение содержимого страницы интернета через функцию GetInfoSite с дополнительной информацией (ссылка из буфера обмена)

textt=%P%N||&&(?m)(^Пример1.+$)!!$1|ClipGet()!!1||upd<1> ;; в текстовом файле под курсором найти заданную строку "Пример1" и вставить за ней через разделитель "|" строку из буфера обмена

textt=%P%N||&&(?m)^(\h+)('turbo.to'.*)$!!$1$2@CRLF$1,'ClipGet()'!!1||upd<1> ;; в текстовом файле под курсором найти заданную строку 'turbo.to' и вставить за ней строку из буфера обмена сохраняя начальные отступы пробелов/табов, относительно 1-й строки

textt=%P%N||&&(?m)^(\h+'turbo.to'.*)$([\r\n\h,]*)!!$1$2'ClipGet()'$2!!1||upd<1> ;; в текстовом файле под курсором найти заданную строку 'turbo.to' и вставить за ней строку из буфера обмена сохраняя начальные отступы пробелов/табов, относительно 2-й строки

exect=StringReverse(ClipGet()) GLOBALEXECT<c> ;; реверсирование содержимого буфера обмена

sends=%P%N??-2 GLOBALSENDS<b> sends=$GLOBALARRAY1??-1||@CRLF!!, textt=%P%N||?T|e,GLOBALSENDS<1>!!##ClipGet() ;; в файле под курсором строку(и) выбранные в окне с чекбоксами заменить на содержимое буфера обмена

shape=4 dilog=[combo=BOX_U3][input=BOX84] textx=PS<"%p"//1//-1//GLOBALCOMBO<1>>||?T|c,GLOBALINPUT<1>!!0!!(.+)!!ClipGet() ;; в файлах активной панели (с рекурсией) заменить указанную строку на содержимое буфера обмена (имя с расширением файла и номер строки вводится в диалоговом окне)


© Аверин Андрей для Total Commander Image  Averin-And@yandex.ru