Показать сообщение отдельно
Старый 31.03.2008, 10:48   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,654 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Создание буфера обмена на бездисковых станциях
Заполняю объект TextBuffer. Далее пытаюсь вставить сформированное значение в буфер обмена.

TextBuffer.toClipboard();

И вот тут "облом". Вставки не происходит по той причине, что буфера обмена не существует!

Прямая попытка открытия буфера обмена через команду

WinApi::openClipboard(0)

Оканчивается неудачей.

Происходит это, как правило, при первом открытии терминального сеанса. Т.е. пользователь только включил компьютер. Причем, массовый характер это имеет только на бездисковых станциях. В "обычной" терминальной сессии такое тоже случается, но значительно реже.

Лечится все явной инициализацией буфера обмена примерно таким способом:

- Открыть блокнот (notepad.exe)
- Ввести в него какой-либо "мусор"
- Выделить фрагмент и загнать его в буфер обмена по Ctrl+C

До закрытии сессии - проблема снимается.

Существует ли какой-либо способ принудительной инициализации буфера обмена? Как его можно "пнуть" программно для инициализации?

Axapta 2.5 SP3