Spec-Zone.ru › Hammerspoon

hs.pasteboard

Просмотр/манипулирование буферами обмена (чаще называемыми буферами). Можно взаимодействовать как с системным буфером обмена, так и с пользовательскими буферами.

Этот модуль частично основан на коде из предыдущей версии Mjolnir от Steven Degutis.

Подмодули

  • hs.pasteboard.watcher

Обзор API

  • Функции - API-вызовы, предоставляемые напрямую расширением
    • allContentTypes
    • callbackWhenChanged
    • changeCount
    • clearContents
    • contentTypes
    • deletePasteboard
    • getContents
    • pasteboardTypes
    • readAllData
    • readArchiverDataForUTI
    • readColor
    • readDataForUTI
    • readImage
    • readPListForUTI
    • readSound
    • readString
    • readStyledText
    • readURL
    • setContents
    • typesAvailable
    • uniquePasteboard
    • writeAllData
    • writeArchiverDataForUTI
    • writeDataForUTI
    • writeObjects
    • writePListForUTI

Документация API

Функции

allContentTypes
Подпись hs.pasteboard.allContentTypes([name]) -> table
Тип Функция
Описание

Массив, элементы которого — таблица, содержащая типы содержимого для каждого элемента в буфере обмена.

Параметры
  • имя — необязательная строка, указывающая имя буфера обмена. Если nil или отсутствует, по умолчанию используется системный буфер обмена.
Возвращаемое значение
  • массив, где каждый индекс представляет объект в буфере обмена. Если буфер обмена содержит только один элемент, это эквивалентно { hs.pasteboard.contentTypes(name) }.
Исходный код extensions/pasteboard/libpasteboard.m строка 256
callbackWhenChanged
Signature hs.pasteboard.callbackWhenChanged([name], [timeout], callback) -> None
Type Function
Description

Вызывает обратный вызов, когда указанный буфер обмена изменился или истекло время ожидания.

Parameters
  • name - необязательная строка, указывающая имя буфера обмена. Если nil или отсутствует, используется системный буфер обмена.
  • timeout - необязательное число, по умолчанию 2.0, задающее время в секундах, в течение которого функция должна ожидать изменения указанного буфера обмена перед истечением времени ожидания.
  • callback - обязательная функция обратного вызова, которая будет вызвана, когда содержимое указанного буфера обмена изменится или истечёт время ожидания. Функция должна ожидать один логический аргумент, true, если содержимое буфера обмена изменилось, или false, если истекло время ожидания.
Returns
  • None
Notes
  • Эта функция может использоваться для захвата результатов операции копирования, выполненной программно с помощью hs.application:selectMenuItem или hs.eventtap.keyStroke, без создания собственных таймеров:
    hs.eventtap.keyStroke({"cmd"}, "c", 0) -- or whatever method you want to trigger the copy
    hs.pasteboard.callbackWhenChanged(5, function(state)
        if state then
            local contents = hs.pasteboard.getContents()
            -- do what you want with contents
        else
            error("copy timeout") -- or whatever fallback you want when it times out
        end
    end)
Source extensions/pasteboard/pasteboard.lua строка 64
changeCount
Signature hs.pasteboard.changeCount([name]) -> number
Type Function
Description

Возвращает количество раз, когда владелец буфера обмена изменился.

Parameters
  • name - Необязательная строка, содержащая имя буфера обмена. По умолчанию используется системный буфер обмена.
Returns
  • Число, содержащее количество изменений владельца буфера обмена.
Notes
  • Это полезно для проверки того, был ли буфер обмена обновлён другим процессом.
Source extensions/pasteboard/libpasteboard.m строка 209
clearContents
Signature hs.pasteboard.clearContents([name])
Type Function
Description

Очищает содержимое буфера обмена.

Parameters
  • name - Необязательная строка, содержащая имя буфера обмена. По умолчанию используется системный буфер обмена.
Returns
  • None
Source extensions/pasteboard/libpasteboard.m строка 149
contentTypes
Signature hs.pasteboard.contentTypes([name]) -> table
Type Function
Description

Возвращает строки UTI типов данных для первого элемента буфера обмена в указанном буфере обмена.

Parameters
  • name - Необязательная строка, содержащая имя буфера обмена. По умолчанию используется системный буфер обмена.
Returns
  • Таблица, содержащая строки UTI типов данных для первого элемента буфера обмена.
Source extensions/pasteboard/libpasteboard.m строка 185
deletePasteboard
Signature hs.pasteboard.deletePasteboard(name)
Type Function
Description

Удаляет пользовательский буфер обмена.

Parameters
  • name - Строка, содержащая имя буфера обмена.
Returns
  • None
Notes
  • Невозможно удалить системный буфер обмена. Эта функция должна вызываться только для пользовательских буферов обмена, созданных вами.
Source extensions/pasteboard/libpasteboard.m строка 226
getContents
Signature hs.pasteboard.getContents([name]) -> string or nil
Type Function
Description

Получает содержимое буфера обмена.

Parameters
  • name - Необязательная строка, содержащая имя буфера обмена. По умолчанию используется системный буфер обмена.
Returns
  • Строка, содержащая содержимое буфера обмена, или nil, если произошла ошибка.
Source extensions/pasteboard/libpasteboard.m строка 56
pasteboardTypes
Signature hs.pasteboard.pasteboardTypes([name]) -> table
Type Function
Description

Возвращает идентификаторы типов буфера обмена для указанного буфера обмена.

Parameters
  • name - Необязательная строка, содержащая имя буфера обмена. По умолчанию используется системный буфер обмена.
Returns
  • Таблица, содержащая идентификаторы типов буфера обмена.
Source extensions/pasteboard/libpasteboard.m строка 165
readAllData
Signature hs.pasteboard.readAllData([name]) -> table
Type Function
Description

Возвращает все значения в первом элементе буфера обмена в таблице, которая сопоставляет значение UTI с исходными данными элемента.

Parameters
  • name - необязательная строка, указывающая имя буфера обмена. Если nil или отсутствует, используется системный буфер обмена.
Returns

отображение значения UTI на исходные данные.

Source extensions/pasteboard/pasteboard.lua строка 21
END_OF_DOCUMENT_MARKER
readArchiverDataForUTI
Signature hs.pasteboard.readArchiverDataForUTI([name], uti) -> any
Type Function
Description

Возвращает первый элемент буфера обмена с указанным UTI. Данные в буфере обмена должны быть закодированы как объект архива с ключами, соответствующий NSKeyedArchiver.

Parameters
  • name - необязательная строка, указывающая имя буфера обмена. Если nil или отсутствует, используется системный буфер обмена.
  • uti - строка, определяющая UTI элемента буфера обмена, который нужно получить.
Returns
  • lua-объект, представляющий данные архива, если их можно декодировать. Возникает ошибка, если данные имеют неправильный формат.
Notes
  • NSKeyedArchiver определяет формат, независимый от архитектуры, который часто используется в приложениях OS X для хранения и передачи объектов между приложениями и при сохранении данных в файл. Он работает, записывая информацию о типах объектов и парах «ключ-значение», составляющих хранимые объекты.
  • Только объекты, для которых Hammerspoon имеет встроенные функции преобразования, могут быть преобразованы. Будет возвращено строковое представление о нераспознанных типах. Если вы найдёте распространённый тип данных, который, по вашему мнению, может быть интересен пользователям Hammerspoon, не стесняйтесь внести вклад в функцию преобразования или сделать запрос в группу Hammerspoon Google или на сайте GitHub.
  • Некоторые приложения могут определять свои собственные классы, которые могут быть заархивированы. Hammerspoon не сможет распознать эти типы, если приложение не сделает тип объекта доступным в одной из своих библиотек. Возможно, вам удастся загрузить необходимую библиотеку с помощью package.loadlib("/Applications/appname.app/Contents/Frameworks/frameworkname.framework/frameworkname", "*") перед извлечением данных, но полное представление данных в Hammerspoon, скорее всего, невозможно без поддержки со стороны разработчиков приложения.
Source extensions/pasteboard/libpasteboard.m строка 413
readColor
Signature hs.pasteboard.readColor([name], [all]) -> hs.drawing.color table or array of hs.drawing.color tables
Type Function
Description

Возвращает одну или несколько hs.drawing.color таблиц из буфера обмена или nil, если совместимые объекты отсутствуют.

Parameters
  • name - необязательная строка, указывающая имя буфера обмена. Если nil или отсутствует, используется системный буфер обмена.
  • all - необязательный булевый параметр, указывающий, нужно ли вернуть все (true) цвета из буфера обмена, или только первый (false). По умолчанию false.
Returns
  • По умолчанию первый цвет из буфера обмена или таблица со всеми цветами, если параметр all имеет значение true. Возвращает nil, если цвета отсутствуют.
Source extensions/pasteboard/libpasteboard.m строка 820
readDataForUTI
Signature hs.pasteboard.readDataForUTI([name], uti) -> string
Type Function
Description

Возвращает первый элемент в буфере обмена с указанным UTI как сырые данные.

Parameters
  • name - необязательная строка, указывающая имя буфера обмена. Если nil или отсутствует, используется системный буфер обмена.
  • uti - строка, определяющая UTI элемента буфера обмена, который нужно получить.
Returns
  • lua-строка, содержащая сырые данные указанного элемента буфера обмена.
Notes
  • UTI элементов в буфере обмена можно определить с помощью функций hs.pasteboard.allContentTypes и hs.pasteboard.contentTypes.
Source extensions/pasteboard/libpasteboard.m строка 331
readImage
Signature hs.pasteboard.readImage([name], [all]) -> hs.image object or array of hs.image objects
Type Function
Description

Возвращает один или несколько hs.image объектов из буфера обмена или nil, если совместимые объекты отсутствуют.

Parameters
  • name - необязательная строка, указывающая имя буфера обмена. Если nil или отсутствует, используется системный буфер обмена.
  • all - необязательный булевый параметр, указывающий, нужно ли вернуть все (true) изображения из буфера обмена или только первое (false). По умолчанию false.
Returns
  • По умолчанию первое изображение из буфера обмена или таблица со всеми изображениями, если параметр all имеет значение true. Возвращает nil, если изображения отсутствуют.
Source extensions/pasteboard/libpasteboard.m строка 732
readPListForUTI
Signature hs.pasteboard.readPListForUTI([name], uti) -> any
Type Function
Description

Возвращает первый элемент буфера обмена с указанным UTI в виде элемента списка свойств.

Parameters
  • name - необязательная строка, указывающая имя буфера обмена. Если nil или отсутствует, используется системный буфер обмена.
  • uti - строка, определяющая UTI элемента буфера обмена, который нужно получить.
Returns
  • lua-объект, представляющий значение списка свойств указанного элемента буфера обмена.
Notes
  • UTI элементов в буфере обмена можно определить с помощью функций hs.pasteboard.allContentTypes и hs.pasteboard.contentTypes.
  • Списки свойств содержат только определенные типы данных: таблицы, строки, числа, даты, двоичные данные и булевы значения.
Source extensions/pasteboard/libpasteboard.m строка 371
readSound
Signature hs.pasteboard.readSound([name], [all]) -> hs.sound object or array of hs.sound objects
Type Function
Description

Возвращает один или несколько hs.sound объектов из буфера обмена или nil, если совместимые объекты отсутствуют.

Parameters
  • name - необязательная строка, указывающая имя буфера обмена. Если nil или отсутствует, используется системный буфер обмена.
  • all - необязательный булевый параметр, указывающий, нужно ли вернуть все (true) URL из буфера обмена или только первый (false). По умолчанию false.
Returns
  • По умолчанию первый звук из буфера обмена или таблица со всеми звуками, если параметр all имеет значение true. Возвращает nil, если звуки отсутствуют.
Source extensions/pasteboard/libpasteboard.m строка 688
readString
Signature hs.pasteboard.readString([name], [all]) -> string or array of strings
Type Function
Description

Возвращает одну или несколько строк из буфера обмена или nil, если совместимые объекты отсутствуют.

Parameters
  • name - необязательная строка, указывающая имя буфера обмена. Если nil или отсутствует, используется системный буфер обмена.
  • all - необязательный булевый параметр, указывающий, нужно ли вернуть все (true) URL из буфера обмена или только первый (false). По умолчанию false.
Returns
  • По умолчанию первая строка из буфера обмена или таблица со всеми строками, если параметр all имеет значение true. Возвращает nil, если строки отсутствуют.
Notes
  • Практически все строковые и форматированные текстовые объекты внутренне преобразуются и будут доступны с помощью этого метода, а также с помощью hs.pasteboard.readStyledText. Если элемент фактически является объектом hs.styledtext, строка будет содержать только текст объекта.
Source extensions/pasteboard/libpasteboard.m строка 284
readStyledText
Signature hs.pasteboard.readStyledText([name], [all]) -> hs.styledtext object or array of hs.styledtext objects
Type Function
Description

Возвращает один или несколько hs.styledtext объектов из буфера обмена или nil, если совместимые объекты отсутствуют.

Parameters
  • name - необязательная строка, указывающая имя буфера обмена. Если nil или отсутствует, используется системный буфер обмена.
  • all - необязательный булевый параметр, указывающий, нужно ли вернуть все (true) URL из буфера обмена или только первый (false). По умолчанию false.
Returns
  • По умолчанию первый форматированный текстовый объект из буфера обмена или таблица со всеми форматированными текстовыми объектами, если параметр all имеет значение true. Возвращает nil, если форматированные текстовые объекты отсутствуют.
Notes
  • Практически все строковые и форматированные текстовые объекты внутренне преобразуются и будут доступны с помощью этого метода, а также с помощью hs.pasteboard.readString. Если элемент в буфере обмена является просто строкой, представление объекта hs.styledtext не будет иметь установленных атрибутов.
Source extensions/pasteboard/libpasteboard.m строка 641
readURL
Signature hs.pasteboard.readURL([name], [all]) -> string or array of strings representing file or resource urls
Type Function
Description

Возвращает одну или несколько строк, представляющих URL-адреса файлов или ресурсов из буфера обмена, или nil, если совместимые объекты отсутствуют.

Parameters
  • name - необязательная строка, указывающая имя буфера обмена. Если nil или отсутствует, используется системный буфер обмена.
  • all - необязательный булевый параметр, указывающий, нужно ли вернуть все (true) URL-адреса из буфера обмена или только первый (false). По умолчанию false.
Returns
  • По умолчанию первый URL-адрес из буфера обмена, или таблица всех URL-адресов из буфера обмена, если параметр all задан и равен true. Возвращает nil, если URL-адреса отсутствуют.
Source extensions/pasteboard/libpasteboard.m строка 776
setContents
Signature hs.pasteboard.setContents(contents[, name]) -> boolean
Type Function
Description

Устанавливает содержимое буфера обмена

Parameters
  • contents - Строка, которая будет помещена в буфер обмена
  • name - Необязательная строка, содержащая имя буфера обмена. По умолчанию системный буфер обмена
Returns
  • True, если операция выполнена успешно, в противном случае false
Source extensions/pasteboard/libpasteboard.m строка 91
typesAvailable
Signature hs.pasteboard.typesAvailable([name]) -> table
Type Function
Description

Возвращает таблицу, указывающую типы содержимого, доступные в буфере обмена.

Parameters
  • name - необязательная строка, указывающая имя буфера обмена. Если nil или отсутствует, используется системный буфер обмена.
Returns
  • таблица, которая может содержать следующие ключи со значением true:
    • string - хотя бы один элемент, который можно представить как строку, находится в буфере обмена
    • styledText - хотя бы один элемент, который можно представить как объект hs.styledtext находится в буфере обмена
    • sound - хотя бы один элемент, который можно представить как объект hs.sound находится в буфере обмена
    • image - хотя бы один элемент, который можно представить как объект hs.image находится в буфере обмена
    • URL - хотя бы один элемент в буфере обмена представляет URL-адрес, либо к локальному файлу, либо к удаленному ресурсу
    • color - хотя бы один элемент в буфере обмена представляет цвет, который можно представить как таблицу, как описано в hs.drawing.color
Notes
  • почти все объекты string и styledText внутренне преобразуются и вернут true для обоих ключей
    • если элемент в буфере обмена — это просто строка, то представление объекта hs.styledtext не будет иметь установленных атрибутов
    • если элемент — это объект hs.styledtext , то строковое представление будет текстом без каких-либо атрибутов.
Source extensions/pasteboard/libpasteboard.m строка 974
uniquePasteboard
Signature hs.pasteboard.uniquePasteboard() -> string
Type Function
Description

Возвращает имя нового буфера обмена с именем, гарантированно уникальным по отношению к другим буферам обмена на компьютере.

Parameters
  • None
Returns
  • уникальное имя буфера обмена
Notes
  • для правильного управления системными ресурсами, необходимо освободить созданный буфер обмена с помощью hs.pasteboard.deletePasteboard, когда вы уверены, что он больше не нужен.
Source extensions/pasteboard/libpasteboard.m строка 955
writeAllData
Signature hs.pasteboard.writeAllData([name], table) -> boolean
Type Function
Description

Сохраняет в буфере обмена заданную таблицу сопоставлений UTI и данных сразу.

Parameters
  • name - необязательная строка, указывающая имя буфера обмена. Если nil или отсутствует, используется системный буфер обмена.
  • сопоставление значения UTI с исходными данными
Returns
  • True, если операция выполнена успешно, иначе false (что, скорее всего, означает изменение владения буфером обмена)
Source extensions/pasteboard/pasteboard.lua строка 38
writeArchiverDataForUTI
Signature hs.pasteboard.writeArchiverDataForUTI([name], uti, data, [add]) -> boolean
Type Function
Description

Устанавливает буфер обмена в содержимое данных и присваивает его тип указанному UTI. Данные будут закодированы как архив, соответствующий NSKeyedArchiver.

Parameters
  • name - необязательная строка, указывающая имя буфера обмена. Если nil или отсутствует, используется системный буфер обмена.
  • uti - строка, определяющая UTI элемента буфера обмена, который нужно установить.
  • data - любой тип, представимый в Lua, который будет преобразован в соответствующие типы NSObject и архивирован с помощью NSKeyedArchiver. Поддерживаются все основные типы Lua, а также те типы NSObject, которые обрабатываются модулями Hammerspoon (NSColor, NSStyledText, NSImage и т. д.).
  • add - необязательное булево значение, указывающее, следует ли сохранить данные с другими значениями UTI. Это значение должно быть строго true или false, если задано, чтобы избежать неоднозначности с предыдущими параметрами.
Returns
  • True, если операция выполнена успешно, иначе false (что, скорее всего, означает изменение владения буфером обмена)
Notes
  • NSKeyedArchiver определяет архитектурно-независимый формат, который часто используется в приложениях OS X для хранения и передачи объектов между приложениями и при хранении данных в файле. Он работает, записывая информацию о типах объектов и парах ключ-значение, составляющих хранимые объекты.
  • Только объекты, для которых есть встроенные функции преобразования в Hammerspoon, могут быть преобразованы.
  • Полный список объектов NSObject, напрямую поддерживаемых Hammerspoon, запланирован в будущей статье Wiki.
Source extensions/pasteboard/libpasteboard.m строка 458
writeDataForUTI
Signature hs.pasteboard.writeDataForUTI([name], uti, data, [add]) -> boolean
Type Function
Description

Устанавливает буфер обмена в содержимое данных и присваивает ему тип указанного UTI.

Parameters
  • name - необязательная строка, указывающая имя буфера обмена. Если nil или отсутствует, используется системный буфер обмена.
  • uti - строка, определяющая UTI элемента буфера обмена, который нужно установить.
  • data - строка, определяющая исходные данные для присвоения буферу обмена.
  • add - необязательное булево значение, указывающее, следует ли сохранить данные с другими значениями UTI. Это значение должно быть строго true или false, если задано, чтобы избежать неоднозначности с предыдущими параметрами.
Returns
  • True, если операция выполнена успешно, иначе false (что, скорее всего, означает изменение владения буфером обмена)
Notes
  • UTI элементов в буфере обмена можно определить с помощью функций hs.pasteboard.allContentTypes и hs.pasteboard.contentTypes.
Source extensions/pasteboard/libpasteboard.m строка 521
writeObjects
Signature hs.pasteboard.writeObjects(object, [name]) -> boolean
Type Function
Description

Устанавливает содержимое буфера обмена указанному объекту или объектам.

Parameters
  • object - объект или таблица объектов, для которых нужно установить буфер обмена. Признаются следующие объекты:
    • строка Lua, которая может быть получена большинством приложений, которые могут принимать текст из буфера обмена
    • объект hs.styledtext , который может быть получен большинством приложений, которые могут принимать исходный объект NSAttributedString (часто преобразуемый внутренне в RTF, RTFD, HTML и т. д.)
    • объект hs.sound , который может быть получен большинством приложений, которые могут принимать исходный объект NSSound
    • объект hs.image , который может быть получен большинством приложений, которые могут принимать исходный объект NSImage
    • таблица с ключом url и значением, представляющим URL-адрес файла или ресурса, который может быть получен большинством приложений, которые могут принимать объект NSURL для представления файла или удаленного ресурса
    • таблица с ключами, как описано в hs.drawing.color , для представления цвета, который может быть получен большинством приложений, которые могут принимать исходный объект NSColor
    • массив одного или нескольких из вышеуказанных объектов, позволяющий поместить более одного объекта в буфер обмена.
  • name - необязательная строка, указывающая имя буфера обмена. Если nil или отсутствует, используется системный буфер обмена.
Returns
  • true или false, указывающие, были ли обновлены данные буфера обмена.
Notes
  • Большинство приложений могут получить только первый элемент в буфере обмена. Несколько элементов в буфере обмена чаще всего используются для внутриприложения связи, где отправитель и получатель специально написаны с учетом нескольких объектов.
Source extensions/pasteboard/libpasteboard.m строка 895
END_OF_DOCUMENT_MARKER
writePListForUTI
Подпись hs.pasteboard.writePListForUTI([name], uti, data, [add]) -> boolean
Тип Функция
Описание

Устанавливает буфер обмена на содержимое данных и присваивает ему указанный тип UTI.

Параметры
  • name - необязательная строка, указывающая имя буфера обмена. Если nil или отсутствует, используется системный буфер обмена.
  • uti - строка, определяющая UTI элемента буфера обмена, который нужно установить.
  • data - тип Lua, который может быть представлен как значение списка свойств.
  • add - необязательное булево значение, указывающее, следует ли сохранять данные с другими значениями UTI. Это значение должно быть строго true или false, если задано, чтобы избежать неоднозначности с предыдущими параметрами.
Возвращаемое значение
  • True, если операция выполнена успешно, иначе false (что, скорее всего, означает изменение владения буфером обмена)
Примечания
  • Типы UTI элементов в буфере обмена можно определить с помощью функций hs.pasteboard.allContentTypes и hs.pasteboard.contentTypes.
  • Списки свойств содержат только определённые типы данных: таблицы, строки, числа, даты, бинарные данные и булевы значения.
Источник extensions/pasteboard/libpasteboard.m строка 580

© 2014–2017 Hammerspoon contributors
Licensed under the MIT License.
https://www.hammerspoon.org/docs/hs.pasteboard.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API