Я делаю это в C #, но, думаю, это не проблема для конкретного языка ...
У меня есть пример кода о том, как определить, когда содержимое буфера обмена изменяется. Теперь я хочу изменить только что скопированный текст (удалить некоторые теги) и заменить текст буфера обмена фиксированным.
Но если I SetDataObject () при обнаружении содержимого буфера обмена изменилось, то будет сгенерировано сообщение о том, что содержимое буфера обмена снова изменилось. Теоретически, я думаю, это звучит как бесконечный цикл (на практике по некоторым причинам это не так).
Какова стратегия, чтобы сделать эту модификацию один раз и отправить сообщение по цепочке мониторинга буфера обмена?
P.S. В качестве теста я делаю следующее, но происходит то, что строка Clipboard.SetDataObject .. вызывается дважды. Я не понимаю почему, я ожидал бы, что это сделает это бесконечно.
case Win32.Msgs.WM_DRAWCLIPBOARD:
String clipboardText = GetClipboardText();
if (!String.IsNullOrEmpty(clipboardText))
{
Clipboard.SetDataObject("test( " + clipboardText + " )!");
}
Win32.User32.SendMessage(_ClipboardViewerNext, m.Msg, m.WParam, m.LParam);