Как перехватить чтение / запись в буффер обмена?

Тема в разделе "WASM.BEGINNERS", создана пользователем zoool, 2 мар 2008.

  1. zoool

    zoool New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2007
    Сообщения:
    412
    САБЖ
    заранее благодарен
     
  2. zoool

    zoool New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2007
    Сообщения:
    412
    особенно интересно, какие сообщения получает программа, когда происходит ctrl-v / ctrl-c либо вырезать-копировать-вставить
     
  3. beginner

    beginner New Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    233
    какие сообщения - не знаю
    но можно сделать обычную форум с одним текстовым полем, захватить ее в spy++ и сделать логирование всех сообщений.
     
  4. Explode Sense

    Explode Sense New Member

    Публикаций:
    0
    Регистрация:
    21 июл 2006
    Сообщения:
    130
    Адрес:
    Russia
    При небольшом желании и усидчивости всё, что я написал ниже можно найти за пять минут. Разделы BEGINNERS и природная лень погубят в тебе кодера, лечись.

    GetClipboardViewer - получить все перехватчики
    ChangeClipboardChain - удалить перехватчик из цепи
    SetClipboardViewer - установить перехватчик
    WM_DRAWCLIPBOARD - сообщение, когда изменяется буфер
    OpenClipboard - открыть буфер для работы
    IsClipboardFormatAvailable - проверить формат данных в буфере
    GetClipboardData - получить данные из буфера обмена
    CloseClipboard - закрыть буфер
    EmptyClipboard - очистить
    SetClipboardData - записать свои данные
     
  5. zoool

    zoool New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2007
    Сообщения:
    412
    Explode Sense
    Заставил задумаца... респект за наставление...
    топ закрыт
     
  6. zoool

    zoool New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2007
    Сообщения:
    412
    Explode Sense
    Покурил маны

    Такой вопрос
    После GetClipboardData мы вызываем GlobalLock.
    Как узнать, какого размера данные находятся в буффере?
    Текст мы по нуль-терминатору вычислим. А если в буффере НЕ текст?
     
  7. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    zoool
    HeapSize(GetProcessHeap,0,...) - размер блока данных, выделенных GlobalAlloc\HeapAlloc