Обновление: разработчики Ditto исправили это в Ditto Beta версии 3.21.248! Вы можете скачать его по адресу https://ditto-cp.sourceforge.io/beta/
Для получения дополнительной информации см. Https://sourceforge.net/p/ditto-cp/discussion/287511/thread/6c5ae56a/#a80b
Оригинальный ответ:
Я нашел причину, по которой Ditto не исключает должным образом текст KeePassXC, но, к сожалению, я пока не нашел, как это исправить:
То же самое не может увидеть приложение KeePassXC.
Поскольку он не может видеть приложение KeePassXC, когда оно открыто, Ditto не знает, игнорировать ли текст, скопированный из него, даже если он находится в списке исключений.
Я понял это, включив журнал Ditto. Я исключил все процессы KeePassXC, которые я видел в диспетчере задач, а также в блокноте, чтобы проверить оба и посмотреть, что происходит, когда я пытаюсь скопировать текст из обоих приложений. ( Тоже самое скриншот )
(Чтобы включить ведение журнала, откройте Ditto, затем нажмите Ctrl + F5, чтобы запустить / остановить журнал. Файл журнала можно найти в C: \ Users \ имя пользователя \ AppData \ Roaming \ Ditto)
Когда я попытался скопировать текст из блокнота, в журнале ниже показано, что должно происходить, когда текст копируется из приложения, которое было добавлено в список исключений Ditto. Обратите внимание, что Ditto распознал блокнот как активное приложение ( выделено на этом скриншоте ).
[2018/8/4 01:30:03.533 - ClipboardViewer.cpp 241] OnClipboardChange - Start [2018/8/4 01:30:03.540 - ClipboardViewer.cpp 320] INCLUDE app names: *, Active App: notepad.exe [2018/8/4 01:30:03.547 - ClipboardViewer.cpp 333] Inlclude app names Found Match * - notepad.exe [2018/8/4 01:30:03.554 - ClipboardViewer.cpp 347] EXCLUDE app names keepassxc.exe;keepassxc-proxy.exe;keepassxc-cli.exe;keepass.exe;*.kdbx;notepad.exe;, Active App: notepad.exe [2018/8/4 01:30:03.559 - ClipboardViewer.cpp 357] Exclude app names Found Match notepad.exe - notepad.exe - NOT SAVING COPY [2018/8/4 01:30:03.566 - ClipboardViewer.cpp 243] OnClipboardChange - End
Однако в журнале ниже показано, что происходит, когда я копирую текст из KeePassXC. Обратите внимание, что «Активное приложение» пустое ( выделено на этом скриншоте ). Если Ditto не может видеть KeePassXC, то он не может знать, что он должен игнорировать текст, скопированный изнутри программы.
[2018/8/4 01:29:44.999 - ClipboardViewer.cpp 241] OnClipboardChange - Start [2018/8/4 01:29:45.007 - ClipboardViewer.cpp 320] INCLUDE app names: *, Active App: [2018/8/4 01:29:45.013 - ClipboardViewer.cpp 333] Inlclude app names Found Match * - [2018/8/4 01:29:45.018 - ClipboardViewer.cpp 347] EXCLUDE app names keepassxc.exe;keepassxc-proxy.exe;keepassxc-cli.exe;keepass.exe;*.kdbx;notepad.exe;, Active App: [2018/8/4 01:29:45.021 - ClipboardViewer.cpp 266] OnDrawClipboard:: *** SetTimer *** 455056375 [2018/8/4 01:29:45.024 - ClipboardViewer.cpp 243] OnClipboardChange - End [2018/8/4 01:29:45.135 - ClipboardViewer.cpp 392] OnDrawClipboard::OnTimer 455056500 [2018/8/4 01:29:45.141 - CopyThread.cpp 56] OnClipboardChange - Start [2018/8/4 01:29:45.147 - CopyThread.cpp 109] LoadFromClipboard - Before [2018/8/4 01:29:45.157 - Clip.cpp 435] Tried to set description from cf_unicode text, Set: 1, Desc: [keepassxc test]
Я не эксперт по KeePassXC или Ditto, поэтому я не уверен, что это проблема с Ditto или с KeePassXC. Интересно, может ли эта ошибка на самом деле быть своего рода «функцией» безопасности KeePassXC - может быть, она пытается скрыться от других программ?
Если мы сможем заставить Ditto видеть KeePassXC в качестве активного приложения, то оно должно работать правильно. К сожалению, я еще не понял, как это сделать.
Я знаю, что это только половина ответа, извините. Я определил, почему Ditto правильно не исключает KeePassXC, но я не знаю, как это исправить. У меня та же проблема, что и у вас, поэтому я надеюсь, что эта информация поможет кому-то еще умнее меня найти решение.