PankilSyn_2011 Ответов: 4

Clipboard_AccessNotAllowed ошибка в Silverlight 4


Привет,

Я работаю с Silverlight 4.0 и я использовал Clipboard(System.Windows) класс для копирования ошибок с сайта.

Он прекрасно работает на моей машине, но когда я пытаюсь получить доступ к нему с другой машины, я получаю ошибку follwing :

"
[Clipboard_AccessNotAllowed]<br />
Arguments:<br />
Debugging resource strings are unavailable. Often the key and arguments provide sufficient information to diagnose the problem. See http://go.microsoft.com/fwlink/?linkid=106663&Version=4.0.60310.0&File=System.Windows.dll&Key=Clipboard_AccessNotAllowed"


Мой код выглядит следующим образом :

private void SetMessageToClipboard(string sMessage)
        {
            try
            {
                Clipboard.SetText(sMessage);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }


Эта ошибка исчезнет, как только вы выберете "запомнить мой ответ" во всплывающем окне Silverlight.

Связано ли это с ClientPolicy?XML-файл? Я его не добавлял. Но я ничего не нашел в ClientPolicy.XML, который может быть полезен для меня.


Пожалуйста, предложите.

4 Ответов

Рейтинг:
2

Christian Graus

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


Рейтинг:
2

Abhinav S

Silverlight 4 имеет поддержку буфера обмена. Вам нужно сделать это с помощью инициализированного пользователем действия.
Видеть здесь[^].


PankilSyn_2011

Привет Абхинав,

Я уже добавил Этот Clipborad, но пока я получаю доступ к нему с другой машины, он выдает упомянутую ошибку.

Pete O'Hanlon

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

PankilSyn_2011

Привет Пит,

Спасибо за комментарий. Пока мы пытаемся получить доступ к буферу обмена, Silverlight запросит разрешение у пользователя.

После того, как пользователь выбрал " нет "означает" не разрешать доступ к Clipbord " во всплывающем окне Silverlight, я получаю эту ошибку.

С Уважением,Панкил Патель

Pete O'Hanlon

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

PankilSyn_2011

Привет Пит,

Да. Пользователю отказано в доступе к буферу обмена. Но обычно он дает правильное исключение типа "буфер обмена не разрешен", а в редких случаях (5%) дает ошибку, о которой я уже упоминал в этом вопросе.

Я не нашел никаких связанных тем ни на сайте microsoft, ни даже в Google :(.

С уважением,
Панкил Патель

Рейтинг:
2

Member 13921567

Правой кнопкой мыши на пустое место -и GT; для Silverlight -&ГТ; разрешения&ГТ; разрешение буфер обмена


Graeme_Grant

Это вопрос 7-летней давности о снятом с производства фреймворке. Пожалуйста, отвечайте на актуальные вопросы...

Рейтинг:
1

A.Bhati

Это довольно очень просто:

Перейдите в меню Пуск-> Все программы->Microsoft Silverlight-> Microsoft Silverlight(нажмите на него)
Это откроет для вас Silverlight.

Теперь перейдите на вкладку разрешения. Вы увидите буфер обмена здесь с разрешением как отказать.
Нажмите кнопку Разрешить -> Нажмите кнопку ОК.

Перезапустите приложение, и теперь ваше приложение Silverlight должно иметь доступ к буферу обмена.

Кроме Кодирования,
Аджай