前回の記事でも書いていたアクセス拒否の件がようやく解決した。
根本的に
まず最初に訂正をしなければ。
ファイル書き込みはまったく問題ありませんでした!!!
クリップボードからデータを取得しようとしてて、その部分でエラーが出ていた模様。
(前の記事も訂正しておきます…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を押されたってことは、アプリがアクティブになるので、すかさずクリップボードからデータを取得する!
(メッセージダイアログはオレオレライブラリなのでw)
まとめ
これでストアの審査が通るかな?
公開されたらアプリの紹介記事でも書こうっと。
あと再現性については、Visual Studioで実行後、スタート画面から単独実行したら再現できるようになった。
これが判明したお蔭で一気に解決した。
アドバイスをして頂いた @biacさん ありがとうございました!!