2011-07-12 14 views
0

Silverlight 4.0で作業していて、サイトからエラーをコピーするためにクリップボード(System.Windows)クラスを使用しました。Silverlight 4でClipboard_AccessNotAllowedエラーが発生しました

私のマシンでは正常に動作しているが、私は他のマシンからアクセスしようとしているとき、私はエラーをfollwing取得しています:

「[Clipboard_AccessNotAllowed] 引数: デバッグリソース文字列が使用できない多くの場合、キーを押します。そして、引数は、問題を診断するための十分な情報を提供する私のコードは以下の通りです」

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の中で私にとって役に立つものは何も見つかりませんでした。

お勧めします。

答えて

1

自分のマシンで「自分の答えを覚えていますか?自分のマシンでそれを理解する1つの方法は、ブラウザのキャッシュをクリアすることです。私はclientaccesspolicyがそれと関係がないとは思わない。これは、クライアントクリップボードにアクセスしようとするクライアントアプリケーションです。 Silverightアプリケーションはブラウザで部分的に信頼されて実行されています(そのため、この確認メッセージはSetTextとGetTextでポップアップします)。

クリップボードへのアクセスを許可する質問もまた設計上のものです。ユーザーは常に許可を与えるべきです。アクションが(ボタンをクリックするなどの)ユーザーアクションである場合のみ、クリップボードアクセスに書き込むことができます。だから私は思う)

を、ユーザーが入力を求め得ることはありませんが、特権でアプリケーションを実行する前に、彼はプロンプトが表示されますので、

メッセージを回避するには、特権で、ブラウザからそれを実行して試みることができますあなたはとにかくユーザーのための確認ダイアログがついています。それは非常に大きな問題ではありません、彼らは選択を覚えている、彼らはもはやプロンプトされません。ここで

0

は解決策ですが、それはIEのみ

Microsoft.LightSwitch.Threading.Dispatchers.Main.BeginInvoke(() => HtmlPage.Window.Eval("window.clipboardData.setData('Text','testtestest')")); 
のために働く
関連する問題