Beispiel #1
0
        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;
        }
Beispiel #4
0
        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);
        }