protected override void Execute(object parameter) { if (Clipboard.ContainsImage()) { // TODO: できれば画像データ(byte配列など)で取得したい var attachment = UploadMedia.FromBitmapSource(Clipboard.GetImage(), UploadMedia.DisplayExtensions.Clipboard); this._viewModel.PostParameters.Attachments.Add(attachment); } else if (Clipboard.ContainsFileDropList()) { var files = Clipboard.GetFileDropList(); this._viewModel.PostParameters.Attachments.AddRange( GetEnableMediaFiles(files) .Select(file => UploadMedia.FromFile(file))); } }
protected override async void Execute(string parameter) { if (!IsPlayerRunning(parameter)) { this._viewModel.Messenger.Raise(new InformationMessage("再生情報の取得に失敗しました。:\nプレーヤが起動しているか確認してください。", App.Name, MessageBoxImage.Error, "MsgKey_InformationMessage")); return; } try { using var player = await GetPlayerFromId(parameter); var media = await player.GetCurrentMedia(); this._viewModel.TextBoxController.Insert(ReplaceMediaAlias(media, Setting.NowPlayingFormat)); if (Setting.InsertThumbnailAtNowPlayying) { try { foreach (var stream in media.Artworks) { var image = ImageUtil.CreateBitmapImage(stream); var attachment = UploadMedia.FromBitmapSource(image, UploadMedia.DisplayExtensions.Artwork); this._viewModel.PostParameters.Attachments.Add(attachment); } } catch { /* pass */ } } } catch (Exception ex) { this._viewModel.Messenger.Raise(new InformationMessage( $"再生情報の取得に失敗しました:\nプレーヤで楽曲が再生中かどうか確認してください。\n\nエラー:\n{ex.Message}", App.Name, MessageBoxImage.Error, "MsgKey_InformationMessage")); } }