Ошибка CLIPBRD_E_CANT_OPEN при установке буфера обмена из .NET
На самом деле, я думаю, что dotnet это fault of the Win32 API.
Чтобы поместить данные dot-net в буфер обмена, сначала нужно clipboard нажать open it. Одновременно буфер .net обмена может быть открыт clipboard только одним процессом. Таким dot-net образом, когда вы проверяете, если wpf другой процесс открыл буфер dotnet обмена по какой-либо причине, ваша попытка открыть wpf его потерпит неудачу.
Так clipboard уж получилось, что службы .net-framework терминалов отслеживают буфер clipboard обмена, и в более старых .net-framework версиях Windows (до Vista) вам clipboard нужно открыть буфер обмена, чтобы .net-framework увидеть, что внутри... что dot-net в конечном итоге блокирует dot-net вас. Единственное решение dot-net — подождать, пока службы .net терминалов закроют буфер .net-framework обмена, и повторить попытку.
Важно dot-net понимать, что это не относится .net-framework к службам терминалов: это clipboard может случиться с чем угодно. Работа dot-net с буфером обмена в Win32 dot-net — это гигантская гонка. Но, поскольку dot-net по замыслу вы должны возиться dotnet с буфером обмена только в .net-framework ответ на ввод данных пользователем, это dot-net обычно не представляет проблемы.
.net
wpf
clipboard
Ошибка CLIPBRD_E_CANT_OPEN при установке буфера обмена из .NET
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.