В общем есть проблема, Задача такая, нужно периодически получать содержимое буфера обмена с последующей его очисткой. Вот мой код: 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 секунд. Если запуск проверки осушествлять не через таймер, а кнопкой, то ошибка не появляется...
Если посмотреть исходный текст Clipboard()->Open() видно , что для испольования OpenClipboard берется или хендл апликухи, или создается дополнительное окно. Возможно "двойнойшелчок в некоторую область(выделяет текст)" и вызывает ошибку или конфликтует с окном, используемым таймером . Я бы сделал на чистом WinAPI.
Пробовал, тока пишет "Call to undefined function" на все функции для работы с Clipboard, так и не понял почему... добавлено через 2 часа 0 минут Видимио вчера были магнитные бури! Сегодня заработали функции WinAPI.Всем спасибо за внимание!