Когда я что-то копирую и закрываю программное обеспечение (Excel или Word и, возможно, другие), у меня появляется предупреждение, спрашивающее, хочу ли я сохранить или удалить содержимое буфера обмена, потому что оно слишком большое. Раз за разом это модальное предупреждение раздражает меня, это способ его отключить?

Потому что, если я скопирую что-нибудь в буфер обмена, ДА, я хочу, чтобы это осталось в буфере обмена.

1 ответ1

2

Насколько мне известно, нет способа предотвратить это предупреждение, потому что Microsoft не хочет, чтобы вы потеряли ваши данные случайно (например, закрыв Word перед вставкой текста в другую программу).

Это просто из-за того, как работает буфер обмена Windows. Когда вы копируете и вставляете вещи, для современных программ исходное приложение может по-прежнему взаимодействовать с целевым приложением при попытке вставить то, что вы скопировали. Вот как вы можете скопировать текст в веб-браузере и вставить его, например, как текст в формате HTML в документ Word (как раз наоборот).

Хотя буфер обмена Windows сам по себе поддерживает несколько различных форматов мультимедиа, такие методы позволили разработчикам расширить возможности.

Если вы не хотите, чтобы появилось предупреждение, просто скопируйте и вставьте свой контент перед закрытием программы, затем скопируйте что-нибудь крошечное (например, слово или ячейку), и вы не получите сообщение. В качестве альтернативы вы можете открыть панель «Буфер обмена» (нажмите на стрелку в правой нижней части раздела «Буфер обмена» на ленте «Вставить») и удалить фрагменты перед закрытием.

Вы можете автоматизировать это с помощью макроса, как описано здесь, хотя я бы не стал его рекомендовать, потому что рано или поздно вы потеряете текст или форматирование так, как вы хотели сохранить.

'Events: http://msdn.microsoft.com/en-us/library/bb208800.aspx
Sub AutoExit()
    ClearClipboard
End Sub

Sub ClearClipboard()
    Dim MyData As Object
    ' source: http://akihitoyamashiro.com/en/VBA/LateBindingDataObject.htm
    Set MyData = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    MyData.SetText ""
    MyData.PutInClipboard
    Set MyData = Nothing
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .