基本的に、「コンソール アプリケーション」から Windows 8 アカウントの画像を設定しようとしています。私が見つけた画像を設定するための唯一の API は、WinRT API にあります。基本的に同じ質問 ( Windows 8 Set User Account Image ) により、少なくともハイブリッドを構築できるようになりましたが、機能していないようです。
private static async Task SetAccountPicture(string employeeId)
{
// Download image
string imagePath = DownloadImage(employeeId);
// Set account picture
Stream fileStream = File.Open(imagePath, FileMode.Open);
IRandomAccessStream winRTStream = await DotNetToWinRTStream(fileStream);
SetAccountPictureResult result = await UserInformation.SetAccountPicturesFromStreamsAsync(null, winRTStream, null);
// Clean up download file
File.Delete(imagePath);
}
public static async Task<IRandomAccessStream> DotNetToWinRTStream(Stream dotNetStream)
{
IBuffer buffer;
var inputStream = dotNetStream.AsInputStream();
using (var reader = new DataReader(inputStream))
{
await reader.LoadAsync((uint)dotNetStream.Length);
buffer = reader.DetachBuffer();
}
var memoryStream = new InMemoryRandomAccessStream();
await memoryStream.WriteAsync(buffer);
return memoryStream;
}
SetAccountPictureResult には、他の情報がなくても「失敗」と表示されます。ここで何が起こっているのでしょうか?