Smitis
Silver Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Код: ------------------------------------------------------------------------------------------------------------------------ -- Predefined Clipboard Formats local CF_TEXT = 1 local CF_OEMTEXT = 7 local CF_UNICODETEXT = 13 local ffi = require("ffi") local C = ffi.C ffi.cdef[[ int OpenClipboard(void*); void* GetClipboardData(unsigned); int CloseClipboard(void); void* GlobalLock(void*); int GlobalUnlock(void*); size_t GlobalSize(void*); bool IsClipboardFormatAvailable(unsigned format); ]] function IsClipboardFormatAvailable(format) return C.IsClipboardFormatAvailable(flags(format)) ~= 0 end function GetClipboard() C.OpenClipboard(nil) local handle = C.GetClipboardData(CF_TEXT) local size = C.GlobalSize(handle) local mem = C.GlobalLock(handle) local text = ffi.string(mem,size) C.GlobalUnlock(handle) C.CloseClipboard() return text:gsub("%c+$","") -- удаление спецсимволов в конце текста (ноль, переводы строк) end ------------------------------------------------------------------------------------------------------------------------ |
| Всего записей: 3215 | Зарегистр. 09-02-2003 | Отправлено: 19:02 23-02-2018 | Исправлено: Smitis, 19:03 23-02-2018 |
|