Pull to refresh

Работа с буфером обмена

Reading time 4 min
Views 17K
.NET *
Прочитав заголовок, Вы, наверное, очень удивились.
Ведь казалось бы, все предельно просто — есть объект Clipboard, есть его статические методы (вроде SetText/SetData и GetText/GetData), чего еще для счастья нужно?

Однако, на практике все просто лишь до тех пор, пока Вы копируете или вставляете только базовые объекты, вроде текста или bitmap-картинки. Что же случается, когда нужно оперировать более сложной структурой?

Лично я недавно столкнулся с необходимостью копировать «гиперссылки», которые потом должны легко вставляться в Word/Outlook/любую другую программу. Причем, не полагаясь на то, что программа-получатель сама определит во вставленном тексте ссылку и не преобразует в нужный формат. Поэтому и рассмотрим работу на примере гиперссылки (алгоритм действий для любого другого формата будет аналогичным).

Итак, с чего же начать?
Читать дальше →
Total votes 22: ↑20 and ↓2 +18
Comments 15

Работа с буфером обмена в Linux: теория и практика

Reading time 5 min
Views 100K
Configuring Linux *

Совсем немного теории


Copy and PasteИсторически сложилось так, что в X Window System (X11, — оконная система для Linux, UNIX) существует два буфера обмена.

Один из них (clipboard) похож на буфер обмена в Windows — при нажатии на Ctrl+Insert или Ctrl+C выделенный фрагмент (текст, картинка, файл) копируется в буфер обмена, а при нажатии на Shift+Insert (или Ctrl+V) — вставляется из него. Следует заметить, что во многих программах эти сочетания зарезервированы для иных целей и приходится пользоваться другими — например, в терминале сочетание Ctrl+C используется для завершения процесса, а для работы с буфером обмена используются сочетания Ctrl+Shift+C для копирования и Ctrl+Shift+V для вставки.

Второй буфер (primary) является специфичным для оконной системы X11. Выделенный текст незамедлительно попадает в буфер primary, и для того, чтобы вставить скопированный текст, достаточно лишь нажать среднюю кнопку мышки (колёсико). У кого в наличии не имеется трёхкнопочной мышки, а так же владельцам ноутбуков с тачпадами следует одновременно нажать левую и правую кнопки мышки для вставки текста.

Перейти к практике...
Total votes 100: ↑94 and ↓6 +88
Comments 99

Несколько буферов обмена в Linux

Reading time 2 min
Views 1.7K
Lumber room
Захотелось сделать так, чтобы можно было сохранять хоткеями выделенный текст в несколько разных буферов обмена. А потом также хоткеями вставлять текст оттуда..
Читать дальше..
Total votes 65535: ↑32767.5 and ↓32767.5 0
Comments 6

Полноценный Copy & Paste в iPhone

Reading time 1 min
Views 429
Lumber room
Наконец-то появился полноценный copy & paste в iPhone.
Нет, чудо не произошло, и компания Apple не одумалась и не выпустила обновленную прошивку с данной возможностью, однако на то есть энтузиасты и jailbreak.
Недавно в Cydia появилась программа ℏClipboard, которая позволяет добавить фейковую раскладку клавиатуры.
Активируется она так: Settings -> General -> Keyboard -> International Keyboards, выставляем переключать напротив ℏClipboard в положение On.
Теперь во любом приложении просто переключаем раскладку клавиатуры до активации вкладки нашей программы и наслаждаемся тем, чего так давно не хватало!

iphone-app-hclipboard-11
оригинал
Total votes 11: ↑3 and ↓8 -5
Comments 10

Перевод Вставка-копирование текста в буфер обмена на Javаscript — два способа с Flash 10

Reading time 3 min
Views 3.3K
Lumber room
В Flash 10, как оказалось, нельзя программно самому копировать текст в буфер обмена. До его выхода был очень удобный и элегантный способ, например, «Копировать код для вставки изображения в блог» / «Copy embed code» сразу в буфер пользователя. Я не говорю про IE, в котором это всегда раньше было реализуемо (не знаю как в ИЕ8) с помощью javascript-вызова window.clipboardData.setData('text',text);
Речь о том, как это сделать для пользователей альтернативных браузеров.
Читать дальше →
Total votes 12: ↑11 and ↓1 +10
Comments 5

UserJS. Часть 2: Трюки

Reading time 7 min
Views 3.5K
Opera
В этой статье я опишу способ переиспользования кода, а также различные трюки, специфичные для userjs.

Другие статьи серии:
Читать дальше →
Total votes 16: ↑13 and ↓3 +10
Comments 2

UserJS. Часть 4: libretki framework

Reading time 8 min
Views 1.6K
Opera
libretki — это framework, призванный упростить создание userjs и предоставить уже готовый набор полезных функций.

Другие статьи серии:

Ядро



Ядро системы представлено файлом libretki.core.js, который является развитием loader.js из второй статьи. Ядро также предоставляет некоторые базовые функции. Если все, что Вам нужно — это возможность подключать другие файлы, ядра достаточно.

Типовой скрипт с использованием libretki:
if (! ('libretki' in window)) { libretki = { __scripts: [] }; }
libretki.__scripts.push({
    name: 'habrahabr.example',
    requires: ['libretki.utilities'],

    init: function(unsafe) {
      // some code...

      libretki.core.namespace('habrahabr.example', {
        func: function() { /* ... */ },
      });
    }
});


Читать дальше →
Total votes 31: ↑27 and ↓4 +23
Comments 40

Копируем в буфер обмена в FireFox 3.5 и IE8

Reading time 4 min
Views 33K
JavaScript *
С приходом 10го флеша, ФФ3.5 и ИЕ8, на многих сайтах перестала работать волшебная кнопка «Скопировать в буфер». Перестала работать из соображений безопасности (что бы когда заходишь на какой либо сайт, у тебя в буфере не появилась левая ссылка, или рекламный текст, или злоумышленники не применили это фичу в других целях).
Как же с этим бороться?
Total votes 34: ↑30 and ↓4 +26
Comments 31

Windows Phone 7: прощай, поддержка copy-paste

Reading time 1 min
Views 1.1K
IT-companies
Translation
imageГотовы к новому копипаст-холивару, который будет волновать массы еще год или два? Отлично. Microsoft только что рассказала в рамках вопросов и ответов на MIX10, что ни при каких условиях WP7 Series не будет поддерживать буфер обмена… так-то. Довольно иронично, что в старой доброй WM данный функционал был с начала времен, не так ли? Конечно, возможно всякое, и сотрудники компании уже говорили, что они думают о некоторых улучшениях, которые не вошли в первый релиз платформы, но не ожидайте, что на первых вышедших (и купленных вами =) ) телефонах вы будете копировать что-либо между приложениями.

Microsoft уже стопроцентно и бесповоротно подтвердила, что WP7 Series не будет поддерживать копирование и вставку. В API работы с текстом системы встроен сервис обнаружения данных (data-detection), который будет распознавать телефонные номера и адреса, но, по словам Microsoft, большинству пользователей, включая пользователей Office, на самом деле не нужен функционал буфера обмена. Ну что ж… мы почтительно не согласны? Конечно, на этом и успокоимся.
Total votes 101: ↑85 and ↓16 +69
Comments 278

Копируем формулу из Windows 7 Math Input Panel в буфер обмена с помощью Powershell 2.0

Reading time 1 min
Views 538
Lumber room
MathML.ps1
Add-Type -AssemblyName PresentationCore
$dataObject = [Windows.Clipboard]::GetDataObject()
$memoryStream = $dataObject.GetData("MathML")
if ($memoryStream) {
    $streamReader = [System.IO.StreamReader]($memoryStream)
    $mathML = $streamReader.ReadToEnd()
    [Windows.Clipboard]::SetText($mathML)
}

Запуск
powershell.exe -noprofile -sta -command .\MathML.ps1
Total votes 8: ↑6 and ↓2 +4
Comments 0

Glippy — простой clipboard менеджер

Reading time 1 min
Views 3.5K
Configuring Linux *
Здравствуйте, уважаемые хабражители. Совсем недавно я перешел на Ubuntu Linux и постепенно привыкаю к обилию хорошего и полезного софта для этого дистрибутива. И сегодня я хотел бы рассказать о небольшой и удобной программке — Glippy.

Glippy это простой менеджер буфера обмена для Gnome. Он очень прост и удобен и именно поэтому я его и выбрал (или потому что я другого просто не нашел).

Итак, Glippy висит в трее и следит за буфером обмена.

image
Читать дальше →
Total votes 32: ↑24 and ↓8 +16
Comments 27

jQuery плагин для добавления ссылок в буфер обмена

Reading time 3 min
Views 19K
jQuery *
У многих из нас есть блоги, интернет-магазины, новостные сайты etc… Понятное дело стараемся опубликовывать оригинальный контент, но что же происходит после появления контента в интернетах, его конечно же просматривают и если он интересный, пользователи иногда обмениваются ссылкой на страничку с контентом. Новые переходы на нужную страницу и нам очень хорошо, а что если наш отличный текст просто взяли скопировали и скинули в аську\скайпик\почту — наш текст ушел, а перехода нету :(.

addtocopy plugin

Запретить копирование, это очень неправильно, весело и смешно ©, но мы ведь можем при копировании добавить в буфер обмена ссылку на наш сайтик. Рассмотрим как же нам это лучше сделать:

Читать дальше →
Total votes 101: ↑80 and ↓21 +59
Comments 49

Получение через IMoniker объекта Range, скопированного из Excel в буфер обмена

Reading time 5 min
Views 1.9K
.NET *
Год назад в нашей компании возникла задача написать на C# приложение для импорта данных из Excel, в том числе с помощью буфера обмена и drag'n'drop. Excel при копировании в буфер кладет туда данные в нескольких форматах. Часть из них стандартные типа CF_TEXT, CF_CSV и т.п. Однако, если нужно иметь дело с объединенными ячейками и прочими радостями, то может понадобиться получить доступ непосредственно к объекту Range, который был перетащен или скопипастен. Для этого нужно воспользоваться форматом CF_LINKSOURCE и лежащим в нем интерфейсом IMoniker. О том, как это сделать, читайте под хабракатом.
Читать дальше →
Total votes 30: ↑22 and ↓8 +14
Comments 0

COM-автоматизация OpenOffice: Чтение содержимого буфера обмена

Reading time 5 min
Views 3K
PHP *
Sandbox

Часть первая (надеюсь, что не последняя)


Долгое время для меня OpenOffice оставался вещью-в-себе. Я знал, что он прекрасно автоматизируется питонами и бейсиками, но, вот, для PHP никак не мог найти подходящего инструмента. Совершенно случайно обнаружил такую интересную возможность OpenOffice: получение доступа к содержимому буфера обмена Windows. Тогда мне очень не хватало возможности писать простые CLI-скрипты, обрабатывающие текст в буфере на языке PHP. Поэтому я решил основательно разобраться, как можно рулить опен-офисом с помощью рнр из-под винды.
и, вот, что мне удалось накопать
Total votes 27: ↑19 and ↓8 +11
Comments 5

Небольшой лайфхак с редактированием буфера обмена

Reading time 4 min
Views 11K
VIM *Emacs *
Я часто сталкиваюсь с такой ситуацией: пишу себе спокойно текст в чем-то (скажем, письмо в веб-интерфейсе гмейла), и вдруг, в какой-то момент возникает необходимость что-то переделать… и случается раздражение. Случается оно от того что редактирование в браузере (да и много где еще) не предполагает некоторых привычных для программиста удобств, вроде автоматической замены, регулярных выражений и макросов. При этом, вроде бы и не сложно скопировать текст в буфер и отредактировать его в правильном редакторе (Vim, Emacs, ...), но очень уж не хочется отрываться от контекста и совершать какие-то телодвижения, отвлекающие от текущей задачи… И вот, я уже расставляю отступы (нумерую список, заменяю слово, ...) вручную — результат достигнут, да и времени потрачено совсем не много, но осадочек остался…

Знакомая ситуация? Если ответ «да», в вашей операционной системе работает bash и ваша первая ассоциация к слову «редактор» это не «Microsoft Office» значит нам есть что обсудить под катом :)

Читать дальше →
Total votes 63: ↑57 and ↓6 +51
Comments 28

Доступ к буферу обмена операционной системы из веб-приложения

Reading time 5 min
Views 24K
Silverlight *
Sandbox
Возможно, вам понадобится использование буфера обмена операционной системы прямо со страницы веб-приложения в браузере. Немного изучив информацию можно обнаружить, что сделать это напрямую со страницы HTML средствами javascript невозможно в связи с политикой безопасности, конкретно, запись в него может быть использована в нехороших целях злоумышленниками. Обходных путей несколько, о них можно найти много ссылок и примеров.
Читать дальше →
Total votes 19: ↑13 and ↓6 +7
Comments 12

Сервис хранения заметок Clipboard.com закрывается

Reading time 2 min
Views 3.5K
Hosting


Сервис Clipboard, запущенный 2 года назад (13 октября 2011 г.), закрывается. Salesforce.com подписало соглашение о приобретении ими Clipboard.com Об этом было объявлено в блоге компании 9 мая.

Пользоваться Clipboard можно будет до 30 июня; все заметки пользователей будут доступны для экспорта в архив, после чего сервис полностью удалит весь контент.
Подробнее
Total votes 9: ↑9 and ↓0 +9
Comments 11

Пишем виртуальный буфер обмена на C#

Reading time 16 min
Views 33K
Programming *.NET *C# *
Sandbox
VirtualClipBoard Очень много приходится работать с текстовыми данными, такими как код, статьи, посты и т.д. В то время когда жил под Linux — пользовался менеджерами истории буфера обмена, которые запоминали, то что попадало в виде текста в буфер и по клику в трее я мог вернуть нужное значение в буфер, не возвращаясь к источнику.
Недавно пришлось большую часть времени проводить в Windows, удовлетворяющей альтернативы для такого простого приложения я не нашел. Что-то в найденных вариантах не устраивало: не свободное ПО, много ненужного функционала (который просто мешал) или работали неудобно для меня (например: получить предыдущее значение буфера, приходилось открывать окно программы). Недолго думая решил сделать, так как мне хотелось.

Поскольку, приложение должно работать исключительно в Windows, было принято решение написать ее на C# — к тому же, никогда ранее на нем ничего не писал — появился повод попробовать.

Задача


  • Программа должна слушать и запоминать изменения в текстовом буфере обмена.
  • Через контекстное меню в трее или через окно программы по клику на выбранном элементе истории, нужное значение должно автоматически попадать назад в буфер.
  • История не должна пропадать после перезагрузки системы


Читать дальше →
Total votes 41: ↑35 and ↓6 +29
Comments 28
1