Ошибка при вызове openclipboard в solidworks - IT Справочник
Llscompany.ru

IT Справочник
76 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

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

Пишите свои мнения о программах, расширяющих возможности буфера обмена:
— плюсы/минусы
— потребление памяти
— глюки (обязательно подробности, а не просто она глючная!!)
— удобство для тех или иных применений (укажите, каких)
Сравнивайте разные программы, указывая критерии (не забудьте, что они, как и потребности, у всех индивидуальны), или просто кратко сообщайте о новой программе ( ссылка и описание — обязательно)

CLCLвнешне простая, но весьма функциональная и настраиваемая: плагины, настройка горячих клавиш, фильтр запоминаемых форматов (например, только текст или картинки). Бесплатна и с открытым кодом. Тема в программах
ClipX — по стилю работы напоминает CLCL, но ещё проще и меньше, лучше настраиваются клавиши, хранит картинки, удобный фильтр-поиск. Тема в программах
Clibor — компактный по размеру, портативный менеджер от японских производителей. Поддерживает FIFO/LIFO, Unicode, инкрементный поиск, пароль при запуске и многое другое Доступны переводы версии 1.4.9 и Русская сборка 1.4.9
ClipDiary — простой, но продуманный и вполне достаточный большинству буфер.
ClipCache Pro — навороченный буфер. Редактирование, фильтры, информация источника и т.д.
ClipAngel — удобный фильтр, поддержка отображения HTML, RTF, TXT, картинок, списков файлов, редактирование TXT, много операций над клипами и их файлами, горячие клавиши, любимые клипы, эмуляция ввода, сравнение клипов, информация об источнике клипа (заголовок окна, приложение, URL). Бесплатна и с открытым кодом.
Ditto
CopyQ — очень интересный менеджер буфера обмена с большими возможностями. Приложение работает под Linux и Windows.
ClipJump — опенсорсная, на базе знаменитого интерпретатора скриптов AutoHotkey. В целом неплохая, быстрая, лёгкая, довольно функциональная. Подробнее.
ClipboardFusion — авто-форматирование или удаление форматирования, редактирование текста в буфере (авто-удаление символов, пробелов, переводов каретки, табуляций в начале и конце клипа). Поддержка макросов, своих или готовых с офсайта. Тема в варезнике .
ClipMate
ArsClip
Swift Paste — подробнее
Ethervane Echo — Бесплатный. Русского языка нет. Копируемые данные автоматически сортируются и раскидываются по заранее созданным вкладкам. Настройки гибкие, но неудобные.
Spartan
AccelClip — Ссылка на загрузку

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Ради интереса и расширения кругозора поюзал пару дней Swift Paste. За это время она раз 5 самопроизвольно «отвалилась» (перестала следить за буфером обмена), приходилось подключать вручную командой [Re-Monitor Clipboard].
Также несколько раз (вне связи с первой проблемой) главное меню теряло атрибут «Поверх всех окон», приходилось его вытаскивать вручную.

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

Единственный разумный вариант: использовать опцию [Auto-hide menu bar]. Но в этом случае приходится прилагать дополнительные усилия и тратить секунды, чтобы сначала достать эту полоску из скрытого состояния. Было бы логично сделать, чтобы меню автоматически вываливались при наведении указателя мыши (без необходимости кликать левой кнопкой), но и такой возможности тоже не предусмотрено

Я что-то упустил?

Добавлено:
В качестве (единственного??) положительного момента (дабы не обвинили в необъективности) : Swift Paste является одним из немногих менеджеров буфера обмена, которые при вызове своего списка клипов не перехватывают фокус ввода. Это позволяет использовать их для вставки в такие специфические места, как, например, окно переименования файла в Windows’ Explorer, Total Commander и пр. (большинство буферных утилит для этого не годятся, так как при вызове списка клипов модальное окно переименования файла автоматически закрывается.)

За буфером обмена следить не прекращала (факт не 100%, мог не обратить внимания).
Поверх всех окон не делал, у меня включено автоскрытие (без него, действительно, мешает).
Ну а так, в целом, согласен. Но я и не думаю её использовать как основной МБО, основной и любимый у меня ClipCachePro. Так, в определённых ситуациях удобна. В автозапуске она у меня тоже не постоянно, потестирую ещё, да уберу, оставлю только ярлык в нужном месте для быстрого доступа.
P. S. А вообще — понравилась прога больше всех прочих МБО, за исключением ClipCachePro, который тоже не без минусов.
P. P. S. Добавил в шапку

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Ребята, подскажите пожалуйста, какие из ваших утилит могут обрабатывать текст в буфере по заданному юзером произвольному шаблону? Например, заменить в тексте все буквы «а» на буквы «щ»: копируем в память текст «абракадабра», оно там обрабатывается — и потом возвращает нам слово «щбрщкщдщбщ» Или заключить текст в скобки: копируем «абракадабра», получаем [абракадабра]. И так далее.

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

Можете что-то посоветовать?

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Any_utka
Я не уверен на 100%, но посмотрите help к программе ClipJump, где-то, вроде что-то было. (ссылки стрраничкой раньше)
Кстати, про ClipJump.. Обнаружились пара косяков..
1. Мож чего не понимаю, но программа при запуске предупреждает, что для корректной работы необходим запуск от имени Администратора, хотя сама при активации пункта меню «Options-Run at startup «просто добавляет ярлык в папку » Startup» без активации опции «запускать как администратор».
2. Не знаю, что не так с моей системой, но каждые 3-4 дня начинает при запуске вылетать с ощибкой «target label does not exist».
oshizelly

Читать еще:  Проверить xml на ошибки онлайн

Есть такое. А еще с ним у меня один нужный vbs не работает. Пишет: Ошибка при вызове OpenClipboard
Точне проблема с компилированным в exe vbs. С другими клипборд менеджерами такой ошибки нет.

Добавлено:
Также с ClipJump не работает Опечатка v 2.711 (snoop2).

ClipJump
Также, если навскидку, то:
VirtAssist
Clipboard Master (тяжёлый, грузит в системный реестр сотни!! своих ключей, как какой-нибудь MS Office, но в портабельном варианте можно юзать)
Typing Assistant (это вообще-то не менеджер буфера обмена, но у него есть также некоторый функционал)

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

Добавлено:
vadim3sh 23:40 13-05-2014
Цитата:

Openclipboard Failed

Openclipboard Failed

Openclipboard Failed

I keep on having the error «Openclipboard Failed» when I am working on assemblies either with inserting my own parts or assemblies or insterting parts from the toolbox. It has happened ever since I installed SW on my current machine that meets all of SW specs (Pentium D 3.4GHz with 2GB of RAM with a NVIDIA Quadro FX 1500)
I thought my upgrade to 2007 would fix it, but I am still getting the error and my reseller has never seen it before and are working with SW to figure it out. Does anyone have any ideas?
What I do now is just click okay on the error and try again until it works (1 to 5 times)

RE: Openclipboard Failed

I get that error message a lot as well. Dell Precision workstation PWS380 with 2 Gb RAM, NVidia Quadro FX 3450/4000 SDI.

Started in 2006. It seems to happen randomly. The inserted component appears fixed in space but applying any mate to it «frees it up» to be positioned normally. When I get it Solidworks won’t let me insert multiple instances of that component unless I enter it again as I did the first instance.

Even restarting Solidworks doesn’t seem to affect this random situation.

I know this doesn’t help much, but at least you know others experience this as well.

RE: Openclipboard Failed

«What I do now is just click okay on the error and try again until it works (1 to 5 times)»

That’s what I do also whenever I get that error. I just accepted it as one of SW quirks and keep on working. I am using SW06, with SW recommended drivers also, so I think it is a SW error (not user error).

RE: Openclipboard Failed

This may not be a SW error! Or if it is it’s in how SW handles the Windows Clipboard function.

Do a google for Openclipboard Failed & you will see it happens in a lot of different programs.

When you get this error are you drag-n-dropping or using the File > Insert method?

RE: Openclipboard Failed

It makes me happy that I’m not the only one to have this problem (sorry for the others in my boat)

It happens when I drag from the toolbox or file > insert.

I guess I just live with it like everyone else does.

RE: Openclipboard Failed

I use «insert components» from the Command Manager. I didn’t find anything on the SW side for «Openclipboard Failed» though.

RE: Openclipboard Failed

I have the same problem with Solidworks 2004 SP 1. It only happens when I am running on a remote system, though. From what I can tell, it is an issue with Excel being built in, though I have not verified that. All of my research leads me to believe that it is, though. I am wondering now if it has to do with parts that have design tables. if someone has the free time to check into that.

I don’t drag & drop, I use Insert > Existing Component or the Command Manager.

RE: Openclipboard Failed

It happens to us on items without design tables. I’m inclined to agree it’s a Windows-Solidworks problem though. We use Office 2000 here. Maybe that’s a common link?

When I googled «OpenClipboard failed» last week I gave up after seeing how common it is with a lot of software. Looks like one of those things I’ve learned to live with.

RE: Openclipboard Failed

Remember.
«If you don’t use your head,
your going to have to use your feet.»

RE: Openclipboard Failed

Here’s something brand new to me this morning.

I opened a part I created yesterday. I tried to insert it into a new assembly. In the new assy I got the openclipboard failed error. The part did not insert. Solidworks closed itself «DUE TO AN ERROR».

That happened twice so I closed all software, cleared the temp files, and restarted the PC. Opened everything except Excel and tried again. Same result.

Shut down again, cleared TEMP, opened Solidworks only. It worked fine.

Opened my normal software, everything is OK again.

The issue has been annoying for months. Today it elevated itself to #%*@$!

RE: Openclipboard Failed

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members! Already a Member? Login

Ошибка CLIPBRD_E_CANT_OPEN при настройке буфера обмена из .NET.

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

Читать еще:  Что это за ошибка

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

.net clipboard wpf

6 ответов

29 Решение Tadmas [2008-09-16 05:21:00]

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

Чтобы установить данные в буфер обмена, сначала откройте его. Только один процесс может открывать буфер обмена одновременно. Таким образом, когда вы проверяете, если какой-либо другой способ открывает буфер обмена по какой-либо причине, ваша попытка открыть его не удастся.

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

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

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

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

8 pr0gg3r [2016-08-24 16:46:00]

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

никогда не используйте

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

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

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

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

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

4 Mar [2015-05-11 13:45:00]

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

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

0 MaxyDav [2017-05-11 11:36:00]

Это происходит со мной в моем приложении WPF. У меня возникла ошибка OpenClipboard (исключение из HRESULT: 0x800401D0 (CLIPBRD_E_CANT_OPEN)).

решение состоит в том, чтобы сначала очистить буфер обмена

Ошибка CLIPBRD_E_CANT_OPEN при установке буфера обмена из .NET

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

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

6 Ответов

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

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

На самом деле, я думаю, что это вина Win32 API .

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

Просто так получилось, что Terminal Services отслеживает буфер обмена, и в более старых версиях Windows (pre-Vista) вам нужно открыть буфер обмена, чтобы увидеть, что находится внутри. что в конечном итоге блокирует вас. Единственное решение-дождаться, пока Terminal Services закроет буфер обмена, и повторить попытку.

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

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

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

используйте вместо этого

На самом деле здесь может быть и другая проблема. Вызов фреймворка (как WPF, так и WinForm вкусов) к чему-то вроде этого (код от reflector):

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

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

Читать еще:  Проверка внешнего диска на наличие ошибок

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

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

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

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

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

решение состоит в том, чтобы сначала очистить буфер обмена

Похожие вопросы:

Кто-нибудь заметил, что если вы извлекаете HTML из буфера обмена, он получает неверную кодировку и вводит странные символы? Например, выполнение такой команды: string s = (string).

Мое приложение использует метод Copy() DataGrid для извлечения всех данных для экспорта в CSV и другие форматы. Все, что я делаю-это Очистить буфер обмена Звоните myGrid.Copy() Теперь это обычно.

При каких обстоятельствах функция Win32 API OleGetClipboard() выйдет из строя и вернет CLIPBRD_E_CANT_OPEN ? Дополнительная информация: я помогаю с исправлением ошибки Firefox. Подробности здесь.

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

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

Я делаю это в C#,, но, я думаю,это не языковая проблема. У меня есть пример кода о том, как определить, когда содержимое буфера обмена изменяется. Теперь я хочу изменить текст, который только что.

Я пишу надстройку C# Word 2013, которая запутывает содержимое буфера обмена, если копируемое содержимое находится в управляемом приложении Word. У меня есть несколько вопросов. Я столкнулся с.

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

Hi All! Subj. На последней строчке в этом куске:

windows.BringWindowToTop(h_pars);
PressKeys(«Ctrl+C»,10); // эмуляция нажатия на клавиши
line := Clipboard.AsText;

в стандартном модуле Clipbrd в этои вот месте:

if not OpenClipboard(FClipboardWindow) then
raise Exception.CreateRes(@SCannotOpenClipboard);

прога орет, что не может прочесть буфер. В чем может быть дело?


Jeer © ( 2004-11-17 17:44 ) [1]

Значит там не текст:(


cvg ( 2004-11-17 17:49 ) [2]

Ctrl-C грабит экран в окне, которое стало делается активным в первой приведенной строчке, правильно? Там таблица с меняющимися данными. Последняя строчка преобразует все, что можно, в текст. Так ведь, вроде?


cvg ( 2004-11-17 18:22 ) [3]

Ну что, больше ни у кого никаких мыслей нет?


Jeer © ( 2004-11-17 18:51 ) [4]


cvg ( 2004-11-18 15:03 ) [5]

Не, все-таки она на второй из нижеприведенных строчек она все равно орет «Cannot open Clipboard» :((

if not Clipboard.HasFormat(CF_TEXT):boolean
if not OpenClipboard(FClipboardWindow) then
raise Exception.CreateRes(@SCannotOpenClipboard);


VMcL © ( 2004-11-18 15:07 ) [6]

Что говорит GetLastError или SysErrorMessage?


cvg ( 2004-11-18 15:36 ) [7]

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


Amoeba © ( 2004-11-18 15:55 ) [8]


> ана все ети дела грабит с экрана

В таком случае в Clipboard нет никакого текста и
line := Clipboard.AsText;
не лезет ни в какие ворота.


cvg ( 2004-11-18 16:23 ) [9]

Хм, а почему ж тогда рекомендованный Clipboard.HasFormat(CF_TEXT):boolean пропустил все это?


Amoeba © ( 2004-11-18 16:28 ) [10]

выполни после «грабления» экрана вот этот код:

if Clipboard.HasFormat(CF_TEXT) then
line := Clipboard.AsText
else
ShowMessage(«Bla-bla-bla!»);


cvg ( 2004-11-18 17:14 ) [11]

Попробовал. Все равно на строке line := Clipboard.AsText выдала ту же ошибку — «Cannot open Clipboard». Да и не думаю я, что это изменение помогло бы, потому что до этого у меня так вот было:

try
line := Clipboard.AsText;
except
raise Exception.Create(«blah-blah-blah»);
end;


cvg ( 2004-11-18 17:15 ) [12]

Попробовал. Все равно на строке line := Clipboard.AsText выдала ту же ошибку — «Cannot open Clipboard». Да и не думаю я, что это изменение помогло бы, потому что до этого у меня так вот было:

try
line := Clipboard.AsText;
except
raise Exception.Create(«blah-blah-blah»);
end;


VMcL © ( 2004-11-18 17:21 ) [13]

>Думешь, это что-нить даст?

Конечно, не даст. Ведь у меня хобби такое — давать бесполезные советы.


Amoeba © ( 2004-11-18 17:28 ) [14]

Если у тебя в буфере изображение захваченное с экрана, то после
if Clipboard.HasFormat(CF_TEXT) then
строка
line := Clipboard.AsText;
выполняться не будет

и не надо никаких
try
.
except
.
end

Просто нужно проверить формат содержимого Clipboard.

И еще. Так и не последовало никакой реакции на Amoeba © (18.11.04 15:55) [8]


cvg ( 2004-11-18 17:45 ) [15]

Ссылка на основную публикацию
ВсеИнструменты 220 Вольт
Adblock
detector