Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
kaneki
0 / 0 / 0
Регистрация: 15.06.2016
Сообщений: 5
1

Отслеживание изменений в буфере обмена

18.04.2017, 20:31. Просмотров 671. Ответов 2

С помощью каких функций WinAPI можно отслеживать изменения буфера обмена. Для вывода интересует тип содержимого и окно откуда было скопировано. По возможности вывести содержимое, хотя бы для текста.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2017, 20:31
Ответы с готовыми решениями:

Отслеживание изменений буфера обмена (Си)
Приветствую. Есть код на C, который выводит в консоль содержимое буфера обмена...

Отслеживание вставки из буфера обмена
Необходимо отследить, а точнее перехватить вставку из буфера обмена. Я сделал...

Отслеживание изменений файлов на компьютере
Здравствуйте. Прошу помощи, задача написать программу отката, т.е. как функция...

Как отправить байты, содержащиеся в некотором буфере через COM-порт?
Как отправить байты (их значения) содержащиеся в некотором буфере через...

Изменение строки в Буфере обмена
Ребята выручайте! Ищу реально головастого гения, буду рад если хотя бы...

2
fastb1t
Software Developer
240 / 171 / 91
Регистрация: 03.05.2017
Сообщений: 592
Завершенные тесты: 1
04.05.2017, 00:50 2
Лучший ответ Сообщение было отмечено kaneki как решение

Решение

C++
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
#include <cstdio>
#include <windows.h>
 
void GetClipboardText ( char * buff )
{
    if ( OpenClipboard ( NULL ) )
    {
         HANDLE hData = GetClipboardData ( CF_TEXT );
         char * chBuffer = ( char * ) GlobalLock ( hData );
         strcpy ( buff, chBuffer );
         GlobalUnlock ( hData );
         CloseClipboard ( );
    }
}
 
int main ( int argc, char *argv [ ] )
{
    char * buff = new char [ 1024 ];
    GetClipboardText ( buff );
    printf ( "text in clipboard: %s\n\n", buff );
    
    while ( 1 )
    {
         char * temp = new char [ 1024 ];
         GetClipboardText ( temp );
         
         if ( strcmp ( buff, temp ) != 0 )
         {
              printf ( "new text in clipboard: %s\n\n", temp );
              wsprintf ( buff, "%s", temp );
         }
         delete [] temp;
         Sleep ( 500 );
    }
    delete [] buff;
    getchar ( );
    return 0;
}
0
Убежденный
Ушел с форума
Эксперт С++
15998 / 7269 / 1180
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
04.05.2017, 09:10 3
Цитата Сообщение от kaneki Посмотреть сообщение
С помощью каких функций WinAPI можно отслеживать изменения буфера обмена.
AddClipboardFormatListener function (Windows Vista, Windows Server 2008 и выше)
https://msdn.microsoft.com/ru-ru/lib...(v=vs.85).aspx

SetClipboardViewer function
https://msdn.microsoft.com/ru-ru/lib...(v=vs.85).aspx
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2017, 09:10

В буфере обмена область листа
Коллеги, Как узнать - скопирована ли какая-то область какого-либо листа в...

Зарегистрировать формат в буфере обмена
Добрый день! Нужно поместить в буфер обмена данные в специальном формате...

Изменение значения в буфере обмена
Добрый день подскажите каким образом, если это возможно, можно изменить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru