public IActionResult GetClipboardData() { IDataObject dataObject = null; _synchronizationContext.Current.Send(state => dataObject = Clipboard.GetDataObject(), null); return(Ok(ClipboardDataExtensions.FromDataObject(dataObject))); }
private void ClipboardWatcherOnClipboardUpdated(object sender, IDataObject e) { var dto = ClipboardDataExtensions.FromDataObject(e); if (dto.Equals(_currentClipboardData)) { return; } _currentClipboardData = dto; _channel.Interface.SetData(dto); }
public async Task Enable() { var currentClipboardData = Clipboard.GetDataObject(); _channel = await ClipboardManagerResource.GetClipboardNotificationChannel(_restClient); _channel.Interface.ClipboardUpdated += InterfaceOnClipboardUpdated; await _channel.Interface.SetData(ClipboardDataExtensions.FromDataObject(currentClipboardData)); await _channel.Interface.Listen(); _clipboardWatcher.ClipboardUpdated += ClipboardWatcherOnClipboardUpdated; }
private void ClipboardWatcherOnClipboardUpdated(object sender, IDataObject e) { var dto = ClipboardDataExtensions.FromDataObject(e); if (dto.Equals(_currentClipboardData)) { return; } _currentClipboardData = dto; var handler = ClipboardUpdated; handler?.Invoke(this, dto); }