Exemplo n.º 1
0
        async Task HandleClipboardUpdateWindowMessageAsync()
        {
            var timeSinceLastCopy = DateTime.UtcNow - lastCopy;

            if (timeSinceLastCopy.TotalSeconds > 1)
            {
                lastClipboardItemIdentifier = -1;
            }

            lastCopy = DateTime.UtcNow;

            await threadDeferrer.DeferAsync(100, () => {
                var clipboardItemIdentifier = (long)clipboardNativeApi.GetClipboardSequenceNumber();
                if (shouldSkipNext)
                {
                    logger.Information("Clipboard update message skipped.");

                    lastClipboardItemIdentifier = clipboardItemIdentifier;

                    shouldSkipNext = false;
                    return;
                }

                logger.Information($"Clipboard update message received with sequence #{clipboardItemIdentifier}.", clipboardItemIdentifier);
                if (clipboardItemIdentifier == lastClipboardItemIdentifier)
                {
                    logger.Verbose("Skipping clipboard update message because the sequence ID has not changed.");
                    return;
                }

                lastClipboardItemIdentifier = clipboardItemIdentifier;

                TriggerDataCopiedEvent();
            });
        }
Exemplo n.º 2
0
        void HandleClipboardUpdateWindowMessage()
        {
            var clipboardItemIdentifier = clipboardNativeApi.GetClipboardSequenceNumber();

            logger.Information(
                $"Clipboard update message received with sequence #{clipboardItemIdentifier}.",
                1);

            if (clipboardItemIdentifier == lastClipboardItemIdentifier)
            {
                return;
            }

            lastClipboardItemIdentifier = clipboardItemIdentifier;

            TriggerDataCopiedEvent();
        }