1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Borland C++ Builder 6. Cannot open clipboard.

Тема в разделе "Программирование", создана пользователем LIN Gosha LIN, 26.09.07.

  1. LIN Gosha LIN

    LIN Gosha LIN Участник

    295
    0
    В общем есть проблема, Задача такая, нужно периодически получать содержимое буфера обмена с последующей его очисткой. Вот мой код:

    AnsiString GetBufText(void)
    {
    AnsiString CLBrdString = "";
    int TextHandle;
    char *pText;

    Clipboard()->Open();
    try
    {
    TextHandle = Clipboard()->GetAsHandle(CF_TEXT);
    pText = (char *)GlobalLock((HGLOBAL)TextHandle);
    CLBrdString = pText;
    Clipboard()->Clear();
    GlobalUnlock((HGLOBAL)TextHandle);
    Clipboard()->Close();
    }
    catch (...)
    {
    CLBrdString = "";
    Clipboard()->Close();
    throw;
    }
    return CLBrdString;
    }

    После первого применения Clipboard()->Clear(), при повторном вызове функции появляется ошибка 'Cannot open clipboard'. Если не применять метод Clipboard()->Clear(), то ошибка не появляется, но очистка буфера мне нужна обязательно!

    добавлено через 3 часа 45 минут
    Забыл сказать главное, программа делает следуюшее, делает двойнойшелчок в некоторую область(выделяет текст) затем жмет Ctrl+C, и проверяет появление определенной надписи. Если находит, давит на кнопку и нажимает необходимую кнопку в окне. Проверка инициируется таймером каждые 5 секунд.

    Если запуск проверки осушествлять не через таймер, а кнопкой, то ошибка не появляется...
     
  2. pegas

    pegas Участник

    311
    0
    Если посмотреть исходный текст Clipboard()->Open() видно , что для испольования OpenClipboard берется или хендл апликухи, или создается дополнительное окно. Возможно "двойнойшелчок в некоторую область(выделяет текст)" и вызывает ошибку или конфликтует с окном, используемым таймером .
    Я бы сделал на чистом WinAPI.
     
    Последнее редактирование: 26.09.07
  3. LIN Gosha LIN

    LIN Gosha LIN Участник

    295
    0
    Пробовал, тока пишет "Call to undefined function" на все функции для работы с Clipboard, так и не понял почему...

    добавлено через 2 часа 0 минут
    Видимио вчера были магнитные бури! Сегодня заработали функции WinAPI.Всем спасибо за внимание!