Загрузка...

[TRASH CODE #6] Get clipboard contents using WinApi.

Thread in C/C++ created by ПереигралВсех Mar 14, 2022. 331 view

  1. ПереигралВсех
    ПереигралВсех Topic starter Mar 14, 2022 Banned 1098 Feb 9, 2020
    В прошлой статье мы настроили наш проект и отключили лишние библиотеки.

    В этой статье мы прочитаем буфер обмена.

    Создадим указатель VOID с любым названием, для простоты я назову его BUFER.

    C
    VOID BUFER()
    {

    }
    Он не будет принимать никаких аргументов.

    Можно начать писать код.

    Объявим HWND и переменную типа char для хранения буфера.


    C
        HWND hwnd = GetDesktopWindow();

    char* Bufer;
    Откроем буфер обмена.
    C
        if (OpenClipboard(hwnd))
    {

    }
    Далее пишем функцию извлечения теста из буфера.
    Должен получится такой код:

    C
        if (OpenClipboard(hwnd))//открываем буфер обмена
    {
    if(IsClipboardFormatAvailable(CF_TEXT))
    {
    HANDLE hData = GetClipboardData(CF_TEXT);//извлекаем текст из буфера
    fromClipboard = (char*)GlobalLock(hData);//блокируем память и получаем содержимое буфера
    GlobalUnlock(hData);//разблокируем память
    CloseClipboard();//закрываем буфер обмена
    WriteLine(Bufer); //эту функцию писали в прошлой статье
    }
    Готово!
    [IMG]

    На основе этой информации можно сделать простой клиппер, возможно я напишу об этом статью.

    C
    VOID BUFER()

    {
    HWND hwnd = GetDesktopWindow();
    char* Bufer;
    if (OpenClipboard(hwnd))
    {
    if (IsClipboardFormatAvailable(CF_TEXT))
    {
    HANDLE hData = GetClipboardData(CF_TEXT);
    Bufer = (char*)GlobalLock(hData);
    GlobalUnlock(hData);
    CloseClipboard();
    WriteLine(Bufer);
    }
    }
    }

     
  2. Replacer
    Replacer Mar 14, 2022 ARTIFICIAL SUICIDE 99 Jul 21, 2021
    Можно попробовать потыкать функции из хидера
    ole2.h
    , ради развлечения. Она также предоставляет функции для работы с буфером обмена, однако придется для начала понять виндовые COM-объекты (Т.к
    OleInitialize
    инициализирует COM либу). Ну и я заметил, что кое-какие функции использовали некоторые фичи из крестов, которых нет в сишке, так что придется колдовать не только над рантаймом сишечки, но и над STL.
    https://docs.microsoft.com/en-us/windows/win32/com/component-object-model--com--portal
    https://docs.microsoft.com/ru-ru/windows/win32/api/ole2/
    https://docs.microsoft.com/ru-ru/windows/win32/api/ole2/nf-ole2-olegetclipboard
     
    1. View previous comments (1)
    2. Replacer
    3. ПереигралВсех Topic starter
      Replacer, но это для образовательных целей...
  3. unnamed001
    unnamed001 Mar 15, 2022 5996 Sep 2, 2020
    А зачем это здесь ваще
     
Top
Loading...