FAR Manager (часть 5) (202) / Обсуждение работы |
| Как, исполняя lua скрипт с помощью lflua, поместить текстовую переменную txt в clipboard? mf.clip(1,txt) не работает, поскольку скрипт вызван не в контексте фара. |
| ------------------------------------------------------------------------------------------------------------------------ -- 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 ------------------------------------------------------------------------------------------------------------------------ |
http://forum.ru-board.com/topic.cgi?forum=5&topic=49572&glp#lt
| Комментировать | « Пред. запись — К дневнику — След. запись » | Страницы: [1] [Новые] |