読者です 読者をやめる 読者になる 読者になる

PG.Lib

主にUWP、C#に関することやガジェット系

アクセス拒否が解決した

WinRT WinRT(Win8)

前回の記事でも書いていたアクセス拒否の件がようやく解決した。

根本的に

まず最初に訂正をしなければ。

ファイル書き込みはまったく問題ありませんでした!!!

クリップボードからデータを取得しようとしてて、その部分でエラーが出ていた模様。

(前の記事も訂正しておきます…orz)

 

何が問題だったか

さて、クリップボードでエラーという事になったのだが、何が悪かったのか?

調べていくと、どうもアプリがアクティブになっていない状態でクリップボードにアクセスするとエラーになるらしい。

何か回避する方法はないか色々探したけど、どうにもならなそうだったので苦肉の策。

private async void Clipboard_ContentChanged(object sender, object e)
{
    try
    {

        if (clipSleep)
        {
            return;
        }

        clipSleep = true;
        // ここでメッセージダイアログ!!
        await Tool.Msg("Paste from the Clipboard?");

        DataPackageView dataPackageView = Clipboard.GetContent();

    finally
    {
        clipSleep = false;
    }
}

クリップボードの変化を取得したら、まずメッセージダイアログを表示する。

OKを押されたってことは、アプリがアクティブになるので、すかさずクリップボードからデータを取得する!

クリップボードについてはMSDNを参考に。

(メッセージダイアログはオレオレライブラリなのでw)

 

まとめ

これでストアの審査が通るかな?

公開されたらアプリの紹介記事でも書こうっと。

あと再現性については、Visual Studioで実行後、スタート画面から単独実行したら再現できるようになった。

これが判明したお蔭で一気に解決した。

アドバイスをして頂いた @biacさん ありがとうございました!!