2011-07-12 70 views
0

我正在使用Silverlight 4.0,並使用剪貼板(System.Windows)類從站點複製錯誤。Silverlight 4中的Clipboard_AccessNotAllowll錯誤

它是工作在我的機器罰款,但是當我試圖從其他機器訪問它,我得到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

你確定你沒有在自己的機器上點擊'記住我的答案'嗎?一種在自己的機器上計算出來的方法是清除瀏覽器緩存。我不認爲clientaccesspolicy與它無關。它是嘗試訪問客戶端剪貼板的客戶端應用程序。 silveright應用程序在您的瀏覽器中部分信任地運行(這就是爲什麼此確認消息在SetText和GetText上彈出)。

允許剪貼板訪問的問題也是由設計決定的。用戶應該始終給予許可。如果操作是用戶操作(如單擊按鈕),則只能寫入剪貼板訪問權限。

爲了避免消息,你可以嘗試運行它提升的權限瀏覽器,因此用戶不會得到提示,但他會提示之前運行與提升的權限申請;)

所以我覺得無論如何,你都會遇到一個確認對話框。這不是什麼大事,一旦他們記住了他們的選擇,他們不會再被提示。

0

這裏是解決方案,但它僅適用於IE

Microsoft.LightSwitch.Threading.Dispatchers.Main.BeginInvoke(() => HtmlPage.Window.Eval("window.clipboardData.setData('Text','testtestest')"));