Ошибка при вызове openclipboard corel

Hello Larry, hello white Angel. This might not be a solution for your issues, I would follow Gerards suggestion. But if you want to get an info about your clipboard, you can get access to the clipboard within corel draw via macro.The following simple example pastes any available content into your current document, if the clipboard is empty, a message will appear.

Sub ClipboardData()

 If Not Clipboard.Empty Then

  ActiveLayer.Paste

 Else

  MsgBox «There is no data in the clipboard.»

 End If

End Sub

Open your VBA Editor and paste this into «GlobalMacrosThisMacroStorage» and press play.

The following example removes any data from the clipboard.

Sub ClipboardClear()

 Clipboard.Clear

End Sub

The following example checks to see there is valid data in the clipboard. If there is valid data present, it is pasted into the active layer. If there is no valid data in the clipboard, a message displays in a message box.

Sub ClipboardValid()

 If Clipboard.Valid Then

  ActiveLayer.Paste

 Else

  MsgBox «There is no valid data currently in the clipboard.»

 End If

End Sub

  • #1

В Corel 11 произошел следующий сбой. Не работает вставка из буфера обмена и смещение при трансформации объекта. Причем только для векторных объектов. Вставка растровой графики и текста из других приложений идет нормально. Векторные объекты копируются в буфер нормально (судя по всплывающему окну при закрытии программы), но извлечь их никоим образом нельзя. Ситуация осталась такой же и после переустановки Corel с другого диска, и даже после переустановки системы. Что бы это могло быть?

Burn

  • #3

Ответ: Глюк при копировании и вставке

Burn сказал(а):

Да дело, как оказалось, гораздо проще. Просто имя пользователя в ХР было прописано по русски, а до этого было по англицки. А я даже не догадывался, что это может вывать такие глюки в Corel. Path я перепрописывал, но, естественно, безрезультатно. Сделал еще одного админа с именем на англ., а старого удалил. Все сразу заработало.

  • #4

Ответ: Глюк при копировании и вставке

WAW сказал(а):

Да дело, как оказалось, гораздо проще. Просто имя пользователя в ХР было прописано по русски, а до этого было по англицки. А я даже не догадывался, что это может вывать такие глюки в Corel. Path я перепрописывал, но, естественно, безрезультатно. Сделал еще одного админа с именем на англ., а старого удалил. Все сразу заработало.

А ведь это обсуждалось в сети не раз и не два. Есть железные правила для тех кто юзает не только MS Office — никаких русских имен пользователей, никакой самопальной русификации программ (а лучше даже и без фирменной обойтись), английская винда (ну любителям можно предложить MUI), в системе поставить поддержку русского, но раскладку по умолчанию только английскую. Это закон, блин!…

  • #5

Ответ: Глюк при копировании и вставке

Ерунда.
У меня и Винда русская, и имя пользователя кириллицей, и раскладка по умолчанию русская.

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

Вот всякие наколенные русификации — это правильно. Вот это, действительо, закон.
Да и MUI тоже примерно туда же.

  • #6

Ответ: Глюк при копировании и вставке

Fog_patch сказал(а):

А ведь это обсуждалось в сети не раз и не два. Есть железные правила для тех кто юзает не только MS Office — никаких русских имен пользователей, никакой самопальной русификации программ (а лучше даже и без фирменной обойтись), английская винда (ну любителям можно предложить MUI), в системе поставить поддержку русского, но раскладку по умолчанию только английскую. Это закон, блин!…

Ну и зачем так нервничать? А тем более устанавливать свои законы для тех кто юзает не только Ofice? У меня под Win 98 этот же Corel служил верой и правдой довольно долго, да и в РУСИФИЦИРОВАННОМ XP сейчас тоже работает более чем нормально. Это же касается Шопа (который у меня, к слову сказать, тоже довольно долго стоял 6-й русский и без проблем), Quark и кучи остальных программ. Конечно, при переходе на ХР надо было учесть, что путь к ini и TEMP будет содержать название папки на русском, но после 98 об этом обычно не думешь.

  • #7

Ответ: Глюк при копировании и вставке

Shlyapa сказал(а):

Ерунда.
У меня и Винда русская, и имя пользователя кириллицей, и раскладка по умолчанию русская.

Ну ты меня и удивил Shlyapa!! Вроде как стреляный воробей, но элементарных вещей не знаешь.
Я тут решил винду вгрузить с RU раскладкой (первый раз за последние пять лет). Ну ладно про Корел говорить не буду. Возьмем Иллюстратор 10.

Не работают следующие сочетания:

Ctrl+3 (hide)
Ctrl+Shift+Alt+3 (hide unselected)
Ctrl+Shift+Alt+2 (Lock unselected (в CS работает))

Ctrl+Alt+; (Lock/Unlock Guides)

Ctrl+shift+[ (Arrange)
Ctrl+shift+]
Ctrl+[
Ctrl+]

Ctrl+Alt+[ (select next object)
Ctrl+Alt+]

_________________________________

Это только то что я проверил на скорую руку, именно те аккорды которые я юзаю постоянно. Вполне возможно что есть еще ряд аккордов которые не работают если система вгружается с RU-раскладкой. Причем неважно было после этого включена EN или нет. Не работают они у меня и всё. А ты значит без клавы работаешь быстро, да? Ню-ню…

Shlyapa сказал(а):

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

Кстати укорачивание темпа это и есть обход русских имен пользователей. Ты вместо C:temp поставь C:Темп может тогда до тебя дойдет…

(пока набирал это в Ворде, заметил что не работают Ctrl+C, Ctrl+V, Ctrl+X, Ctrl+Z)

  • #8

Ответ: Глюк при копировании и вставке

WAW сказал(а):

Ну и зачем так нервничать? А тем более устанавливать свои законы для тех кто юзает не только Ofice? У меня под Win 98 этот же Corel служил верой и правдой довольно долго, да и в РУСИФИЦИРОВАННОМ XP сейчас тоже работает более чем нормально. Это же касается Шопа (который у меня, к слову сказать, тоже довольно долго стоял 6-й русский и без проблем), Quark и кучи остальных программ. Конечно, при переходе на ХР надо было учесть, что путь к ini и TEMP будет содержать название папки на русском, но после 98 об этом обычно не думешь.

Вот знаешь, такие сообщения нужно удалять. А то прочитают неокрепшие умы что у человека «и то работало и это работало» и подумают что всё нормально.

Я хорошо помню времена когда в Кореле при условии вгружения системы с RU-раскладкой не работали вообще никакие аккорды, даже стандартные клавиши типа Home, End и Del тоже не работали. Помню как появился новый кварк с долгожданными таблицами и мне удалось купить его …но русифицированную версию … Таблицами я насладиться так и не смог — текст при попадании в таблицу исчезал… Очень хорошо помню купленный «русский» 9-й иллюстратор (без признаков английской версии). Поставил я его (ну хотя бы чтоб посмотреть) и увидел удивительную картину — самая главная палитра Tools растянулась от верха экрана до низа, но не из-за невероятного обилия новых инструментов, а из-за …э-ээ как бы это объяснить …пробелов между некоторыми инструментами. Помню русский Шоп в котором напрочь не работала функция Color-Balance.
Трехмершики тоже маются. Вот один из последних криков о помощи (буквально вчера). Почитайте. Поднаберитесь уму-разуму.

http://www.render.ru/forum/read.php?f=3&i=94083&t=94083

Хотя там советуют укоротить temp, но речь идет именно о русских именах пользователей, из-за них не работает. Я никогда не укорачивал темп и всегда у меня всё в норме. Угадайте почему.

  • #9

Ответ: Глюк при копировании и вставке

Fog_patch сказал(а):

Ну ты меня и удивил Shlyapa!! Вроде как стреляный воробей, но элементарных вещей не знаешь.

Не надо делать неосторожных глобальных выводов о том, что я знаю, а чего не знаю.

Fog_patch сказал(а):

Я тут решил винду вгрузить с RU раскладкой (первый раз за последние пять лет). Ну ладно про Корел говорить не буду. Возьмем Иллюстратор 10.

Давай не будем его брать. Актуален AI CS.

Fog_patch сказал(а):

Не работают следующие сочетания:
… Причем неважно было после этого включена EN или нет. Не работают они у меня и всё. А ты значит без клавы работаешь быстро, да? Ню-ню…

Вот и «ню-ню», потому, что все перечисленные клавиши у меня работают. И не перечисленные тоже. Подавлющее большинство из низ вообще не чувствтельны к активной раскладке (и тем более к раскладке по умолчанию). Лишь некоторые (единицы) демонстрируют такую чувствительность.

Да, кстати, и в 10-м я никаких затруднений с этим делом не припоминаю.

Fog_patch сказал(а):

Кстати укорачивание темпа это и есть обход русских имен пользователей. Ты вместо C:temp поставь C:Темп может тогда до тебя дойдет…

Не надо передёргивать, дражайший.
Между прочим некоторые программы (правда, сейчас на вскидку не припомню поимённо) чувствительны просто к пробелам в путях, независимо от того, содержат пути кириллицу или нет.

Fog_patch сказал(а):

(пока набирал это в Ворде, заметил что не работают Ctrl+C, Ctrl+V, Ctrl+X, Ctrl+Z)

Вот это уже совсем нездоровые симптомы на твоём компе. Эти сочетания работают всегда и везде (кроме, пожалуй, PhS-а, чувствительного к активной (не по умолчанию, а активной) раскладке).

————-
Вот про всякие наколенные русификации нельзя не согласиться. (В который раз.)

  • #10

Ответ: Глюк при копировании и вставке

2Fog_patch

Причем неважно было после этого включена EN или нет. Не работают они у меня и всё.

Это именно У ТЕБЯ что-то не работает.

(пока набирал это в Ворде, заметил что не работают Ctrl+C, Ctrl+V, Ctrl+X, Ctrl+Z)

Бредятина какая-то. Винда у тебя, может, и английская, но кривая — однозначно.

Ну ладно про Корел говорить не буду.

А что про него говорить? Корелу вообще по барабану какая раскладка стоит. Он не буквы запоминает, а клавиши, так что и в Гондурасе, и в Тайланде всё будет однофигственно — была бы клавиатура :).

liputin

Гость

  • #11

Ответ: Глюк при копировании и вставке

Fog_patch сказал(а):

Вот знаешь, такие сообщения нужно удалять. А то прочитают неокрепшие умы что у человека «и то работало и это работало» и подумают что всё нормально.

А вы предположите на минуту, что если неокрепший ум сумел пробраться в интернет, проявить активность и найти форум, прочитать топик и сделать выводы о которых вы пишите, то может быть не стоит о нем руссуждать как об уме полного кретина и дауна, который сам разобраться в том что пишут не может, а только ждет когда ему «истинную правду» заботливо «вгрузят» в желторотик.

То есть, не отнимайте у людей выбора. Дурак он все равно не поймет, а умный — завсегда.

За кириллицу, конечно, скажите разбойникам которые ее придумали. Куча славянских народов запросто обходятся для тех же слов латиницей и никакого горя в коитусный век не знали.

Мне лично абсолютно по барабану возможности программ по восприимчивости к кириллице, я ее старательно не использую нигде, даже в интерфейсе собственных программ, чтобы быть уверенным в том, что он не развалится на другом компе, где этого гребанного кириллического шрифта не окажется и система подвернет другой, логический фонт под него. Как это происходит сейчас с продуктами Адобы.

Другими словами: если МОЖНО обойтись в определенных местах и случаях БЕЗ кириллицы, то НАХРЕН ей пользоваться в этих местах и случаях?

Вот и все. А имя пользователя по-русски это просто тупейший выпендреж. Еще неизвестно что по этому поводу сказал гуру Маргулис. Надо бы узнать.

liputin

Гость

  • #12

Ответ: Глюк при копировании и вставке

А чтобы переключать рулат я поставил однокнопочный переключатель, и теперь, слава Богу, хоть в Фотошопе стало нормально работать, после трансформаций и прочих контрлшифтов клава не переключается на ру, при котором ни тпру ни ну.

  • #13

Ответ: Глюк при копировании и вставке

> А что про него говорить? Корелу вообще по барабану какая раскладка стоит.

Вот и не правда твоя. Чувствителен он бывает к раскладке. Иногда — даже очень.

  • #14

Ответ: Глюк при копировании и вставке

Да, действительно многие сборки NT платформы (будь то xp or just nt), как и 9x базированные выньДосы, при русской раскладке по умолчанию перестают понимать многие обычные сочетания клавиш в ПО, но в данный момент времени эта ситуация постепенно меняется. Причём меняется не всвязи с тем, что ОС становится лучше, а всвязи с тем, что программы «понимают» какую жмут клавишу вне зависимости от раскладки.
Пути системных папок темп и папок пользователя лучше всё-таки переопределять и писать их латинскими буквами. Так же, как и имя пользователя.

  • #15

Ответ: Глюк при копировании и вставке

Shlyapa сказал(а):

> А что про него говорить? Корелу вообще по барабану какая раскладка стоит.

Вот и не правда твоя. Чувствителен он бывает к раскладке. Иногда — даже очень.

На 10, 11, 12 — ни разу не сталкивался. :confused:

  • #16

Ответ: Глюк при копировании и вставке

Ну хорошо, я тут проверил на машинах своих коллег (у которых винда вгружается с RU), действительно в Ворде сочетания работают. Тут я переборщил. У меня есть подозрение что Ворд учитывает раскладку при установке. Но, есть у нас старенький PentiumIII, на нем Win98 — ни одно сочетание в Ворде не работает! Я даже потрудился и вгрузил win98 как полагается с EN — всё ОК. Так что друзья мои не всё так гладко с русским языком как вы говорите.

> Shlyapa

Что-то ты недоговариваешь насчет аккордов в Иллюстраторе. Еще раз проверил CS (даже удалял префы) — не работают аккорды. Опять же проверял у своих коллег (у которых винда вгружается с RU), поставил AI CS — заработал только Ctrl+] (объект наверх), все остальные не работают (отказался работать даже Ctrl+Alt+2 – Unlock All).

Тестировались Win98, 2000 (4 SP), XP (1 SP) — все системы являются копиями с лицензионных дисков (потому как мы иногда на заказ привозим многим лицензионные диски :D )
___________________________________________

И главное (!). Я тут спор затеял со Shlyapa о том нужно ли чтоб винда вгружалась с EN или не нужно. В свое время античная философия отработала прием, когда в результате долгой дискуссии оппонент начинал противоречить самому себе. Теперь пут все присутствующие почитают объяснения самого Shlyapa о работе клавиш в Кореле

http://www.graphics.ru/forum/read.php?f=23&i=1288&t=1235&v=t

Можете почитать все ветки (там много интересного)

  • #17

Ответ: Глюк при копировании и вставке

Rulchik сказал(а):

На 10, 11, 12 — ни разу не сталкивался. :confused:

12-й, вроде бы, да, не проявляет особой чувствительности к раскладке. А вот 11-й, а особенно 10-й — таки, проявляли.

  • #18

Ответ: Глюк при копировании и вставке

Да проверил сейчас 12-й. И впрямь работают все шоткаты, но в 11-м не работает половина. Уж не знаю какими аккордами пользуется Rulchik, но у меня, факт, половина основных вообще ни в какую.

Есть подозрение что в 12-м всё ОК по причине перехода на юникод.

  • #19

Ответ: Глюк при копировании и вставке

>>> А вот 11-й, а особенно 10-й — таки, проявляли.
Угу, проверяли. Однако следует отметить, что при ру-раскладке клавиши не отрубались напрочь, а лишь заменялись на нечто непотребное, например Ctrl+Z > Alt+Backspace — что-то примерно так.

Далее, насчёт того, что «Между прочим некоторые программы (правда, сейчас на вскидку не припомню поимённо) чувствительны просто к пробелам в путях, независимо от того, содержат пути кириллицу или нет.» Фигня. Возможно и существует проблема «пробелов», однако я не сталкивался. А вот насчёт кириллицы в имени юзера и соответственно, по дефолту, в пути к темповским файлам в ХР, напомню элементарный пример — несохранение 11-м Корелом настроек «Quick Correct» и некоторых других в данном случае, а также связанное с этим шаманство с файлом тмп.тмп, его переименованием и пересохранением для решения проблемы. С английским юзером и кучей пробелов в пути сие неудобство не проявлялось ни разу.

Далее. Насчёт аккордов в Илле. CS CE.
>>> поставил AI CS — заработал только Ctrl+] (объект наверх), все остальные не
>>> работают (отказался работать даже Ctrl+Alt+2 – Unlock All).
Подтверждаю. Периодически отдельные клавиши отказываются работать. Причём с En-раскладкой. Последовательности не выявлено. Вобщем это пожалуй ещё один аргумент, позволяющий говорить о CS линейке в общем и, главным образом об Илле СS (в т.ч. и не CE), как о продукте достаточно сыром, выпущенным в дикой спешке…

  • #20

Ответ: Глюк при копировании и вставке

Ставил CS (весь) уж на дюжину компов, на которых время от времени и работаю. И нигде быстрые клавиши работать не отказываются. А ведь на двух третях этих компов русская раскладка по умолчанию. И имена пользователей русские практически на всех. Вот почему у меня так?

> о CS линейке в общем и, главным образом об Илле СS (в т.ч. и не CE), как о продукте достаточно сыром, выпущенным в дикой спешке…

О всей CS-линейке я не стал бы так говорить. Из всей линейки только AI продемонстрировал некоторую сырость, а со всеми остальными проблем не замечено. Бывает, по мелочам — но нет программ совсем без ошибок.

87 / 66 / 8

Регистрация: 29.09.2009

Сообщений: 425

1

Ошибка при чтении данных из буфера обмена

01.12.2010, 16:10. Показов 24662. Ответов 9


Доброго вермени суток.На ПК стоит WIN XP SP2. С недавних пор стал замечать что тупит буфер обмена.Т.е. после копирования(файла, текста) недоступен пункт меню «вставить». Ctrl+V тоже не срабатывает(просто ничего не происходит). В Paint попытка «вставить» приводит к ошибке: «Ошибка при чтении даных из буфера обмена». А в DownloadMaster попытка добавить новую закачку приводит к ошибке «Cannot open clipboard». Проблема возникает спонтанно и пока решается перезагрузкой. Кто что может посоветовать уважаемые форумчане? На вирусы проверял касперским, вроде ниче не нашел…

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

Почетный модератор

14003 / 3621 / 87

Регистрация: 11.06.2009

Сообщений: 11,783

01.12.2010, 19:27

2

попробуйте пообщаться с программкой clipbrd.exe из папки Windows/system32…
там можно и смотреть и чистить буфер …
Для того чтобы очистить буфер обмена необходимо запустить уже известный нам файл и нажать на крестик либо «Правка – Удалить».
Да..еще может память протестировать попробовать..

2

87 / 66 / 8

Регистрация: 29.09.2009

Сообщений: 425

01.12.2010, 21:25

 [ТС]

3

Спасибо, прикольная штука «clipbrd.exe» сколько лет на винде сижу не знал даже. А память проверю, завтра отпишусь.

0

Почетный модератор

14003 / 3621 / 87

Регистрация: 11.06.2009

Сообщений: 11,783

01.12.2010, 21:40

4

Джуниор, признаюсь по секрету, только -чур никому, лады ? Если бы не Ваш вопрос, я бы тоже не узнал про этот встроенный утиль винды Ну ни к чему было

0

magirus

01.12.2010, 21:41

Не по теме:

Цитата
Сообщение от Almiqui
Посмотреть сообщение

я бы тоже не узнал про этот встроенный утиль винды

я про него уже забыть успел… :)

0

87 / 66 / 8

Регистрация: 29.09.2009

Сообщений: 425

08.12.2010, 15:20

 [ТС]

6

Лучший ответ Сообщение было отмечено vavun как решение

Решение

Сегодня наконец то повторилась проблема, которая описывается выше. Как и посоветовал Almiqui
запустил системную утилиту clipbrd.exe. Открывался долго долго и накнец руганулся что размер объекта буфера слишком велик(не знаю кто и что туда пытается копировать или это какой то сбой). Вобщем нажал очистить буфер. И все заработало без перезагрузки. Есть смутные подозрения что эту ситуацию с буфером вызывает VIRTUAL PC от Microsoft.

1

32 / 32 / 2

Регистрация: 06.07.2010

Сообщений: 129

03.01.2012, 23:53

7

У меня тоже эта проблема наблюдается. Однако нет никакого VIRTUAL PC. Значит не в нем дело.

0

680 / 330 / 5

Регистрация: 01.03.2010

Сообщений: 1,387

04.01.2012, 10:12

8

1. увеличить файл подкачки
2. сделать дефрагментацию HDD
3. прогнать память memtest’ом
4. почистить системный диск от мусора
5. временно удалить касперского
6. проверить систему на вирусяки утилиткой AVZ

0

278 / 197 / 62

Регистрация: 08.11.2010

Сообщений: 1,762

02.11.2015, 07:59

9

Была у меня такая проблема недавно, во всем был виноват Скайп.

0

1 / 1 / 0

Регистрация: 14.10.2012

Сообщений: 6

26.02.2016, 18:12

10

Цитата
Сообщение от Джуниор
Посмотреть сообщение

Сегодня наконец то повторилась проблема, которая описывается выше. Как и посоветовал Almiqui
запустил системную утилиту clipbrd.exe. Открывался долго долго и накнец руганулся что размер объекта буфера слишком велик(не знаю кто и что туда пытается копировать или это какой то сбой). Вобщем нажал очистить буфер. И все заработало без перезагрузки. Есть смутные подозрения что эту ситуацию с буфером вызывает VIRTUAL PC от Microsoft.

Мне этот способ тоже помог . Правда там нет пункта очистить, я там выбрал в меню «Правка», а там «Удалить» — после этого буфер обменв приходит в чувство без перезагрузки компьютера
p.s. Но VIRTUAL PC тут и правда непричём…

0

Почему следующий код иногда вызывает исключение с содержимым «CLIPBRD_E_CANT_OPEN»:

Clipboard.SetText(str);

Обычно это происходит при первом использовании буфера обмена в приложении, а не после этого.


Robert, 16 сентября 2008 г., 05:50

55

20 062

7


Ответы:

Решено

На самом деле, я думаю, это ошибка Win32 API.

Чтобы установить данные в буфер обмена, вы должны сначала Открой это. Буфер обмена может быть открыт только для одного процесса. Итак, когда вы проверяете, имеет ли другой процесс открытый буфер обмена по любой причине, ваша попытка открыть его потерпит неудачу.

Так уж получилось, что службы терминалов отслеживают буфер обмена, и в более старых версиях Windows (до Vista) вам нужно открыть буфер обмена, чтобы увидеть, что внутри … что в конечном итоге блокирует вас. Единственное решение — дождаться, пока службы терминалов закроют буфер обмена, и повторить попытку.

Однако важно понимать, что это не относится к службам терминалов: это может случиться с чем угодно. Работа с буфером обмена в Win32 — это состояние гигантской гонки. Но, поскольку по замыслу вы должны возиться с буфером обмена только в ответ на ввод данных пользователем, это обычно не представляет проблемы.


Tadmas, 16 сентября 2008 г., 06:21

Это вызвано ошибкой / функцией в буфере обмена служб терминалов (и, возможно, другими вещами) и реализацией буфера обмена .NET. Задержка открытия буфера обмена вызывает ошибку, которая обычно проходит в течение нескольких миллисекунд.

Решение состоит в том, чтобы попробовать несколько раз в цикле и засыпать между ними.

for (int i = 0; i < 10; i++)
{
    try
    {
        Clipboard.SetText(str);
        return;
    }
    catch { }
    System.Threading.Thread.Sleep(10);
} 

Robert, 16 сентября 2008 г., 07:07

На самом деле может возникнуть другая проблема. Вызов фреймворка (варианты WPF и winform) примерно так (код взят из отражателя):

private static void SetDataInternal(string format, object data)
{
    bool flag;
    if (IsDataFormatAutoConvert(format))
    {
        flag = true;
    }
    else
    {
        flag = false;
    }
    IDataObject obj2 = new DataObject();
    obj2.SetData(format, data, flag);
    SetDataObject(obj2, true);
}

Обратите внимание, что в этом случае SetDataObject всегда вызывается со значением true.

Внутренне это вызывает два вызова win32 api: один для установки данных, а другой для их удаления из вашего приложения, чтобы он был доступен после закрытия приложения.

Я видел несколько приложений (несколько плагинов для Chrome и менеджер загрузок), которые прослушивают событие буфера обмена. Как только сработает первый вызов, приложение откроет буфер обмена для просмотра данных, а второй вызов сброса завершится ошибкой.

Не нашел хорошего решения, кроме как написать свой собственный класс буфера обмена, который использует прямой API Win32 или вызвать setDataObject напрямую с false для хранения данных после закрытия приложения.


Yishai, 30 июля 2012 г., 20:57

Я решил эту проблему для своего собственного приложения, используя собственные функции Win32: OpenClipboard (), CloseClipboard () и SetClipboardData ().

Ниже созданного мной класса-оболочки. Может ли кто-нибудь пожалуйста просмотреть его и скажи, правильно это или нет. Особенно, когда управляемый код работает как приложение x64 (я использую Any CPU в параметрах проекта). Что происходит, когда я подключаюсь к библиотекам x86 из приложения x64?

Спасибо!

Вот код:

public static class ClipboardNative
{
    [DllImport("user32.dll")]
    private static extern bool OpenClipboard(IntPtr hWndNewOwner);

    [DllImport("user32.dll")]
    private static extern bool CloseClipboard();

    [DllImport("user32.dll")]
    private static extern bool SetClipboardData(uint uFormat, IntPtr data);

    private const uint CF_UNICODETEXT = 13;

    public static bool CopyTextToClipboard(string text)
    {
        if (!OpenClipboard(IntPtr.Zero)){
            return false;
        }

        var global = Marshal.StringToHGlobalUni(text);

        SetClipboardData(CF_UNICODETEXT, global);
        CloseClipboard();

        //-------------------------------------------
        // Not sure, but it looks like we do not need 
        // to free HGLOBAL because Clipboard is now 
        // responsible for the copied data. (?)
        //
        // Otherwise the second call will crash
        // the app with a Win32 exception 
        // inside OpenClipboard() function
        //-------------------------------------------
        // Marshal.FreeHGlobal(global);

        return true;
    }
}

Mar, 11 мая 2015 г., 13:45

Я знаю, что это старый вопрос, но проблема все еще существует. Как упоминалось ранее, это исключение возникает, когда системный буфер обмена заблокирован другим процессом. К сожалению, существует множество инструментов для вырезания, программ для создания снимков экрана и инструментов для копирования файлов, которые могут блокировать буфер обмена Windows. Таким образом, вы будете получать исключение каждый раз, когда попытаетесь использовать Clipboard.SetText(str), когда такой инструмент установлен на вашем ПК.

Решение:

Никогда не использовать

Clipboard.SetText(str);

Использовать вместо

Clipboard.SetDataObject(str);

pr0gg3r, 24 августа 2016 г., 16:46

Это случилось со мной в моем приложении WPF. Я получил ошибку OpenClipboard (исключение из HRESULT: 0x800401D0 (CLIPBRD_E_CANT_OPEN)).

Я использую

ApplicationCommands.Copy.Execute(null, myDataGrid);

Решение — сначала очистить буфер обмена

Clipboard.Clear();
ApplicationCommands.Copy.Execute(null, myDataGrid);

Ellix4u, 11 мая 2017 г., 11:36

Используйте версию WinForms (да, использование WinForms в приложениях WPF не вредно), она обрабатывает все, что вам нужно:

System.Windows.Forms.SetDataObject(yourText, true, 10, 100);

Это попытается скопировать ваш текст в буфер обмена, он останется после того, как ваше приложение существует, будет пытаться до 10 раз и будет ждать 100 мс между каждой попыткой.

Ref. https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.clipboard.setdataobject?view=netframework-4.7.2#System_Windows_Forms_Clipboard_SetDataObject_System_Object_System_Boolean_System_Int32_System_Int32_System_


Bret, 4 ноября 2020 г., 21:26

Интересные вопросы для изучения

This is copied from an email that was sent to me:

I’m trying to run a project (chess-alpha-zero) which uses your pyperclip package
I’m using anaconda python 3.6.4 64 bit on windows 10 with pyperclip 1.6.0 package from conda-forge

I am getting the following error:
Traceback (most recent call last):
File «src/chess_zero/run.py», line 20, in
manager.start()
File «srcchess_zeromanager.py», line 64, in start
return self_play.start(config)
File «srcchess_zeroworkerself_play.py», line 25, in start
return SelfPlayWorker(config).start()
File «srcchess_zeroworkerself_play.py», line 69, in start
pretty_print(env, («current_model», «current_model»))
File «srcchess_zerolibdata_helper.py», line 27, in pretty_print
pyperclip.copy(env.board.fen())
File «C:UsershananAnaconda3libsite-packagespyperclip_init_.py», line 574, in lazy_load_stub_copy
return copy(text)
File «C:UsershananAnaconda3libsite-packagespyperclip_init_.py», line 416, in copy_windows
with clipboard(hwnd):
File «C:UsershananAnaconda3libcontextlib.py», line 81, in enter
return next(self.gen)
File «C:UsershananAnaconda3libsite-packagespyperclip_init_.py», line 400, in clipboard
raise PyperclipWindowsException(«Error calling OpenClipboard»)
pyperclip.PyperclipWindowsException: Error calling OpenClipboard ([WinError 5] Access is denied.)
Exception in thread prediction_worker:
Traceback (most recent call last):
File «C:UsershananAnaconda3libthreading.py», line 916, in _bootstrap_inner
self.run()
File «C:UsershananAnaconda3libthreading.py», line 864, in run
self._target(*self._args, **self._kwargs)
File «srcchess_zeroagentapi_chess.py», line 62, in _predict_batch_worker
while pipe.poll():
File «C:UsershananAnaconda3libmultiprocessingconnection.py», line 257, in poll
return self._poll(timeout)
File «C:UsershananAnaconda3libmultiprocessingconnection.py», line 328, in _poll
_winapi.PeekNamedPipe(self._handle)[0] != 0):
BrokenPipeError: [WinError 109] The pipe has been ended

The calling function and argument is:
pyperclip.copy(‘8/p7/3pk3/2p1b1Bp/4P2P/4NK2/2R5/4q3 b — — 10 52’)

when I run the same command in a python shell it runs ok

as you can see from the remainder of the trace the program runs within the ‘multiprocessing’ framework, spawning several workers
could that be the problem causing the windows access problem?
do you have a suggestion how to fix it?

This is copied from an email that was sent to me:

I’m trying to run a project (chess-alpha-zero) which uses your pyperclip package
I’m using anaconda python 3.6.4 64 bit on windows 10 with pyperclip 1.6.0 package from conda-forge

I am getting the following error:
Traceback (most recent call last):
File «src/chess_zero/run.py», line 20, in
manager.start()
File «srcchess_zeromanager.py», line 64, in start
return self_play.start(config)
File «srcchess_zeroworkerself_play.py», line 25, in start
return SelfPlayWorker(config).start()
File «srcchess_zeroworkerself_play.py», line 69, in start
pretty_print(env, («current_model», «current_model»))
File «srcchess_zerolibdata_helper.py», line 27, in pretty_print
pyperclip.copy(env.board.fen())
File «C:UsershananAnaconda3libsite-packagespyperclip_init_.py», line 574, in lazy_load_stub_copy
return copy(text)
File «C:UsershananAnaconda3libsite-packagespyperclip_init_.py», line 416, in copy_windows
with clipboard(hwnd):
File «C:UsershananAnaconda3libcontextlib.py», line 81, in enter
return next(self.gen)
File «C:UsershananAnaconda3libsite-packagespyperclip_init_.py», line 400, in clipboard
raise PyperclipWindowsException(«Error calling OpenClipboard»)
pyperclip.PyperclipWindowsException: Error calling OpenClipboard ([WinError 5] Access is denied.)
Exception in thread prediction_worker:
Traceback (most recent call last):
File «C:UsershananAnaconda3libthreading.py», line 916, in _bootstrap_inner
self.run()
File «C:UsershananAnaconda3libthreading.py», line 864, in run
self._target(*self._args, **self._kwargs)
File «srcchess_zeroagentapi_chess.py», line 62, in _predict_batch_worker
while pipe.poll():
File «C:UsershananAnaconda3libmultiprocessingconnection.py», line 257, in poll
return self._poll(timeout)
File «C:UsershananAnaconda3libmultiprocessingconnection.py», line 328, in _poll
_winapi.PeekNamedPipe(self._handle)[0] != 0):
BrokenPipeError: [WinError 109] The pipe has been ended

The calling function and argument is:
pyperclip.copy(‘8/p7/3pk3/2p1b1Bp/4P2P/4NK2/2R5/4q3 b — — 10 52’)

when I run the same command in a python shell it runs ok

as you can see from the remainder of the trace the program runs within the ‘multiprocessing’ framework, spawning several workers
could that be the problem causing the windows access problem?
do you have a suggestion how to fix it?

  • #1

В Corel 11 произошел следующий сбой. Не работает вставка из буфера обмена и смещение при трансформации объекта. Причем только для векторных объектов. Вставка растровой графики и текста из других приложений идет нормально. Векторные объекты копируются в буфер нормально (судя по всплывающему окну при закрытии программы), но извлечь их никоим образом нельзя. Ситуация осталась такой же и после переустановки Corel с другого диска, и даже после переустановки системы. Что бы это могло быть?

Burn


  • #3

Ответ: Глюк при копировании и вставке

Burn сказал(а):

Да дело, как оказалось, гораздо проще. Просто имя пользователя в ХР было прописано по русски, а до этого было по англицки. А я даже не догадывался, что это может вывать такие глюки в Corel. Path я перепрописывал, но, естественно, безрезультатно. Сделал еще одного админа с именем на англ., а старого удалил. Все сразу заработало.

  • #4

Ответ: Глюк при копировании и вставке

WAW сказал(а):

Да дело, как оказалось, гораздо проще. Просто имя пользователя в ХР было прописано по русски, а до этого было по англицки. А я даже не догадывался, что это может вывать такие глюки в Corel. Path я перепрописывал, но, естественно, безрезультатно. Сделал еще одного админа с именем на англ., а старого удалил. Все сразу заработало.

А ведь это обсуждалось в сети не раз и не два. Есть железные правила для тех кто юзает не только MS Office — никаких русских имен пользователей, никакой самопальной русификации программ (а лучше даже и без фирменной обойтись), английская винда (ну любителям можно предложить MUI), в системе поставить поддержку русского, но раскладку по умолчанию только английскую. Это закон, блин!…

  • #5

Ответ: Глюк при копировании и вставке

Ерунда.
У меня и Винда русская, и имя пользователя кириллицей, и раскладка по умолчанию русская.

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

Вот всякие наколенные русификации — это правильно. Вот это, действительо, закон.
Да и MUI тоже примерно туда же.

  • #6

Ответ: Глюк при копировании и вставке

Fog_patch сказал(а):

А ведь это обсуждалось в сети не раз и не два. Есть железные правила для тех кто юзает не только MS Office — никаких русских имен пользователей, никакой самопальной русификации программ (а лучше даже и без фирменной обойтись), английская винда (ну любителям можно предложить MUI), в системе поставить поддержку русского, но раскладку по умолчанию только английскую. Это закон, блин!…

Ну и зачем так нервничать? А тем более устанавливать свои законы для тех кто юзает не только Ofice? У меня под Win 98 этот же Corel служил верой и правдой довольно долго, да и в РУСИФИЦИРОВАННОМ XP сейчас тоже работает более чем нормально. Это же касается Шопа (который у меня, к слову сказать, тоже довольно долго стоял 6-й русский и без проблем), Quark и кучи остальных программ. Конечно, при переходе на ХР надо было учесть, что путь к ini и TEMP будет содержать название папки на русском, но после 98 об этом обычно не думешь.

  • #7

Ответ: Глюк при копировании и вставке

Shlyapa сказал(а):

Ерунда.
У меня и Винда русская, и имя пользователя кириллицей, и раскладка по умолчанию русская.

Ну ты меня и удивил Shlyapa!! Вроде как стреляный воробей, но элементарных вещей не знаешь.
Я тут решил винду вгрузить с RU раскладкой (первый раз за последние пять лет). Ну ладно про Корел говорить не буду. Возьмем Иллюстратор 10.

Не работают следующие сочетания:

Ctrl+3 (hide)
Ctrl+Shift+Alt+3 (hide unselected)
Ctrl+Shift+Alt+2 (Lock unselected (в CS работает))

Ctrl+Alt+; (Lock/Unlock Guides)

Ctrl+shift+[ (Arrange)
Ctrl+shift+]
Ctrl+[
Ctrl+]

Ctrl+Alt+[ (select next object)
Ctrl+Alt+]

_________________________________

Это только то что я проверил на скорую руку, именно те аккорды которые я юзаю постоянно. Вполне возможно что есть еще ряд аккордов которые не работают если система вгружается с RU-раскладкой. Причем неважно было после этого включена EN или нет. Не работают они у меня и всё. А ты значит без клавы работаешь быстро, да? Ню-ню…

Shlyapa сказал(а):

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

Кстати укорачивание темпа это и есть обход русских имен пользователей. Ты вместо C:temp поставь C:Темп может тогда до тебя дойдет…

(пока набирал это в Ворде, заметил что не работают Ctrl+C, Ctrl+V, Ctrl+X, Ctrl+Z)

  • #8

Ответ: Глюк при копировании и вставке

WAW сказал(а):

Ну и зачем так нервничать? А тем более устанавливать свои законы для тех кто юзает не только Ofice? У меня под Win 98 этот же Corel служил верой и правдой довольно долго, да и в РУСИФИЦИРОВАННОМ XP сейчас тоже работает более чем нормально. Это же касается Шопа (который у меня, к слову сказать, тоже довольно долго стоял 6-й русский и без проблем), Quark и кучи остальных программ. Конечно, при переходе на ХР надо было учесть, что путь к ini и TEMP будет содержать название папки на русском, но после 98 об этом обычно не думешь.

Вот знаешь, такие сообщения нужно удалять. А то прочитают неокрепшие умы что у человека «и то работало и это работало» и подумают что всё нормально.

Я хорошо помню времена когда в Кореле при условии вгружения системы с RU-раскладкой не работали вообще никакие аккорды, даже стандартные клавиши типа Home, End и Del тоже не работали. Помню как появился новый кварк с долгожданными таблицами и мне удалось купить его …но русифицированную версию … Таблицами я насладиться так и не смог — текст при попадании в таблицу исчезал… Очень хорошо помню купленный «русский» 9-й иллюстратор (без признаков английской версии). Поставил я его (ну хотя бы чтоб посмотреть) и увидел удивительную картину — самая главная палитра Tools растянулась от верха экрана до низа, но не из-за невероятного обилия новых инструментов, а из-за …э-ээ как бы это объяснить …пробелов между некоторыми инструментами. Помню русский Шоп в котором напрочь не работала функция Color-Balance.
Трехмершики тоже маются. Вот один из последних криков о помощи (буквально вчера). Почитайте. Поднаберитесь уму-разуму.

http://www.render.ru/forum/read.php?f=3&i=94083&t=94083

Хотя там советуют укоротить temp, но речь идет именно о русских именах пользователей, из-за них не работает. Я никогда не укорачивал темп и всегда у меня всё в норме. Угадайте почему.

  • #9

Ответ: Глюк при копировании и вставке

Fog_patch сказал(а):

Ну ты меня и удивил Shlyapa!! Вроде как стреляный воробей, но элементарных вещей не знаешь.

Не надо делать неосторожных глобальных выводов о том, что я знаю, а чего не знаю.

Fog_patch сказал(а):

Я тут решил винду вгрузить с RU раскладкой (первый раз за последние пять лет). Ну ладно про Корел говорить не буду. Возьмем Иллюстратор 10.

Давай не будем его брать. Актуален AI CS.

Fog_patch сказал(а):

Не работают следующие сочетания:
… Причем неважно было после этого включена EN или нет. Не работают они у меня и всё. А ты значит без клавы работаешь быстро, да? Ню-ню…

Вот и «ню-ню», потому, что все перечисленные клавиши у меня работают. И не перечисленные тоже. Подавлющее большинство из низ вообще не чувствтельны к активной раскладке (и тем более к раскладке по умолчанию). Лишь некоторые (единицы) демонстрируют такую чувствительность.

Да, кстати, и в 10-м я никаких затруднений с этим делом не припоминаю.

Fog_patch сказал(а):

Кстати укорачивание темпа это и есть обход русских имен пользователей. Ты вместо C:temp поставь C:Темп может тогда до тебя дойдет…

Не надо передёргивать, дражайший.
Между прочим некоторые программы (правда, сейчас на вскидку не припомню поимённо) чувствительны просто к пробелам в путях, независимо от того, содержат пути кириллицу или нет.

Fog_patch сказал(а):

(пока набирал это в Ворде, заметил что не работают Ctrl+C, Ctrl+V, Ctrl+X, Ctrl+Z)

Вот это уже совсем нездоровые симптомы на твоём компе. Эти сочетания работают всегда и везде (кроме, пожалуй, PhS-а, чувствительного к активной (не по умолчанию, а активной) раскладке).

————-
Вот про всякие наколенные русификации нельзя не согласиться. (В который раз.)

  • #10

Ответ: Глюк при копировании и вставке

2Fog_patch

Причем неважно было после этого включена EN или нет. Не работают они у меня и всё.

Это именно У ТЕБЯ что-то не работает.

(пока набирал это в Ворде, заметил что не работают Ctrl+C, Ctrl+V, Ctrl+X, Ctrl+Z)

Бредятина какая-то. Винда у тебя, может, и английская, но кривая — однозначно.

Ну ладно про Корел говорить не буду.

А что про него говорить? Корелу вообще по барабану какая раскладка стоит. Он не буквы запоминает, а клавиши, так что и в Гондурасе, и в Тайланде всё будет однофигственно — была бы клавиатура :).

liputin

Гость


  • #11

Ответ: Глюк при копировании и вставке

Fog_patch сказал(а):

Вот знаешь, такие сообщения нужно удалять. А то прочитают неокрепшие умы что у человека «и то работало и это работало» и подумают что всё нормально.

А вы предположите на минуту, что если неокрепший ум сумел пробраться в интернет, проявить активность и найти форум, прочитать топик и сделать выводы о которых вы пишите, то может быть не стоит о нем руссуждать как об уме полного кретина и дауна, который сам разобраться в том что пишут не может, а только ждет когда ему «истинную правду» заботливо «вгрузят» в желторотик.

То есть, не отнимайте у людей выбора. Дурак он все равно не поймет, а умный — завсегда.

За кириллицу, конечно, скажите разбойникам которые ее придумали. Куча славянских народов запросто обходятся для тех же слов латиницей и никакого горя в коитусный век не знали.

Мне лично абсолютно по барабану возможности программ по восприимчивости к кириллице, я ее старательно не использую нигде, даже в интерфейсе собственных программ, чтобы быть уверенным в том, что он не развалится на другом компе, где этого гребанного кириллического шрифта не окажется и система подвернет другой, логический фонт под него. Как это происходит сейчас с продуктами Адобы.

Другими словами: если МОЖНО обойтись в определенных местах и случаях БЕЗ кириллицы, то НАХРЕН ей пользоваться в этих местах и случаях?

Вот и все. А имя пользователя по-русски это просто тупейший выпендреж. Еще неизвестно что по этому поводу сказал гуру Маргулис. Надо бы узнать.

liputin

Гость


  • #12

Ответ: Глюк при копировании и вставке

А чтобы переключать рулат я поставил однокнопочный переключатель, и теперь, слава Богу, хоть в Фотошопе стало нормально работать, после трансформаций и прочих контрлшифтов клава не переключается на ру, при котором ни тпру ни ну.

  • #13

Ответ: Глюк при копировании и вставке

> А что про него говорить? Корелу вообще по барабану какая раскладка стоит.

Вот и не правда твоя. Чувствителен он бывает к раскладке. Иногда — даже очень.

  • #14

Ответ: Глюк при копировании и вставке

Да, действительно многие сборки NT платформы (будь то xp or just nt), как и 9x базированные выньДосы, при русской раскладке по умолчанию перестают понимать многие обычные сочетания клавиш в ПО, но в данный момент времени эта ситуация постепенно меняется. Причём меняется не всвязи с тем, что ОС становится лучше, а всвязи с тем, что программы «понимают» какую жмут клавишу вне зависимости от раскладки.
Пути системных папок темп и папок пользователя лучше всё-таки переопределять и писать их латинскими буквами. Так же, как и имя пользователя.

  • #15

Ответ: Глюк при копировании и вставке

Shlyapa сказал(а):

> А что про него говорить? Корелу вообще по барабану какая раскладка стоит.

Вот и не правда твоя. Чувствителен он бывает к раскладке. Иногда — даже очень.

На 10, 11, 12 — ни разу не сталкивался. :confused:

  • #16

Ответ: Глюк при копировании и вставке

Ну хорошо, я тут проверил на машинах своих коллег (у которых винда вгружается с RU), действительно в Ворде сочетания работают. Тут я переборщил. У меня есть подозрение что Ворд учитывает раскладку при установке. Но, есть у нас старенький PentiumIII, на нем Win98 — ни одно сочетание в Ворде не работает! Я даже потрудился и вгрузил win98 как полагается с EN — всё ОК. Так что друзья мои не всё так гладко с русским языком как вы говорите.

> Shlyapa

Что-то ты недоговариваешь насчет аккордов в Иллюстраторе. Еще раз проверил CS (даже удалял префы) — не работают аккорды. Опять же проверял у своих коллег (у которых винда вгружается с RU), поставил AI CS — заработал только Ctrl+] (объект наверх), все остальные не работают (отказался работать даже Ctrl+Alt+2 – Unlock All).

Тестировались Win98, 2000 (4 SP), XP (1 SP) — все системы являются копиями с лицензионных дисков (потому как мы иногда на заказ привозим многим лицензионные диски :D )
___________________________________________

И главное (!). Я тут спор затеял со Shlyapa о том нужно ли чтоб винда вгружалась с EN или не нужно. В свое время античная философия отработала прием, когда в результате долгой дискуссии оппонент начинал противоречить самому себе. Теперь пут все присутствующие почитают объяснения самого Shlyapa о работе клавиш в Кореле

http://www.graphics.ru/forum/read.php?f=23&i=1288&t=1235&v=t

Можете почитать все ветки (там много интересного)

  • #17

Ответ: Глюк при копировании и вставке

Rulchik сказал(а):

На 10, 11, 12 — ни разу не сталкивался. :confused:

12-й, вроде бы, да, не проявляет особой чувствительности к раскладке. А вот 11-й, а особенно 10-й — таки, проявляли.

  • #18

Ответ: Глюк при копировании и вставке

Да проверил сейчас 12-й. И впрямь работают все шоткаты, но в 11-м не работает половина. Уж не знаю какими аккордами пользуется Rulchik, но у меня, факт, половина основных вообще ни в какую.

Есть подозрение что в 12-м всё ОК по причине перехода на юникод.

  • #19

Ответ: Глюк при копировании и вставке

>>> А вот 11-й, а особенно 10-й — таки, проявляли.
Угу, проверяли. Однако следует отметить, что при ру-раскладке клавиши не отрубались напрочь, а лишь заменялись на нечто непотребное, например Ctrl+Z > Alt+Backspace — что-то примерно так.

Далее, насчёт того, что «Между прочим некоторые программы (правда, сейчас на вскидку не припомню поимённо) чувствительны просто к пробелам в путях, независимо от того, содержат пути кириллицу или нет.» Фигня. Возможно и существует проблема «пробелов», однако я не сталкивался. А вот насчёт кириллицы в имени юзера и соответственно, по дефолту, в пути к темповским файлам в ХР, напомню элементарный пример — несохранение 11-м Корелом настроек «Quick Correct» и некоторых других в данном случае, а также связанное с этим шаманство с файлом тмп.тмп, его переименованием и пересохранением для решения проблемы. С английским юзером и кучей пробелов в пути сие неудобство не проявлялось ни разу.

Далее. Насчёт аккордов в Илле. CS CE.
>>> поставил AI CS — заработал только Ctrl+] (объект наверх), все остальные не
>>> работают (отказался работать даже Ctrl+Alt+2 – Unlock All).
Подтверждаю. Периодически отдельные клавиши отказываются работать. Причём с En-раскладкой. Последовательности не выявлено. Вобщем это пожалуй ещё один аргумент, позволяющий говорить о CS линейке в общем и, главным образом об Илле СS (в т.ч. и не CE), как о продукте достаточно сыром, выпущенным в дикой спешке…

  • #20

Ответ: Глюк при копировании и вставке

Ставил CS (весь) уж на дюжину компов, на которых время от времени и работаю. И нигде быстрые клавиши работать не отказываются. А ведь на двух третях этих компов русская раскладка по умолчанию. И имена пользователей русские практически на всех. Вот почему у меня так?

> о CS линейке в общем и, главным образом об Илле СS (в т.ч. и не CE), как о продукте достаточно сыром, выпущенным в дикой спешке…

О всей CS-линейке я не стал бы так говорить. Из всей линейки только AI продемонстрировал некоторую сырость, а со всеми остальными проблем не замечено. Бывает, по мелочам — но нет программ совсем без ошибок.

Hello Larry, hello white Angel. This might not be a solution for your issues, I would follow Gerards suggestion. But if you want to get an info about your clipboard, you can get access to the clipboard within corel draw via macro.The following simple example pastes any available content into your current document, if the clipboard is empty, a message will appear.

Sub ClipboardData()

 If Not Clipboard.Empty Then

  ActiveLayer.Paste

 Else

  MsgBox «There is no data in the clipboard.»

 End If

End Sub

Open your VBA Editor and paste this into «GlobalMacrosThisMacroStorage» and press play.

The following example removes any data from the clipboard.

Sub ClipboardClear()

 Clipboard.Clear

End Sub

The following example checks to see there is valid data in the clipboard. If there is valid data present, it is pasted into the active layer. If there is no valid data in the clipboard, a message displays in a message box.

Sub ClipboardValid()

 If Clipboard.Valid Then

  ActiveLayer.Paste

 Else

  MsgBox «There is no valid data currently in the clipboard.»

 End If

End Sub

87 / 66 / 8

Регистрация: 29.09.2009

Сообщений: 425

1

Ошибка при чтении данных из буфера обмена

01.12.2010, 16:10. Показов 25210. Ответов 9


Студворк — интернет-сервис помощи студентам

Доброго вермени суток.На ПК стоит WIN XP SP2. С недавних пор стал замечать что тупит буфер обмена.Т.е. после копирования(файла, текста) недоступен пункт меню «вставить». Ctrl+V тоже не срабатывает(просто ничего не происходит). В Paint попытка «вставить» приводит к ошибке: «Ошибка при чтении даных из буфера обмена». А в DownloadMaster попытка добавить новую закачку приводит к ошибке «Cannot open clipboard». Проблема возникает спонтанно и пока решается перезагрузкой. Кто что может посоветовать уважаемые форумчане? На вирусы проверял касперским, вроде ниче не нашел…

0

Почетный модератор

14005 / 3624 / 87

Регистрация: 11.06.2009

Сообщений: 11,783

01.12.2010, 19:27

2

попробуйте пообщаться с программкой clipbrd.exe из папки Windows/system32…
там можно и смотреть и чистить буфер …
Для того чтобы очистить буфер обмена необходимо запустить уже известный нам файл и нажать на крестик либо «Правка – Удалить».
Да..еще может память протестировать попробовать..

2

87 / 66 / 8

Регистрация: 29.09.2009

Сообщений: 425

01.12.2010, 21:25

 [ТС]

3

Спасибо, прикольная штука «clipbrd.exe» сколько лет на винде сижу не знал даже. А память проверю, завтра отпишусь.

0

Почетный модератор

14005 / 3624 / 87

Регистрация: 11.06.2009

Сообщений: 11,783

01.12.2010, 21:40

4

Джуниор, признаюсь по секрету, только -чур никому, лады ? Если бы не Ваш вопрос, я бы тоже не узнал про этот встроенный утиль винды Ну ни к чему было

0

magirus

01.12.2010, 21:41

Не по теме:

Цитата
Сообщение от Almiqui
Посмотреть сообщение

я бы тоже не узнал про этот встроенный утиль винды

я про него уже забыть успел… :)

0

87 / 66 / 8

Регистрация: 29.09.2009

Сообщений: 425

08.12.2010, 15:20

 [ТС]

6

Лучший ответ Сообщение было отмечено vavun как решение

Решение

Сегодня наконец то повторилась проблема, которая описывается выше. Как и посоветовал Almiqui
запустил системную утилиту clipbrd.exe. Открывался долго долго и накнец руганулся что размер объекта буфера слишком велик(не знаю кто и что туда пытается копировать или это какой то сбой). Вобщем нажал очистить буфер. И все заработало без перезагрузки. Есть смутные подозрения что эту ситуацию с буфером вызывает VIRTUAL PC от Microsoft.

1

32 / 32 / 2

Регистрация: 06.07.2010

Сообщений: 129

03.01.2012, 23:53

7

У меня тоже эта проблема наблюдается. Однако нет никакого VIRTUAL PC. Значит не в нем дело.

0

680 / 330 / 5

Регистрация: 01.03.2010

Сообщений: 1,387

04.01.2012, 10:12

8

1. увеличить файл подкачки
2. сделать дефрагментацию HDD
3. прогнать память memtest’ом
4. почистить системный диск от мусора
5. временно удалить касперского
6. проверить систему на вирусяки утилиткой AVZ

0

295 / 209 / 67

Регистрация: 08.11.2010

Сообщений: 1,825

02.11.2015, 07:59

9

Была у меня такая проблема недавно, во всем был виноват Скайп.

0

1 / 1 / 0

Регистрация: 14.10.2012

Сообщений: 6

26.02.2016, 18:12

10

Цитата
Сообщение от Джуниор
Посмотреть сообщение

Сегодня наконец то повторилась проблема, которая описывается выше. Как и посоветовал Almiqui
запустил системную утилиту clipbrd.exe. Открывался долго долго и накнец руганулся что размер объекта буфера слишком велик(не знаю кто и что туда пытается копировать или это какой то сбой). Вобщем нажал очистить буфер. И все заработало без перезагрузки. Есть смутные подозрения что эту ситуацию с буфером вызывает VIRTUAL PC от Microsoft.

Мне этот способ тоже помог . Правда там нет пункта очистить, я там выбрал в меню «Правка», а там «Удалить» — после этого буфер обменв приходит в чувство без перезагрузки компьютера
p.s. Но VIRTUAL PC тут и правда непричём…

0

Форвард.ТрудоБудни

Создаём новое, ломаем старое

Страницы

  • Главная страница
  • О блоге

понедельник, 29 октября 2018 г.

Ошибка при вызове OpenClipboard

Заметили еще один момент в поведении OnAir3, который приводит к его закрытию. После случайного нажатия сочетания клавиш Ctrl+S выходит сообщение «Ошибка при вызове OpenClipboard…». Мы постоянные пользователи монтажных программ и применение сочетания клавиш Ctrl+S доведено до автоматизма.

Исправлено.

25.10.2018
ForwardSoftware 5.8.1034 


Ярлыки:
BUGFixed,
OnAir3


Следующее


Предыдущее

Главная страница

Hello Larry, hello white Angel. This might not be a solution for your issues, I would follow Gerards suggestion. But if you want to get an info about your clipboard, you can get access to the clipboard within corel draw via macro.The following simple example pastes any available content into your current document, if the clipboard is empty, a message will appear.

Sub ClipboardData()

 If Not Clipboard.Empty Then

  ActiveLayer.Paste

 Else

  MsgBox «There is no data in the clipboard.»

 End If

End Sub

Open your VBA Editor and paste this into «GlobalMacrosThisMacroStorage» and press play.

The following example removes any data from the clipboard.

Sub ClipboardClear()

 Clipboard.Clear

End Sub

The following example checks to see there is valid data in the clipboard. If there is valid data present, it is pasted into the active layer. If there is no valid data in the clipboard, a message displays in a message box.

Sub ClipboardValid()

 If Clipboard.Valid Then

  ActiveLayer.Paste

 Else

  MsgBox «There is no valid data currently in the clipboard.»

 End If

End Sub

87 / 66 / 8

Регистрация: 29.09.2009

Сообщений: 425

1

Ошибка при чтении данных из буфера обмена

01.12.2010, 16:10. Показов 24995. Ответов 9


Студворк — интернет-сервис помощи студентам

Доброго вермени суток.На ПК стоит WIN XP SP2. С недавних пор стал замечать что тупит буфер обмена.Т.е. после копирования(файла, текста) недоступен пункт меню «вставить». Ctrl+V тоже не срабатывает(просто ничего не происходит). В Paint попытка «вставить» приводит к ошибке: «Ошибка при чтении даных из буфера обмена». А в DownloadMaster попытка добавить новую закачку приводит к ошибке «Cannot open clipboard». Проблема возникает спонтанно и пока решается перезагрузкой. Кто что может посоветовать уважаемые форумчане? На вирусы проверял касперским, вроде ниче не нашел…

0

Почетный модератор

14005 / 3623 / 87

Регистрация: 11.06.2009

Сообщений: 11,783

01.12.2010, 19:27

2

попробуйте пообщаться с программкой clipbrd.exe из папки Windows/system32…
там можно и смотреть и чистить буфер …
Для того чтобы очистить буфер обмена необходимо запустить уже известный нам файл и нажать на крестик либо «Правка – Удалить».
Да..еще может память протестировать попробовать..

2

87 / 66 / 8

Регистрация: 29.09.2009

Сообщений: 425

01.12.2010, 21:25

 [ТС]

3

Спасибо, прикольная штука «clipbrd.exe» сколько лет на винде сижу не знал даже. А память проверю, завтра отпишусь.

0

Почетный модератор

14005 / 3623 / 87

Регистрация: 11.06.2009

Сообщений: 11,783

01.12.2010, 21:40

4

Джуниор, признаюсь по секрету, только -чур никому, лады ? Если бы не Ваш вопрос, я бы тоже не узнал про этот встроенный утиль винды Ну ни к чему было

0

magirus

01.12.2010, 21:41

Не по теме:

Цитата
Сообщение от Almiqui
Посмотреть сообщение

я бы тоже не узнал про этот встроенный утиль винды

я про него уже забыть успел…

0

87 / 66 / 8

Регистрация: 29.09.2009

Сообщений: 425

08.12.2010, 15:20

 [ТС]

6

Лучший ответ Сообщение было отмечено vavun как решение

Решение

Сегодня наконец то повторилась проблема, которая описывается выше. Как и посоветовал Almiqui
запустил системную утилиту clipbrd.exe. Открывался долго долго и накнец руганулся что размер объекта буфера слишком велик(не знаю кто и что туда пытается копировать или это какой то сбой). Вобщем нажал очистить буфер. И все заработало без перезагрузки. Есть смутные подозрения что эту ситуацию с буфером вызывает VIRTUAL PC от Microsoft.

1

32 / 32 / 2

Регистрация: 06.07.2010

Сообщений: 129

03.01.2012, 23:53

7

У меня тоже эта проблема наблюдается. Однако нет никакого VIRTUAL PC. Значит не в нем дело.

0

680 / 330 / 5

Регистрация: 01.03.2010

Сообщений: 1,387

04.01.2012, 10:12

8

1. увеличить файл подкачки
2. сделать дефрагментацию HDD
3. прогнать память memtest’ом
4. почистить системный диск от мусора
5. временно удалить касперского
6. проверить систему на вирусяки утилиткой AVZ

0

285 / 201 / 65

Регистрация: 08.11.2010

Сообщений: 1,801

02.11.2015, 07:59

9

Была у меня такая проблема недавно, во всем был виноват Скайп.

0

1 / 1 / 0

Регистрация: 14.10.2012

Сообщений: 6

26.02.2016, 18:12

10

Цитата
Сообщение от Джуниор
Посмотреть сообщение

Сегодня наконец то повторилась проблема, которая описывается выше. Как и посоветовал Almiqui
запустил системную утилиту clipbrd.exe. Открывался долго долго и накнец руганулся что размер объекта буфера слишком велик(не знаю кто и что туда пытается копировать или это какой то сбой). Вобщем нажал очистить буфер. И все заработало без перезагрузки. Есть смутные подозрения что эту ситуацию с буфером вызывает VIRTUAL PC от Microsoft.

Мне этот способ тоже помог . Правда там нет пункта очистить, я там выбрал в меню «Правка», а там «Удалить» — после этого буфер обменв приходит в чувство без перезагрузки компьютера
p.s. Но VIRTUAL PC тут и правда непричём…

0

Not exactly sure what causes it. It happened when I selected a small area (about 3×10 px) using a circular selection and tried to copy paste it from PixiEditor into paint.net. paint.net also displayed a similar error. Here is the crash log (the crash message says «error while calling openclipboard»):

-------Crash message-------
System.Runtime.InteropServices.COMException: Ошибка при вызове OpenClipboard (0x800401D0 (CLIPBRD_E_CANT_OPEN))

-------Stack trace-------
   at System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode, IntPtr errorInfo)
   at System.Windows.Clipboard.Flush()
   at System.Windows.Clipboard.CriticalSetDataObject(Object data, Boolean copy)
   at System.Windows.Clipboard.SetDataObject(Object data, Boolean copy)
   at PixiEditor.Models.Controllers.ClipboardController.CopyToClipboard(Layer[] layers, Coordinates[] selection, Int32 originalImageWidth, Int32 originalImageHeight, SerializableDocument document) in C:Usersegor0sourcereposPixiEditorPixiEditorModelsControllersClipboardController.cs:line 67
   at PixiEditor.Models.Controllers.ClipboardController.CopyToClipboard(Document document) in C:Usersegor0sourcereposPixiEditorPixiEditorModelsControllersClipboardController.cs:line 79
   at PixiEditor.ViewModels.SubViewModels.Main.ClipboardViewModel.Copy(Object parameter) in C:Usersegor0sourcereposPixiEditorPixiEditorViewModelsSubViewModelsMainClipboardViewModel.cs:line 58
   at PixiEditor.ViewModels.SubViewModels.Main.ClipboardViewModel.Cut(Object parameter) in C:Usersegor0sourcereposPixiEditorPixiEditorViewModelsSubViewModelsMainClipboardViewModel.cs:line 40
   at PixiEditor.Helpers.RelayCommand.Execute(Object parameter) in C:Usersegor0sourcereposPixiEditorPixiEditorHelpersRelayCommand.cs:line 40
   at PixiEditor.Models.Controllers.Shortcuts.Shortcut.Execute() in C:Usersegor0sourcereposPixiEditorPixiEditorModelsControllersShortcutsShortcut.cs:line 42
   at PixiEditor.Models.Controllers.Shortcuts.ShortcutController.KeyPressed(Key key, ModifierKeys modifiers) in C:Usersegor0sourcereposPixiEditorPixiEditorModelsControllersShortcutsShortcutController.cs:line 36
   at PixiEditor.ViewModels.SubViewModels.Main.IoViewModel.KeyDown(Object parameter) in C:Usersegor0sourcereposPixiEditorPixiEditorViewModelsSubViewModelsMainIoViewModel.cs:line 55
   at PixiEditor.Helpers.RelayCommand.Execute(Object parameter) in C:Usersegor0sourcereposPixiEditorPixiEditorHelpersRelayCommand.cs:line 40
   at System.Windows.Interactivity.TriggerBase.InvokeActions(Object parameter)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
   at System.Windows.Input.InputManager.ProcessStagingArea()
   at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
   at System.Windows.Interop.HwndKeyboardInputProvider.ProcessKeyAction(MSG& msg, Boolean& handled)
   at System.Windows.Interop.HwndSource.CriticalTranslateAccelerator(MSG& msg, ModifierKeys modifiers)
   at System.Windows.Interop.HwndSource.OnPreprocessMessage(Object param)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at System.Windows.Interop.HwndSource.OnPreprocessMessageThunk(MSG& msg, Boolean& handled)
   at System.Windows.Interop.ComponentDispatcherThread.RaiseThreadMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.Run()
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run()
   at PixiEditor.App.Main()
Произошла исключительная ситуация: Ошибка при вызове OpenClipboard

{InfostartToolkitPROF ОбщийМодуль.ИТК_БуферОбменаКлиент.Модуль(42)}:	Возврат htmlfile.ParentWindow.ClipboardData.Getdata("Text");
{InfostartToolkitPROF ОбщийМодуль.ИТК_БуферОбменаКлиент.Модуль(13)}:	Если Текст = Текст() Тогда
{InfostartToolkitPROF Обработка.ИТК_КонсольРазработчика.Форма.КодНаВстроенномЯзыке.Форма(204)}:	ИТК_БуферОбменаКлиент.Копировать(Текст);

по причине:
Произошла исключительная ситуация: Ошибка при вызове OpenClipboard

Конфигурация:
Бух + Бит.Финанс (3.0.108.36/3.1.51.6)
Основной режим запуска: Управляемое приложение
Режим совместимости: Версия8_3_16
Версия БСП: 3.1.5.306

Клиент:
ОС: Windows x86 (Microsoft Windows 10 version 10.0 (Build 19044))
Язык: ru
Режим запуска: Управляемое приложение

  • Ответить в тему

  • Создать тему

Рекомендованные сообщения

Сергей2014

17

    • Жалоба
    • Рассказать

Всем доброго утро…

Вообщем начало переодически выпадать окно с ошибкой при попытке вставить файл из открытого документа.

Если вставлять через «обзор» — то все нормально.  Понимаю что проблема где-то в винде, но где? В остальных программах нормально.

Начала появляться эта ошибка после того как поставил SP5 на SP4 проблем не было.

post-42230-0-77485700-1453879934_thumb.jpg


Изменено 27 января 2016 пользователем Сергей2014

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах


SERoz

SERoz

199

    • Жалоба
    • Рассказать

Подобного не было, но — попробуйте определиться с режимом OpenGl в видяхе…

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя…

Сергей2014

17

  • Автор
    • Жалоба
    • Рассказать

Подобного не было, но — попробуйте определиться с режимом OpenGl в видяхе…

не думаю что такое выскакивает из-за видяхи, если бы это из-за нее, то выскакивало бы всегда.

Хотя стоит попробовать.

И что совсем ни у кого такого не было?

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах


Гость

Гость

    • Жалоба
    • Рассказать

Подобного не было, но — попробуйте определиться с режимом OpenGl в видяхе…

Это к видяхе не имеет никакого отношение. Связана скорее с вашим Тулбоксом.

Функция OpenClipboard открывает буфер обмена для проверки и не дает другим приложениям модифицировать его содержание.


Изменено 16 февраля 2016 пользователем katalex-3

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже.

Если у вас есть аккаунт, войдите в него для написания от своего имени.

Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

  • Сейчас на странице

      0 пользователей

    Нет пользователей, просматривающих эту страницу.

  • Сообщения


    • 5axisCNC

    • Автор:

      Kelny · Опубликовано: 7 минут назад

      Обычно меню Файл-Свойства и далее Настройки или Суммарная информация — зависит от автора форматок, к некоторым форматкам так же прилагается программа/макрос для изменения данных форматки.


    • jtok

      Автор:

      jtok · Опубликовано: 9 минут назад

      Нет значений и мест приложений всех приложенных нагрузок. Может, по 1Н приложили и радуетесь.


    • ДОБРЯК

    • Автор:

      Nickro555 · Опубликовано: 41 минута назад

      Где искать настрой ки основной надписи чертежа. хочу в шаблоне исправить фамилии? Не могу найти где: &razrab — Фамилия


    • jtok

    • Автор:

      Kelny · Опубликовано: 46 минут назад

      При наличии двух и более экранов вообще не проблема.

      Ну и т.к. оно всё равно всё в окне программы настраивается, что видеть даже ни надо ни чего за ним.

      Да это понял, что смысл отображать инструменты индивиндуально, а не держать программу постоянно запущенной (но тогда в принципе программе не нужно было бы меню для переходов между модулями).

      Хотя если программа постоянно запущена — можно было бы прятать её в трей, а так же следить за действиями пользователя, например по смене документов или выбора ТТ например или редактирвоания основной надписи и предлагать инструменты Брасола без кликов пользователя.

    • Автор:

      nicomed · Опубликовано: 49 минут назад

      Я не вчитывался, конечно, может там и одна «вода», но гугл по запросу «parasolid api documentation» выдает ссылку : ТЫЦ

      Upd: ссылка в PDF-ке «мертвая», но если проявить фантазии то :  

      ТЫЦ2

      Далее по ссылкам не ходил …

Почему следующий код иногда вызывает исключение с содержимым «CLIPBRD_E_CANT_OPEN»:

Clipboard.SetText(str);

Обычно это происходит при первом использовании буфера обмена в приложении, а не после этого.


Robert, 16 сентября 2008 г., 05:50

55

20 062

7


Ответы:

Решено

На самом деле, я думаю, это ошибка Win32 API.

Чтобы установить данные в буфер обмена, вы должны сначала Открой это. Буфер обмена может быть открыт только для одного процесса. Итак, когда вы проверяете, имеет ли другой процесс открытый буфер обмена по любой причине, ваша попытка открыть его потерпит неудачу.

Так уж получилось, что службы терминалов отслеживают буфер обмена, и в более старых версиях Windows (до Vista) вам нужно открыть буфер обмена, чтобы увидеть, что внутри … что в конечном итоге блокирует вас. Единственное решение — дождаться, пока службы терминалов закроют буфер обмена, и повторить попытку.

Однако важно понимать, что это не относится к службам терминалов: это может случиться с чем угодно. Работа с буфером обмена в Win32 — это состояние гигантской гонки. Но, поскольку по замыслу вы должны возиться с буфером обмена только в ответ на ввод данных пользователем, это обычно не представляет проблемы.


Tadmas, 16 сентября 2008 г., 06:21

Это вызвано ошибкой / функцией в буфере обмена служб терминалов (и, возможно, другими вещами) и реализацией буфера обмена .NET. Задержка открытия буфера обмена вызывает ошибку, которая обычно проходит в течение нескольких миллисекунд.

Решение состоит в том, чтобы попробовать несколько раз в цикле и засыпать между ними.

for (int i = 0; i < 10; i++)
{
    try
    {
        Clipboard.SetText(str);
        return;
    }
    catch { }
    System.Threading.Thread.Sleep(10);
} 

Robert, 16 сентября 2008 г., 07:07

На самом деле может возникнуть другая проблема. Вызов фреймворка (варианты WPF и winform) примерно так (код взят из отражателя):

private static void SetDataInternal(string format, object data)
{
    bool flag;
    if (IsDataFormatAutoConvert(format))
    {
        flag = true;
    }
    else
    {
        flag = false;
    }
    IDataObject obj2 = new DataObject();
    obj2.SetData(format, data, flag);
    SetDataObject(obj2, true);
}

Обратите внимание, что в этом случае SetDataObject всегда вызывается со значением true.

Внутренне это вызывает два вызова win32 api: один для установки данных, а другой для их удаления из вашего приложения, чтобы он был доступен после закрытия приложения.

Я видел несколько приложений (несколько плагинов для Chrome и менеджер загрузок), которые прослушивают событие буфера обмена. Как только сработает первый вызов, приложение откроет буфер обмена для просмотра данных, а второй вызов сброса завершится ошибкой.

Не нашел хорошего решения, кроме как написать свой собственный класс буфера обмена, который использует прямой API Win32 или вызвать setDataObject напрямую с false для хранения данных после закрытия приложения.


Yishai, 30 июля 2012 г., 20:57

Я решил эту проблему для своего собственного приложения, используя собственные функции Win32: OpenClipboard (), CloseClipboard () и SetClipboardData ().

Ниже созданного мной класса-оболочки. Может ли кто-нибудь пожалуйста просмотреть его и скажи, правильно это или нет. Особенно, когда управляемый код работает как приложение x64 (я использую Any CPU в параметрах проекта). Что происходит, когда я подключаюсь к библиотекам x86 из приложения x64?

Спасибо!

Вот код:

public static class ClipboardNative
{
    [DllImport("user32.dll")]
    private static extern bool OpenClipboard(IntPtr hWndNewOwner);

    [DllImport("user32.dll")]
    private static extern bool CloseClipboard();

    [DllImport("user32.dll")]
    private static extern bool SetClipboardData(uint uFormat, IntPtr data);

    private const uint CF_UNICODETEXT = 13;

    public static bool CopyTextToClipboard(string text)
    {
        if (!OpenClipboard(IntPtr.Zero)){
            return false;
        }

        var global = Marshal.StringToHGlobalUni(text);

        SetClipboardData(CF_UNICODETEXT, global);
        CloseClipboard();

        //-------------------------------------------
        // Not sure, but it looks like we do not need 
        // to free HGLOBAL because Clipboard is now 
        // responsible for the copied data. (?)
        //
        // Otherwise the second call will crash
        // the app with a Win32 exception 
        // inside OpenClipboard() function
        //-------------------------------------------
        // Marshal.FreeHGlobal(global);

        return true;
    }
}

Mar, 11 мая 2015 г., 13:45

Я знаю, что это старый вопрос, но проблема все еще существует. Как упоминалось ранее, это исключение возникает, когда системный буфер обмена заблокирован другим процессом. К сожалению, существует множество инструментов для вырезания, программ для создания снимков экрана и инструментов для копирования файлов, которые могут блокировать буфер обмена Windows. Таким образом, вы будете получать исключение каждый раз, когда попытаетесь использовать Clipboard.SetText(str), когда такой инструмент установлен на вашем ПК.

Решение:

Никогда не использовать

Clipboard.SetText(str);

Использовать вместо

Clipboard.SetDataObject(str);

pr0gg3r, 24 августа 2016 г., 16:46

Это случилось со мной в моем приложении WPF. Я получил ошибку OpenClipboard (исключение из HRESULT: 0x800401D0 (CLIPBRD_E_CANT_OPEN)).

Я использую

ApplicationCommands.Copy.Execute(null, myDataGrid);

Решение — сначала очистить буфер обмена

Clipboard.Clear();
ApplicationCommands.Copy.Execute(null, myDataGrid);

Ellix4u, 11 мая 2017 г., 11:36

Используйте версию WinForms (да, использование WinForms в приложениях WPF не вредно), она обрабатывает все, что вам нужно:

System.Windows.Forms.SetDataObject(yourText, true, 10, 100);

Это попытается скопировать ваш текст в буфер обмена, он останется после того, как ваше приложение существует, будет пытаться до 10 раз и будет ждать 100 мс между каждой попыткой.

Ref. https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.clipboard.setdataobject?view=netframework-4.7.2#System_Windows_Forms_Clipboard_SetDataObject_System_Object_System_Boolean_System_Int32_System_Int32_System_


Bret, 4 ноября 2020 г., 21:26

Интересные вопросы для изучения

  • Ответить в тему

  • Создать тему

Рекомендованные сообщения

Сергей2014

17

    • Жалоба
    • Рассказать

Всем доброго утро…

Вообщем начало переодически выпадать окно с ошибкой при попытке вставить файл из открытого документа.

Если вставлять через «обзор» — то все нормально.  Понимаю что проблема где-то в винде, но где? В остальных программах нормально.

Начала появляться эта ошибка после того как поставил SP5 на SP4 проблем не было.

post-42230-0-77485700-1453879934_thumb.jpg


Изменено 27 января 2016 пользователем Сергей2014

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах


SERoz

SERoz

200

    • Жалоба
    • Рассказать

Подобного не было, но — попробуйте определиться с режимом OpenGl в видяхе…

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя…

Сергей2014

17

  • Автор
    • Жалоба
    • Рассказать

Подобного не было, но — попробуйте определиться с режимом OpenGl в видяхе…

не думаю что такое выскакивает из-за видяхи, если бы это из-за нее, то выскакивало бы всегда.

Хотя стоит попробовать.

И что совсем ни у кого такого не было?

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах


Гость

Гость

    • Жалоба
    • Рассказать

Подобного не было, но — попробуйте определиться с режимом OpenGl в видяхе…

Это к видяхе не имеет никакого отношение. Связана скорее с вашим Тулбоксом.

Функция OpenClipboard открывает буфер обмена для проверки и не дает другим приложениям модифицировать его содержание.


Изменено 16 февраля 2016 пользователем katalex-3

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже.

Если у вас есть аккаунт, войдите в него для написания от своего имени.

Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

  • Сейчас на странице

      0 пользователей

    Нет пользователей, просматривающих эту страницу.

  • Сообщения


    • vad0000


    • Ветерок

      Автор:

      Ветерок · Опубликовано: 5 часов назад

      А вот до рамы не надо. Не надо связывать детали между собой, чтобы можно было спокойно каждую погасить (ведь это нужно автору). Вытягивать надо до какого-то элемента того же управляющего эскиза. Тогда все детали будут независимы друг от друга.


    • boomeeeer

    • Автор:

      QWAN · Опубликовано: 8 часов назад

      Возможно для более простых сборок такой метод подойдёт.

      У меня случай намного сложнее. В мною создаваемую деталь профиля рамы вставляются как детали пластиковый профиль, уплотнители и армирующие профиля  (все эти детали из базы данных зарегистрированы и текущей редакции). Затем с помощью инструментов SolidWorks все дорабатывается и я получаю первый кирпичик (деталь) в моей библиотеке с примерно 20 конфигурациями. Из таких 4 деталей  я получаю первую сборку рамы окна (количество конфигураций примерно тоже 20).

      В сборке окна таких рам может быть от трех до пяти и створок от трех до пяти с таким же количеством конфигураций.

      В сборке окна таких рам но с другими профилями  может быть от трех до пяти (из них и нужно выбрать которую мы хотим использовать) и створок от трех до пяти (из них и нужно выбрать которую мы хотим использовать) с таким же количеством конфигураций.


    • Александр1979


    • Александр1979

    • Автор:

      Bruno124 · Опубликовано: 8 часов назад

      Но в том то и дело,что станкостроитель запаролил данные а паролей нет.Станкостроитель находится в чехии его тоже нет возможности расстребушить)Что делать то по итогу?

    • Автор:

      gudstartup · Опубликовано: 9 часов назад

      У станкостроителя есть  инструментарий для разработки собственных приложений и в этих приложениях он реализует необходимую логику и интерфейс взаимодействия с пользователем (в то числе и защиту данных или

      любые другие сервисные функции которые защищены паролями или даже аппаратными ключами доступа).

      По моему все яснее ясного! Имеете доступ — реализуете и изменяете все функции системы а если нет то гуляете в песочнице под присмотром!


    • sippovich

Hello Larry, hello white Angel. This might not be a solution for your issues, I would follow Gerards suggestion. But if you want to get an info about your clipboard, you can get access to the clipboard within corel draw via macro.The following simple example pastes any available content into your current document, if the clipboard is empty, a message will appear.

Sub ClipboardData()

 If Not Clipboard.Empty Then

  ActiveLayer.Paste

 Else

  MsgBox «There is no data in the clipboard.»

 End If

End Sub

Open your VBA Editor and paste this into «GlobalMacrosThisMacroStorage» and press play.

The following example removes any data from the clipboard.

Sub ClipboardClear()

 Clipboard.Clear

End Sub

The following example checks to see there is valid data in the clipboard. If there is valid data present, it is pasted into the active layer. If there is no valid data in the clipboard, a message displays in a message box.

Sub ClipboardValid()

 If Clipboard.Valid Then

  ActiveLayer.Paste

 Else

  MsgBox «There is no valid data currently in the clipboard.»

 End If

End Sub

Hello Larry, hello white Angel. This might not be a solution for your issues, I would follow Gerards suggestion. But if you want to get an info about your clipboard, you can get access to the clipboard within corel draw via macro.The following simple example pastes any available content into your current document, if the clipboard is empty, a message will appear.

Sub ClipboardData()

 If Not Clipboard.Empty Then

  ActiveLayer.Paste

 Else

  MsgBox «There is no data in the clipboard.»

 End If

End Sub

Open your VBA Editor and paste this into «GlobalMacrosThisMacroStorage» and press play.

The following example removes any data from the clipboard.

Sub ClipboardClear()

 Clipboard.Clear

End Sub

The following example checks to see there is valid data in the clipboard. If there is valid data present, it is pasted into the active layer. If there is no valid data in the clipboard, a message displays in a message box.

Sub ClipboardValid()

 If Clipboard.Valid Then

  ActiveLayer.Paste

 Else

  MsgBox «There is no valid data currently in the clipboard.»

 End If

End Sub

  • #1

В Corel 11 произошел следующий сбой. Не работает вставка из буфера обмена и смещение при трансформации объекта. Причем только для векторных объектов. Вставка растровой графики и текста из других приложений идет нормально. Векторные объекты копируются в буфер нормально (судя по всплывающему окну при закрытии программы), но извлечь их никоим образом нельзя. Ситуация осталась такой же и после переустановки Corel с другого диска, и даже после переустановки системы. Что бы это могло быть?

Burn

  • #3

Ответ: Глюк при копировании и вставке

Burn сказал(а):

Да дело, как оказалось, гораздо проще. Просто имя пользователя в ХР было прописано по русски, а до этого было по англицки. А я даже не догадывался, что это может вывать такие глюки в Corel. Path я перепрописывал, но, естественно, безрезультатно. Сделал еще одного админа с именем на англ., а старого удалил. Все сразу заработало.

  • #4

Ответ: Глюк при копировании и вставке

WAW сказал(а):

Да дело, как оказалось, гораздо проще. Просто имя пользователя в ХР было прописано по русски, а до этого было по англицки. А я даже не догадывался, что это может вывать такие глюки в Corel. Path я перепрописывал, но, естественно, безрезультатно. Сделал еще одного админа с именем на англ., а старого удалил. Все сразу заработало.

А ведь это обсуждалось в сети не раз и не два. Есть железные правила для тех кто юзает не только MS Office — никаких русских имен пользователей, никакой самопальной русификации программ (а лучше даже и без фирменной обойтись), английская винда (ну любителям можно предложить MUI), в системе поставить поддержку русского, но раскладку по умолчанию только английскую. Это закон, блин!…

  • #5

Ответ: Глюк при копировании и вставке

Ерунда.
У меня и Винда русская, и имя пользователя кириллицей, и раскладка по умолчанию русская.

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

Вот всякие наколенные русификации — это правильно. Вот это, действительо, закон.
Да и MUI тоже примерно туда же.

  • #6

Ответ: Глюк при копировании и вставке

Fog_patch сказал(а):

А ведь это обсуждалось в сети не раз и не два. Есть железные правила для тех кто юзает не только MS Office — никаких русских имен пользователей, никакой самопальной русификации программ (а лучше даже и без фирменной обойтись), английская винда (ну любителям можно предложить MUI), в системе поставить поддержку русского, но раскладку по умолчанию только английскую. Это закон, блин!…

Ну и зачем так нервничать? А тем более устанавливать свои законы для тех кто юзает не только Ofice? У меня под Win 98 этот же Corel служил верой и правдой довольно долго, да и в РУСИФИЦИРОВАННОМ XP сейчас тоже работает более чем нормально. Это же касается Шопа (который у меня, к слову сказать, тоже довольно долго стоял 6-й русский и без проблем), Quark и кучи остальных программ. Конечно, при переходе на ХР надо было учесть, что путь к ini и TEMP будет содержать название папки на русском, но после 98 об этом обычно не думешь.

  • #7

Ответ: Глюк при копировании и вставке

Shlyapa сказал(а):

Ерунда.
У меня и Винда русская, и имя пользователя кириллицей, и раскладка по умолчанию русская.

Ну ты меня и удивил Shlyapa!! Вроде как стреляный воробей, но элементарных вещей не знаешь.
Я тут решил винду вгрузить с RU раскладкой (первый раз за последние пять лет). Ну ладно про Корел говорить не буду. Возьмем Иллюстратор 10.

Не работают следующие сочетания:

Ctrl+3 (hide)
Ctrl+Shift+Alt+3 (hide unselected)
Ctrl+Shift+Alt+2 (Lock unselected (в CS работает))

Ctrl+Alt+; (Lock/Unlock Guides)

Ctrl+shift+[ (Arrange)
Ctrl+shift+]
Ctrl+[
Ctrl+]

Ctrl+Alt+[ (select next object)
Ctrl+Alt+]

_________________________________

Это только то что я проверил на скорую руку, именно те аккорды которые я юзаю постоянно. Вполне возможно что есть еще ряд аккордов которые не работают если система вгружается с RU-раскладкой. Причем неважно было после этого включена EN или нет. Не работают они у меня и всё. А ты значит без клавы работаешь быстро, да? Ню-ню…

Shlyapa сказал(а):

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

Кстати укорачивание темпа это и есть обход русских имен пользователей. Ты вместо C:temp поставь C:Темп может тогда до тебя дойдет…

(пока набирал это в Ворде, заметил что не работают Ctrl+C, Ctrl+V, Ctrl+X, Ctrl+Z)

  • #8

Ответ: Глюк при копировании и вставке

WAW сказал(а):

Ну и зачем так нервничать? А тем более устанавливать свои законы для тех кто юзает не только Ofice? У меня под Win 98 этот же Corel служил верой и правдой довольно долго, да и в РУСИФИЦИРОВАННОМ XP сейчас тоже работает более чем нормально. Это же касается Шопа (который у меня, к слову сказать, тоже довольно долго стоял 6-й русский и без проблем), Quark и кучи остальных программ. Конечно, при переходе на ХР надо было учесть, что путь к ini и TEMP будет содержать название папки на русском, но после 98 об этом обычно не думешь.

Вот знаешь, такие сообщения нужно удалять. А то прочитают неокрепшие умы что у человека «и то работало и это работало» и подумают что всё нормально.

Я хорошо помню времена когда в Кореле при условии вгружения системы с RU-раскладкой не работали вообще никакие аккорды, даже стандартные клавиши типа Home, End и Del тоже не работали. Помню как появился новый кварк с долгожданными таблицами и мне удалось купить его …но русифицированную версию … Таблицами я насладиться так и не смог — текст при попадании в таблицу исчезал… Очень хорошо помню купленный «русский» 9-й иллюстратор (без признаков английской версии). Поставил я его (ну хотя бы чтоб посмотреть) и увидел удивительную картину — самая главная палитра Tools растянулась от верха экрана до низа, но не из-за невероятного обилия новых инструментов, а из-за …э-ээ как бы это объяснить …пробелов между некоторыми инструментами. Помню русский Шоп в котором напрочь не работала функция Color-Balance.
Трехмершики тоже маются. Вот один из последних криков о помощи (буквально вчера). Почитайте. Поднаберитесь уму-разуму.

http://www.render.ru/forum/read.php?f=3&i=94083&t=94083

Хотя там советуют укоротить temp, но речь идет именно о русских именах пользователей, из-за них не работает. Я никогда не укорачивал темп и всегда у меня всё в норме. Угадайте почему.

  • #9

Ответ: Глюк при копировании и вставке

Fog_patch сказал(а):

Ну ты меня и удивил Shlyapa!! Вроде как стреляный воробей, но элементарных вещей не знаешь.

Не надо делать неосторожных глобальных выводов о том, что я знаю, а чего не знаю.

Fog_patch сказал(а):

Я тут решил винду вгрузить с RU раскладкой (первый раз за последние пять лет). Ну ладно про Корел говорить не буду. Возьмем Иллюстратор 10.

Давай не будем его брать. Актуален AI CS.

Fog_patch сказал(а):

Не работают следующие сочетания:
… Причем неважно было после этого включена EN или нет. Не работают они у меня и всё. А ты значит без клавы работаешь быстро, да? Ню-ню…

Вот и «ню-ню», потому, что все перечисленные клавиши у меня работают. И не перечисленные тоже. Подавлющее большинство из низ вообще не чувствтельны к активной раскладке (и тем более к раскладке по умолчанию). Лишь некоторые (единицы) демонстрируют такую чувствительность.

Да, кстати, и в 10-м я никаких затруднений с этим делом не припоминаю.

Fog_patch сказал(а):

Кстати укорачивание темпа это и есть обход русских имен пользователей. Ты вместо C:temp поставь C:Темп может тогда до тебя дойдет…

Не надо передёргивать, дражайший.
Между прочим некоторые программы (правда, сейчас на вскидку не припомню поимённо) чувствительны просто к пробелам в путях, независимо от того, содержат пути кириллицу или нет.

Fog_patch сказал(а):

(пока набирал это в Ворде, заметил что не работают Ctrl+C, Ctrl+V, Ctrl+X, Ctrl+Z)

Вот это уже совсем нездоровые симптомы на твоём компе. Эти сочетания работают всегда и везде (кроме, пожалуй, PhS-а, чувствительного к активной (не по умолчанию, а активной) раскладке).

————-
Вот про всякие наколенные русификации нельзя не согласиться. (В который раз.)

  • #10

Ответ: Глюк при копировании и вставке

2Fog_patch

Причем неважно было после этого включена EN или нет. Не работают они у меня и всё.

Это именно У ТЕБЯ что-то не работает.

(пока набирал это в Ворде, заметил что не работают Ctrl+C, Ctrl+V, Ctrl+X, Ctrl+Z)

Бредятина какая-то. Винда у тебя, может, и английская, но кривая — однозначно.

Ну ладно про Корел говорить не буду.

А что про него говорить? Корелу вообще по барабану какая раскладка стоит. Он не буквы запоминает, а клавиши, так что и в Гондурасе, и в Тайланде всё будет однофигственно — была бы клавиатура :).

liputin

Гость
  • #11

Ответ: Глюк при копировании и вставке

Fog_patch сказал(а):

Вот знаешь, такие сообщения нужно удалять. А то прочитают неокрепшие умы что у человека «и то работало и это работало» и подумают что всё нормально.

А вы предположите на минуту, что если неокрепший ум сумел пробраться в интернет, проявить активность и найти форум, прочитать топик и сделать выводы о которых вы пишите, то может быть не стоит о нем руссуждать как об уме полного кретина и дауна, который сам разобраться в том что пишут не может, а только ждет когда ему «истинную правду» заботливо «вгрузят» в желторотик.

То есть, не отнимайте у людей выбора. Дурак он все равно не поймет, а умный — завсегда.

За кириллицу, конечно, скажите разбойникам которые ее придумали. Куча славянских народов запросто обходятся для тех же слов латиницей и никакого горя в коитусный век не знали.

Мне лично абсолютно по барабану возможности программ по восприимчивости к кириллице, я ее старательно не использую нигде, даже в интерфейсе собственных программ, чтобы быть уверенным в том, что он не развалится на другом компе, где этого гребанного кириллического шрифта не окажется и система подвернет другой, логический фонт под него. Как это происходит сейчас с продуктами Адобы.

Другими словами: если МОЖНО обойтись в определенных местах и случаях БЕЗ кириллицы, то НАХРЕН ей пользоваться в этих местах и случаях?

Вот и все. А имя пользователя по-русски это просто тупейший выпендреж. Еще неизвестно что по этому поводу сказал гуру Маргулис. Надо бы узнать.

liputin

Гость
  • #12

Ответ: Глюк при копировании и вставке

А чтобы переключать рулат я поставил однокнопочный переключатель, и теперь, слава Богу, хоть в Фотошопе стало нормально работать, после трансформаций и прочих контрлшифтов клава не переключается на ру, при котором ни тпру ни ну.

  • #13

Ответ: Глюк при копировании и вставке

> А что про него говорить? Корелу вообще по барабану какая раскладка стоит.

Вот и не правда твоя. Чувствителен он бывает к раскладке. Иногда — даже очень.

  • #14

Ответ: Глюк при копировании и вставке

Да, действительно многие сборки NT платформы (будь то xp or just nt), как и 9x базированные выньДосы, при русской раскладке по умолчанию перестают понимать многие обычные сочетания клавиш в ПО, но в данный момент времени эта ситуация постепенно меняется. Причём меняется не всвязи с тем, что ОС становится лучше, а всвязи с тем, что программы «понимают» какую жмут клавишу вне зависимости от раскладки.
Пути системных папок темп и папок пользователя лучше всё-таки переопределять и писать их латинскими буквами. Так же, как и имя пользователя.

  • #15

Ответ: Глюк при копировании и вставке

Shlyapa сказал(а):

> А что про него говорить? Корелу вообще по барабану какая раскладка стоит.

Вот и не правда твоя. Чувствителен он бывает к раскладке. Иногда — даже очень.

На 10, 11, 12 — ни разу не сталкивался. :confused:

  • #16

Ответ: Глюк при копировании и вставке

Ну хорошо, я тут проверил на машинах своих коллег (у которых винда вгружается с RU), действительно в Ворде сочетания работают. Тут я переборщил. У меня есть подозрение что Ворд учитывает раскладку при установке. Но, есть у нас старенький PentiumIII, на нем Win98 — ни одно сочетание в Ворде не работает! Я даже потрудился и вгрузил win98 как полагается с EN — всё ОК. Так что друзья мои не всё так гладко с русским языком как вы говорите.

> Shlyapa

Что-то ты недоговариваешь насчет аккордов в Иллюстраторе. Еще раз проверил CS (даже удалял префы) — не работают аккорды. Опять же проверял у своих коллег (у которых винда вгружается с RU), поставил AI CS — заработал только Ctrl+] (объект наверх), все остальные не работают (отказался работать даже Ctrl+Alt+2 – Unlock All).

Тестировались Win98, 2000 (4 SP), XP (1 SP) — все системы являются копиями с лицензионных дисков (потому как мы иногда на заказ привозим многим лицензионные диски :D )
___________________________________________

И главное (!). Я тут спор затеял со Shlyapa о том нужно ли чтоб винда вгружалась с EN или не нужно. В свое время античная философия отработала прием, когда в результате долгой дискуссии оппонент начинал противоречить самому себе. Теперь пут все присутствующие почитают объяснения самого Shlyapa о работе клавиш в Кореле

http://www.graphics.ru/forum/read.php?f=23&i=1288&t=1235&v=t

Можете почитать все ветки (там много интересного)

  • #17

Ответ: Глюк при копировании и вставке

Rulchik сказал(а):

На 10, 11, 12 — ни разу не сталкивался. :confused:

12-й, вроде бы, да, не проявляет особой чувствительности к раскладке. А вот 11-й, а особенно 10-й — таки, проявляли.

  • #18

Ответ: Глюк при копировании и вставке

Да проверил сейчас 12-й. И впрямь работают все шоткаты, но в 11-м не работает половина. Уж не знаю какими аккордами пользуется Rulchik, но у меня, факт, половина основных вообще ни в какую.

Есть подозрение что в 12-м всё ОК по причине перехода на юникод.

  • #19

Ответ: Глюк при копировании и вставке

>>> А вот 11-й, а особенно 10-й — таки, проявляли.
Угу, проверяли. Однако следует отметить, что при ру-раскладке клавиши не отрубались напрочь, а лишь заменялись на нечто непотребное, например Ctrl+Z > Alt+Backspace — что-то примерно так.

Далее, насчёт того, что «Между прочим некоторые программы (правда, сейчас на вскидку не припомню поимённо) чувствительны просто к пробелам в путях, независимо от того, содержат пути кириллицу или нет.» Фигня. Возможно и существует проблема «пробелов», однако я не сталкивался. А вот насчёт кириллицы в имени юзера и соответственно, по дефолту, в пути к темповским файлам в ХР, напомню элементарный пример — несохранение 11-м Корелом настроек «Quick Correct» и некоторых других в данном случае, а также связанное с этим шаманство с файлом тмп.тмп, его переименованием и пересохранением для решения проблемы. С английским юзером и кучей пробелов в пути сие неудобство не проявлялось ни разу.

Далее. Насчёт аккордов в Илле. CS CE.
>>> поставил AI CS — заработал только Ctrl+] (объект наверх), все остальные не
>>> работают (отказался работать даже Ctrl+Alt+2 – Unlock All).
Подтверждаю. Периодически отдельные клавиши отказываются работать. Причём с En-раскладкой. Последовательности не выявлено. Вобщем это пожалуй ещё один аргумент, позволяющий говорить о CS линейке в общем и, главным образом об Илле СS (в т.ч. и не CE), как о продукте достаточно сыром, выпущенным в дикой спешке…

  • #20

Ответ: Глюк при копировании и вставке

Ставил CS (весь) уж на дюжину компов, на которых время от времени и работаю. И нигде быстрые клавиши работать не отказываются. А ведь на двух третях этих компов русская раскладка по умолчанию. И имена пользователей русские практически на всех. Вот почему у меня так?

> о CS линейке в общем и, главным образом об Илле СS (в т.ч. и не CE), как о продукте достаточно сыром, выпущенным в дикой спешке…

О всей CS-линейке я не стал бы так говорить. Из всей линейки только AI продемонстрировал некоторую сырость, а со всеми остальными проблем не замечено. Бывает, по мелочам — но нет программ совсем без ошибок.

87 / 66 / 8

Регистрация: 29.09.2009

Сообщений: 425

1

Ошибка при чтении данных из буфера обмена

01.12.2010, 16:10. Показов 24662. Ответов 9


Доброго вермени суток.На ПК стоит WIN XP SP2. С недавних пор стал замечать что тупит буфер обмена.Т.е. после копирования(файла, текста) недоступен пункт меню «вставить». Ctrl+V тоже не срабатывает(просто ничего не происходит). В Paint попытка «вставить» приводит к ошибке: «Ошибка при чтении даных из буфера обмена». А в DownloadMaster попытка добавить новую закачку приводит к ошибке «Cannot open clipboard». Проблема возникает спонтанно и пока решается перезагрузкой. Кто что может посоветовать уважаемые форумчане? На вирусы проверял касперским, вроде ниче не нашел…

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

Почетный модератор

14003 / 3621 / 87

Регистрация: 11.06.2009

Сообщений: 11,783

01.12.2010, 19:27

2

попробуйте пообщаться с программкой clipbrd.exe из папки Windows/system32…
там можно и смотреть и чистить буфер …
Для того чтобы очистить буфер обмена необходимо запустить уже известный нам файл и нажать на крестик либо «Правка – Удалить».
Да..еще может память протестировать попробовать..

2

87 / 66 / 8

Регистрация: 29.09.2009

Сообщений: 425

01.12.2010, 21:25

 [ТС]

3

Спасибо, прикольная штука «clipbrd.exe» сколько лет на винде сижу не знал даже. А память проверю, завтра отпишусь.

0

Почетный модератор

14003 / 3621 / 87

Регистрация: 11.06.2009

Сообщений: 11,783

01.12.2010, 21:40

4

Джуниор, признаюсь по секрету, только -чур никому, лады ? Если бы не Ваш вопрос, я бы тоже не узнал про этот встроенный утиль винды Ну ни к чему было

0

magirus

01.12.2010, 21:41

Не по теме:

Цитата
Сообщение от Almiqui
Посмотреть сообщение

я бы тоже не узнал про этот встроенный утиль винды

я про него уже забыть успел…

0

87 / 66 / 8

Регистрация: 29.09.2009

Сообщений: 425

08.12.2010, 15:20

 [ТС]

6

Лучший ответ Сообщение было отмечено vavun как решение

Решение

Сегодня наконец то повторилась проблема, которая описывается выше. Как и посоветовал Almiqui
запустил системную утилиту clipbrd.exe. Открывался долго долго и накнец руганулся что размер объекта буфера слишком велик(не знаю кто и что туда пытается копировать или это какой то сбой). Вобщем нажал очистить буфер. И все заработало без перезагрузки. Есть смутные подозрения что эту ситуацию с буфером вызывает VIRTUAL PC от Microsoft.

1

32 / 32 / 2

Регистрация: 06.07.2010

Сообщений: 129

03.01.2012, 23:53

7

У меня тоже эта проблема наблюдается. Однако нет никакого VIRTUAL PC. Значит не в нем дело.

0

680 / 330 / 5

Регистрация: 01.03.2010

Сообщений: 1,387

04.01.2012, 10:12

8

1. увеличить файл подкачки
2. сделать дефрагментацию HDD
3. прогнать память memtest’ом
4. почистить системный диск от мусора
5. временно удалить касперского
6. проверить систему на вирусяки утилиткой AVZ

0

278 / 197 / 62

Регистрация: 08.11.2010

Сообщений: 1,762

02.11.2015, 07:59

9

Была у меня такая проблема недавно, во всем был виноват Скайп.

0

1 / 1 / 0

Регистрация: 14.10.2012

Сообщений: 6

26.02.2016, 18:12

10

Цитата
Сообщение от Джуниор
Посмотреть сообщение

Сегодня наконец то повторилась проблема, которая описывается выше. Как и посоветовал Almiqui
запустил системную утилиту clipbrd.exe. Открывался долго долго и накнец руганулся что размер объекта буфера слишком велик(не знаю кто и что туда пытается копировать или это какой то сбой). Вобщем нажал очистить буфер. И все заработало без перезагрузки. Есть смутные подозрения что эту ситуацию с буфером вызывает VIRTUAL PC от Microsoft.

Мне этот способ тоже помог . Правда там нет пункта очистить, я там выбрал в меню «Правка», а там «Удалить» — после этого буфер обменв приходит в чувство без перезагрузки компьютера
p.s. Но VIRTUAL PC тут и правда непричём…

0

Почему следующий код иногда вызывает исключение с содержимым «CLIPBRD_E_CANT_OPEN»:

Clipboard.SetText(str);

Обычно это происходит при первом использовании буфера обмена в приложении, а не после этого.


Robert, 16 сентября 2008 г., 05:50

55

20 062

7


Ответы:

Решено

На самом деле, я думаю, это ошибка Win32 API.

Чтобы установить данные в буфер обмена, вы должны сначала Открой это. Буфер обмена может быть открыт только для одного процесса. Итак, когда вы проверяете, имеет ли другой процесс открытый буфер обмена по любой причине, ваша попытка открыть его потерпит неудачу.

Так уж получилось, что службы терминалов отслеживают буфер обмена, и в более старых версиях Windows (до Vista) вам нужно открыть буфер обмена, чтобы увидеть, что внутри … что в конечном итоге блокирует вас. Единственное решение — дождаться, пока службы терминалов закроют буфер обмена, и повторить попытку.

Однако важно понимать, что это не относится к службам терминалов: это может случиться с чем угодно. Работа с буфером обмена в Win32 — это состояние гигантской гонки. Но, поскольку по замыслу вы должны возиться с буфером обмена только в ответ на ввод данных пользователем, это обычно не представляет проблемы.


Tadmas, 16 сентября 2008 г., 06:21

Это вызвано ошибкой / функцией в буфере обмена служб терминалов (и, возможно, другими вещами) и реализацией буфера обмена .NET. Задержка открытия буфера обмена вызывает ошибку, которая обычно проходит в течение нескольких миллисекунд.

Решение состоит в том, чтобы попробовать несколько раз в цикле и засыпать между ними.

for (int i = 0; i < 10; i++)
{
    try
    {
        Clipboard.SetText(str);
        return;
    }
    catch { }
    System.Threading.Thread.Sleep(10);
} 

Robert, 16 сентября 2008 г., 07:07

На самом деле может возникнуть другая проблема. Вызов фреймворка (варианты WPF и winform) примерно так (код взят из отражателя):

private static void SetDataInternal(string format, object data)
{
    bool flag;
    if (IsDataFormatAutoConvert(format))
    {
        flag = true;
    }
    else
    {
        flag = false;
    }
    IDataObject obj2 = new DataObject();
    obj2.SetData(format, data, flag);
    SetDataObject(obj2, true);
}

Обратите внимание, что в этом случае SetDataObject всегда вызывается со значением true.

Внутренне это вызывает два вызова win32 api: один для установки данных, а другой для их удаления из вашего приложения, чтобы он был доступен после закрытия приложения.

Я видел несколько приложений (несколько плагинов для Chrome и менеджер загрузок), которые прослушивают событие буфера обмена. Как только сработает первый вызов, приложение откроет буфер обмена для просмотра данных, а второй вызов сброса завершится ошибкой.

Не нашел хорошего решения, кроме как написать свой собственный класс буфера обмена, который использует прямой API Win32 или вызвать setDataObject напрямую с false для хранения данных после закрытия приложения.


Yishai, 30 июля 2012 г., 20:57

Я решил эту проблему для своего собственного приложения, используя собственные функции Win32: OpenClipboard (), CloseClipboard () и SetClipboardData ().

Ниже созданного мной класса-оболочки. Может ли кто-нибудь пожалуйста просмотреть его и скажи, правильно это или нет. Особенно, когда управляемый код работает как приложение x64 (я использую Any CPU в параметрах проекта). Что происходит, когда я подключаюсь к библиотекам x86 из приложения x64?

Спасибо!

Вот код:

public static class ClipboardNative
{
    [DllImport("user32.dll")]
    private static extern bool OpenClipboard(IntPtr hWndNewOwner);

    [DllImport("user32.dll")]
    private static extern bool CloseClipboard();

    [DllImport("user32.dll")]
    private static extern bool SetClipboardData(uint uFormat, IntPtr data);

    private const uint CF_UNICODETEXT = 13;

    public static bool CopyTextToClipboard(string text)
    {
        if (!OpenClipboard(IntPtr.Zero)){
            return false;
        }

        var global = Marshal.StringToHGlobalUni(text);

        SetClipboardData(CF_UNICODETEXT, global);
        CloseClipboard();

        //-------------------------------------------
        // Not sure, but it looks like we do not need 
        // to free HGLOBAL because Clipboard is now 
        // responsible for the copied data. (?)
        //
        // Otherwise the second call will crash
        // the app with a Win32 exception 
        // inside OpenClipboard() function
        //-------------------------------------------
        // Marshal.FreeHGlobal(global);

        return true;
    }
}

Mar, 11 мая 2015 г., 13:45

Я знаю, что это старый вопрос, но проблема все еще существует. Как упоминалось ранее, это исключение возникает, когда системный буфер обмена заблокирован другим процессом. К сожалению, существует множество инструментов для вырезания, программ для создания снимков экрана и инструментов для копирования файлов, которые могут блокировать буфер обмена Windows. Таким образом, вы будете получать исключение каждый раз, когда попытаетесь использовать Clipboard.SetText(str), когда такой инструмент установлен на вашем ПК.

Решение:

Никогда не использовать

Clipboard.SetText(str);

Использовать вместо

Clipboard.SetDataObject(str);

pr0gg3r, 24 августа 2016 г., 16:46

Это случилось со мной в моем приложении WPF. Я получил ошибку OpenClipboard (исключение из HRESULT: 0x800401D0 (CLIPBRD_E_CANT_OPEN)).

Я использую

ApplicationCommands.Copy.Execute(null, myDataGrid);

Решение — сначала очистить буфер обмена

Clipboard.Clear();
ApplicationCommands.Copy.Execute(null, myDataGrid);

Ellix4u, 11 мая 2017 г., 11:36

Используйте версию WinForms (да, использование WinForms в приложениях WPF не вредно), она обрабатывает все, что вам нужно:

System.Windows.Forms.SetDataObject(yourText, true, 10, 100);

Это попытается скопировать ваш текст в буфер обмена, он останется после того, как ваше приложение существует, будет пытаться до 10 раз и будет ждать 100 мс между каждой попыткой.

Ref. https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.clipboard.setdataobject?view=netframework-4.7.2#System_Windows_Forms_Clipboard_SetDataObject_System_Object_System_Boolean_System_Int32_System_Int32_System_


Bret, 4 ноября 2020 г., 21:26

Интересные вопросы для изучения

This is copied from an email that was sent to me:

I’m trying to run a project (chess-alpha-zero) which uses your pyperclip package
I’m using anaconda python 3.6.4 64 bit on windows 10 with pyperclip 1.6.0 package from conda-forge

I am getting the following error:
Traceback (most recent call last):
File «src/chess_zero/run.py», line 20, in
manager.start()
File «srcchess_zeromanager.py», line 64, in start
return self_play.start(config)
File «srcchess_zeroworkerself_play.py», line 25, in start
return SelfPlayWorker(config).start()
File «srcchess_zeroworkerself_play.py», line 69, in start
pretty_print(env, («current_model», «current_model»))
File «srcchess_zerolibdata_helper.py», line 27, in pretty_print
pyperclip.copy(env.board.fen())
File «C:UsershananAnaconda3libsite-packagespyperclip_init_.py», line 574, in lazy_load_stub_copy
return copy(text)
File «C:UsershananAnaconda3libsite-packagespyperclip_init_.py», line 416, in copy_windows
with clipboard(hwnd):
File «C:UsershananAnaconda3libcontextlib.py», line 81, in enter
return next(self.gen)
File «C:UsershananAnaconda3libsite-packagespyperclip_init_.py», line 400, in clipboard
raise PyperclipWindowsException(«Error calling OpenClipboard»)
pyperclip.PyperclipWindowsException: Error calling OpenClipboard ([WinError 5] Access is denied.)
Exception in thread prediction_worker:
Traceback (most recent call last):
File «C:UsershananAnaconda3libthreading.py», line 916, in _bootstrap_inner
self.run()
File «C:UsershananAnaconda3libthreading.py», line 864, in run
self._target(*self._args, **self._kwargs)
File «srcchess_zeroagentapi_chess.py», line 62, in _predict_batch_worker
while pipe.poll():
File «C:UsershananAnaconda3libmultiprocessingconnection.py», line 257, in poll
return self._poll(timeout)
File «C:UsershananAnaconda3libmultiprocessingconnection.py», line 328, in _poll
_winapi.PeekNamedPipe(self._handle)[0] != 0):
BrokenPipeError: [WinError 109] The pipe has been ended

The calling function and argument is:
pyperclip.copy(‘8/p7/3pk3/2p1b1Bp/4P2P/4NK2/2R5/4q3 b — — 10 52’)

when I run the same command in a python shell it runs ok

as you can see from the remainder of the trace the program runs within the ‘multiprocessing’ framework, spawning several workers
could that be the problem causing the windows access problem?
do you have a suggestion how to fix it?

This is copied from an email that was sent to me:

I’m trying to run a project (chess-alpha-zero) which uses your pyperclip package
I’m using anaconda python 3.6.4 64 bit on windows 10 with pyperclip 1.6.0 package from conda-forge

I am getting the following error:
Traceback (most recent call last):
File «src/chess_zero/run.py», line 20, in
manager.start()
File «srcchess_zeromanager.py», line 64, in start
return self_play.start(config)
File «srcchess_zeroworkerself_play.py», line 25, in start
return SelfPlayWorker(config).start()
File «srcchess_zeroworkerself_play.py», line 69, in start
pretty_print(env, («current_model», «current_model»))
File «srcchess_zerolibdata_helper.py», line 27, in pretty_print
pyperclip.copy(env.board.fen())
File «C:UsershananAnaconda3libsite-packagespyperclip_init_.py», line 574, in lazy_load_stub_copy
return copy(text)
File «C:UsershananAnaconda3libsite-packagespyperclip_init_.py», line 416, in copy_windows
with clipboard(hwnd):
File «C:UsershananAnaconda3libcontextlib.py», line 81, in enter
return next(self.gen)
File «C:UsershananAnaconda3libsite-packagespyperclip_init_.py», line 400, in clipboard
raise PyperclipWindowsException(«Error calling OpenClipboard»)
pyperclip.PyperclipWindowsException: Error calling OpenClipboard ([WinError 5] Access is denied.)
Exception in thread prediction_worker:
Traceback (most recent call last):
File «C:UsershananAnaconda3libthreading.py», line 916, in _bootstrap_inner
self.run()
File «C:UsershananAnaconda3libthreading.py», line 864, in run
self._target(*self._args, **self._kwargs)
File «srcchess_zeroagentapi_chess.py», line 62, in _predict_batch_worker
while pipe.poll():
File «C:UsershananAnaconda3libmultiprocessingconnection.py», line 257, in poll
return self._poll(timeout)
File «C:UsershananAnaconda3libmultiprocessingconnection.py», line 328, in _poll
_winapi.PeekNamedPipe(self._handle)[0] != 0):
BrokenPipeError: [WinError 109] The pipe has been ended

The calling function and argument is:
pyperclip.copy(‘8/p7/3pk3/2p1b1Bp/4P2P/4NK2/2R5/4q3 b — — 10 52’)

when I run the same command in a python shell it runs ok

as you can see from the remainder of the trace the program runs within the ‘multiprocessing’ framework, spawning several workers
could that be the problem causing the windows access problem?
do you have a suggestion how to fix it?

  • Ошибка при вызове конструктора ftpсоединение ошибка аутентификации при доступе к ресурсу
  • Ошибка при вызове loadlibrary не найдена указанная процедура
  • Ошибка при вызове конструктора ftp соединение
  • Ошибка при вызове loadlibrary не найден указанный модуль regsvr32
  • Ошибка при вызове конструктора comобъект установлен безопасный режим выполнение запрещено 1с