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

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

Сергей2014

17


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

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

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

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

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

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


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

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


SERoz

SERoz

200


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

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

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


Сергей2014

Сергей2014

17


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

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

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

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

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

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


Гость

Гость


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

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

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

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


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

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

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

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

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

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

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

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

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

  • Сообщения


    • vad0000


    • Tad


    • Ветерок

      Автор:

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

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


    • boomeeeer


    • QWAN

      Автор:

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

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

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

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

       

       

       

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

       


    • Александр1979


    • Александр1979


    • Bruno124

      Автор:

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

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


    • gudstartup

      Автор:

      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

  • Panasonic kx mb1500 сброс ошибки сервис 17 panasonic
  • Paint tool sai ошибка не удалось сохранить холст
  • Panasonic kx mb1500 сброс ошибки барабан изношен замените картридж
  • Paint tool sai выдает ошибку недостаточно памяти
  • Panasonic kx mb1500 работа над ошибками