ファイルに書き込むバックグラウンドタスクのみを実行するC#アプリケーションをWin10で作成しようとしています。Win10のバックグラウンドタスクのファイルアクセス権
以下のコードを実行すると、 'C:\ temp'というパスへのアクセスが拒否された後、UnauthorizeAccessException例外がスローされます。 ファイルとディレクトリの両方にEveryoneのフルアクセス権があります。
さらに、バックグラウンドタスクにアクセスして実行することはできますか?私は現代のスタンバイの間にバックグラウンドタスクを実行しようとしており、いくつかのレジスタを読み込んだり、別のツールを実行したりしています。現代のスタンバイではまだ可能ですか?ここで
は、そうすることで私の試みのコードです:
バックグラウンドタスク:
using Windows.ApplicationModel.Background;
using System.IO;
namespace RuntimeComponent2
{
public sealed class Class1 : IBackgroundTask
{
public void Run(IBackgroundTaskInstance taskInstance)
{
File.WriteAllText(@"C:\temp\test.txt", "test");
}
}
}
メインページ:
using System;
using Windows.ApplicationModel.Background;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;
namespace App3
{
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
var exampleTaskName = "MyTask1";
foreach (var t in BackgroundTaskRegistration.AllTasks)
{
t.Value.Unregister(true);
}
await BackgroundExecutionManager.RequestAccessAsync();
var builder = new BackgroundTaskBuilder();
builder.Name = exampleTaskName;
builder.TaskEntryPoint = "RuntimeComponent2.Class1";
builder.SetTrigger(new SystemTrigger(SystemTriggerType.TimeZoneChange, false));
BackgroundTaskRegistration task = builder.Register();
}
}
}
私は、ダウンロード中にファイルを作成することに成功した、それが置かれましたこのアプリケーションに固有のフォルダで、私はバックグラウンドタスク中にそれを使用できませんか? このバックグラウンドクラスを介して(コマンドラインを使用して)他のプログラムを実行するとどうなりますか?それはまた不可能ですか? –
@zero_cc、Igor Damianiに同意し、バックグラウンドタスクでファイルを書き込むことは可能ですが、あなたのバックグラウンドタスクは 'TimeZoneChange'によってトリガーされます。 –
@ GraceFeng-MSFT私はTimeZoneChangeトリガを起動すると、うん、バックグラウンドタスクが実行されます。私はVisual Studioのトリガー機能と手動でタイムゾーンを変更することでそれを起動しましたが、問題はありません。 –