purebasic.info

PureBasic forum
Текущее время: Сб ноя 18, 2017 6:37 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Расширенный режим буфера обмена
СообщениеДобавлено: Ср дек 07, 2016 3:52 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6189
Благодарил (а): 16 раз.
Поблагодарили: 169 раз.
Пункты репутации: 48
В PureBasic очень упрощена работа с буфером обмена. Всё что мы можем получить это изображение и текст.
Предполагается, что встроенные функции GetClipboardText() и SetClipboardImage(#Image)
сами правильно определят кодировки или там формат изображения. Но системный буфер обмена предлагает более широкие функции.
Работать на уровне API практически так же просто, как и со встроенными функциями.
Пример определения кодировок текста в буфере обмена + в виде теста запись OEM.
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
; Test текста
; Если файл скомпилирован в режиме юникода и
; формат Utf8, то сработает Case #CF_UNICODETEXT
; если режим обычный текст без поддержки юникода, то  Case #CF_TEXT
 
                ; text.s = "purebasic кириллица"
                ;
                ; SetClipboardText(Text)
 
 
; Test OEM
; режим обычный текст без поддержки юникода
; сработает Case #CF_OEMTEXT
 
                ; String.s = "purebasic кириллица"
                ; CharToOem_(@String, @String)
                ; OpenClipboard_(0)
                ; EmptyClipboard_()
                ; SetClipboardData_(#CF_OEMTEXT,@String)
                ; CloseClipboard_()
                ; GlobalFree_(@String)
                ;
 
OpenClipboard_(0)
 lR = EnumClipboardFormats_(lR)
 
Select lR  
      Case #CF_TEXT
        Debug "Text"
         hStrPtr = GetClipboardData_(lR)
        MessageRequester("ClipBoard Text", PeekS(hStrPtr,-1,#PB_Ascii), 0)
      Case #CF_BITMAP
         Debug "Bitmap Picture"
      Case #CF_METAFILEPICT
         Debug "Meta-File Picture"
      Case #CF_SYLK
         Debug "Microsoft Symbolic Link (SYLK) data."
      Case #CF_DIF
         Debug "Software Arts' Data Interchange information."
      Case #CF_TIFF
         Debug "Tagged Image File Format (TIFF) Picture"
      Case #CF_OEMTEXT
        Debug "Text (OEM)"
        hStrPtr = GetClipboardData_(lR)
        String.s = PeekS(hStrPtr,-1,#PB_Ascii)
        OemToChar_(@String, @String)
        MessageRequester("ClipBoard Text", String, 0)
      Case #CF_DIB
         Debug "DIB Bitmap Picture"
      Case #CF_PALETTE
         Debug "Colour Palette"
      Case #CF_PENDATA
         Debug "Pen Data"
      Case #CF_RIFF
         Debug "RIFF Audio data"
      Case #CF_WAVE
         Debug "Wave File"
      Case #CF_UNICODETEXT
        Debug "Text (Unicode)"
        hStrPtr = GetClipboardData_(lR)
        MessageRequester("ClipBoard Text", PeekS(hStrPtr,-1,#PB_Unicode), 0)
      Case #CF_ENHMETAFILE
         Debug "Enhanced Meta-File Picture"
      Case #CF_HDROP
         Debug "File List"
      Case #CF_LOCALE
         Debug "Text Locale Identifier"
      Default
        Debug "Неизвестная кодировка или данные = " + lR  
        hStrPtr = GetClipboardData_(lR)
        MessageRequester("ClipBoard Text", PeekS(hStrPtr,-1,#PB_Unicode), 0)
       
     EndSelect
 
CloseClipboard_()
 


_________________
read-only


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB