1

我开发了一个以DispatcherTimer Tick()方法读取剪贴板数据的应用程序。每秒都会读取剪贴板数据。

该应用程序在开发机器中没有抛出异常(在调试或发布模式下),但是如果我在 Win RT 平板电脑设备上发布应用程序,我在读取剪贴板时会出现异常,但奇怪的是仅在“快照视图”模式下。

在全视图模式下,它可以正常工作。

例外是:

"Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))". 

代码看起来像;

private async Task Populate()
{
    try
    {

        var clipboardText = await this.GetTextFromClipboard();
           .....
    }
    catch (Exception ex)
    {
        this.HandleException("Error occured while reading clipboard: ", ex);
    }
 }


private async Task<string> GetTextFromClipboard()
{
    var dataPackageView = Clipboard.GetContent(); // Exception occurs here!!!
    if (dataPackageView.Contains(StandardDataFormats.Text))
    {
        var clipboardText = await dataPackageView.GetTextAsync();
        return clipboardText;
    }

    return string.Empty;
}

这里有什么问题,为什么它只在快照视图模式下发生?

4

0 回答 0