Следуя лучшим правилам безопасности , я сохраняю простой текстовый файл с моими паролями на жестком диске. Фактически, я просто скопировал и вставил один из них, чтобы получить доступ к моей учетной записи PPCG.
В ясный момент я решаю, что пароль не должен оставаться в буфере обмена после его использования. Поскольку это часто случается со мной, я могу использовать программу для удаления содержимого буфера обмена.
Вызов
Напишите программу или функцию, которая удаляет или перезаписывает любой текст, содержащийся в буфере обмена, используя язык программирования по вашему выбору.
Дополнительные детали:
Если в вашей системе есть несколько буферов обмена, вы можете написать программу для любого из них. Единственное требование состоит в том, что пользователь должен иметь возможность копировать и вставлять текст с использованием этого буфера обмена.
Если в вашем буфере обмена хранится история последних скопированных записей, предположите самую последнюю запись.
Если ваш ответ относится к операционной системе или буферу обмена, укажите его в заголовке вашего сообщения вместе с используемым языком.
Буфер обмена гарантированно содержит текст при запуске вашей программы. Вы можете удалить содержимое из буфера обмена или перезаписать его чем-то другим (необязательно текстом). Единственное требование состоит в том, что после запуска программы вставка из буфера обмена не приведет к получению исходного текста.
Если вы решите перезаписать некоторый фиксированный или случайно выбранный текст, вы можете предположить, что предыдущее содержимое буфера обмена отличается от этого текста, поэтому пароль эффективно удаляется. Другими словами, не обращайте внимания на возможность совпадения текста заполнителя с паролем.
Программа не должна иметь побочных эффектов, таких как перезапуск системы, закрытие программ, выключение компьютера или его зависание. После запуска вашей программы пользователь сможет продолжать пользоваться компьютером в обычном режиме, только с удаленным из буфера обмена паролем. Кроме того, стандартные лазейки запрещены.
Самый короткий код в байтах побеждает.
Ответы:
Excel, 1 нажатие клавиши
Работает потому, что в Excel всегда есть выбор. Возможно, работает и в других приложениях для работы с электронными таблицами. В отличие от других шутливых записей, ответы в формате Excel на PPCG довольно часты.
источник
PowerShell, 3 байта
Это псевдоним по умолчанию для
Set-Clipboard
. Когда вызывается без ввода данных и аргументов, он удаляет текущее содержимое буфера обмена.источник
Vim, 3 байта
Устанавливает содержимое буфера обмена на новую строку.
По умолчанию vim открывает пустой буфер при запуске. Теперь программа
Y
копирует (копирует) всю строку (включая новую строку) и сохраняет ее в буфере обмена, вставляя текст в регистр"*
.*
Может быть изменено на+
для другого буфера обмена.источник
Javascript (консоль Chrome DevTools), 6 байт
Обратите внимание, что это особенность консоли (которая также работает в консоли FF) и не является частью языкового стандарта.
источник
[\n ""\n]
)[\n ""\n ]
Document.execCommand("copy")
или это буфер обмена внутри браузера? Я использую это в некоторых скриптах обезьян, но лень это проверятьAppleScript, 20 байт
Устанавливает буфер обмена в ... ничего.
Я сэкономил много байтов, удалив код, чтобы отправить мне содержимое буфера обмена;)
источник
Пакетная (Windows 7 и более поздняя версия), 7 байт
Примечание: он ответит сообщением об ошибке типа «FC: ...», но работает.
«clip» - это команда для копирования вывода другой программы в буфер обмена (доступно начиная с windows 7)
«fc» - это команда для сравнения двух или более файлов. в этом случае мы не вводим никакой файл. это будет ошибка, тогда "клип" установит буфер обмена в пустую строку.
при условии, что у вас есть файл «a» в вашем текущем каталоге (он может быть пустым), вы можете сделать это лучше:
Изменить: см. Комментарий @Matthew Steeples для более короткой версии (но в PowerShell не пакет)
источник
sc
вместо того,fc
чтобы избежать сообщения об ошибке. Затемsc
текст справки будет установлен в буфер обмена. Также +1 за рассказclip
.cd
. :-)x|clip
?h
это псевдоним (по умолчанию) дляget-history
, так что вы можете сделатьh|clip
Bash на macOS, 8 байт
:
можно заменить почти любым другим отдельным символом.источник
:|pbcopy
работает как в bash, так и в zsh.C (в Windows)
6562 байтаРедактировать: 3 байта сохранены благодаря @Orion.
источник
0
вместоNULL
?AHK , 10 байт
(Windows)
Очищает текстовое содержимое буфера обмена. Если
clipboardAll
используется, это очищает все.Из документов -
источник
Java 8,
127125 байтGolfed:
Ungolfed:
источник
SmileBASIC 3, 10 байт
Наконец, задача, практически сделанная для SmileBASIC 3!
CLIPBOARD
является встроенным, который устанавливает текстовый буфер обмена среды для данной строки. Здесь мы даем ему пустую строку (закрытие"
не требуется!)источник
'
!Excel VBA,
98 байтПерезаписывает буфер обмена содержимым
A1
ячейки в активном листе (по умолчанию пустым, но может быть любой строкой / выражением по вашему выбору - просто убедитесь, что это не ваш пароль!).Использует непосредственное окно.
Один байт спасен благодаря Слай
источник
[a1].Cut
Python
564840 байт (работает только в Linux) .8 байтов сохранено благодаря @wheatwizard.
источник
system
изos
вас можноimport os as o
и позвонитьo.system
вместо. Вам также не нужны пробелы вокруг вашей трубы в команде bash.as o
части ... (import os \n os.system("echo |xclip"
)echo
с:
на":|xclip"
__import__('os').system("echo|xclip")
xclip
называетсяxsel
на системах Linux, что позволит сэкономить вам еще один байт - и , как уже упоминалось, удалить « как O» часть импорта опять же , это только делает вещи больше:import os;os.system(":|xsel")
(29 байт).Google Chrome Language, 2 нажатия клавиш
Основываясь на этом ответе Notepad ++.
Google Chrome поддерживает Javascript (который, в свою очередь, поддерживает RegExp), поэтому я заявляю, что это расширенный набор Javascript и его собственный язык.
Как это устроено:
Ctrl+S
вызовет диалог «Сохранить страницу» с предварительно выбранным текстом «Новая вкладка»,Ctrl+C
скопирует его в буфер обмена, сместив предыдущий контент.Примечание:
источник
bash + xsel
8 7байтовобъяснение
-b
: Работает над выбором буфера обмена-c
: очищает выбористочник
b
.Mathematica, 17 байт
Устанавливает буфер обмена на номер 0.
источник
R (Windows) 18
источник
readLines(file("clipboard", "r"))
может сработать. Попробуйте просмотреть справочные документы R в разделе «Функции для управления соединениями».Matlab,
1913 байтУстановите содержимое буфера обмена на пустую фигуру.
источник
axes;print -dmeta;close
но также работает ...close
может быть удалено. Под «побочными эффектами» я думал, что вещи исчезают, а не появляются. Такжеprint(gcf,'-dm')
работает-dm
это похоже-dmeta
, и думал, что программа должна работать «тихо», не открывая окно :)Баш,
111087 байт2 байта сохранены благодаря @seshoumara за использование
ls
вместоecho
Благодаря hexafraction, isaacg и Riker за предложение по 7 байт
Буфер обмена устанавливается на результат
w
. Это работает только на системах на основе X11. Например, в macOS к этому буферу обмена можно получить доступ с помощью приложения на основе X, такого как XQuartz.Старый ответ только для macOS (
119 байт):Это устанавливает содержимое буфера обмена на новую строку.
источник
ls|xclip
?ls /usr/bin | grep "^.\{1,3\}$"
должен искать более короткую команду: P)w|xclip
для одного меньше. Выводит список зарегистрированных пользователей в буфер обмена.:|xclip
. На самом деле очищает буфер обмена.xclip
каналами.Applescript, 23 байта
источник
Python + ткинтер, 43 байта
Python 3:
Python 2:
источник
python-tk
) из «основного питона».__import__("tkinter")....
, в данном случае это на 1 байт больше.C #, 30 байтов
Спасибо Nat , JMD и BgrWorker за их предложения!
C # без WPF, 36 байт
Встроенная функция, которая очищает буфер обмена.
Полная программа с тестовым набором:
источник
Clipboard.Clear()
уже есть функция, поэтому лямбда может быть отброшена.System.Windows.Clipboard.Clear();
Но lprun может быть более легким способом выполнения этого ответа, чем VS или даже VS Code..Forms
, он не компилировался в Linux, и у меня нет машины с Windows на данный момент.Haskell, 34 байта
Просто скучная библиотечная функция. Там также
clearClipboard
для того же количества байтов.источник
Блокнот ++, 3 нажатия клавиш
Вставляет букву а, выделяет ее, копирует на клавиатуру.
Notepad ++ является допустимым языком, он поддерживает регулярные выражения и поэтому является расширенным набором регулярных выражений, и мы считаем регулярное выражение допустимым языком.
источник
consider regex to be a valid language
Рекомендации ? По-видимому, RegExp не является полным по Тьюрингу.It doesn't have to be Turing Complete to be a valid language
По этой мере мы можем утверждать, что почти все является «языком». Т.е. XML или HTML тоже имеют синтаксис (и даже называют себя языками, в отличие от RegExp), тем не менее я не думаю, что они приемлемы. Можете ли вы привести пример чисто регулярного ответа, который был одобрен сообществом? Более того, я полагаю, что Notepad ++ на самом деле не «поддерживает регулярное выражение» в том смысле, что он может вызывать его программно, и открытие поля «Поиск и замена» пользовательского интерфейса для ввода RegExp там не является «программным кодом» по каким-либо показателям.<c-H>
и использовать<tab>
для навигации по пользовательскому интерфейсу и взаимодействия со всеми соответствующими полями. Также обратите внимание, что регулярное выражение может определять простоту и добавлять числа. (Оба вPython 33 байта (работает только в Windows) .
4 байта сохранены из версии @hubacub.
3 байта для переключения на окна с использованием решения @Divcy
Я только что зарегистрировался в stackexchange, поэтому у меня нет репутации, чтобы просто комментировать подпись @hubacub. Нет необходимости тратить 5 байтов с «as o» в импорте, чтобы сэкономить 1 байт, чтобы уменьшить «os.system» до «o.system».
источник
J (Windows), 12 байт
wd
стандартная библиотека J для Windows.wd 'clipcopy password'
положил бы текстpassword
в буфер обмена. Указание ничего не стирает буфер обмена.Если вы хотите, чтобы программа поместила ваш незашифрованный пароль в буфер обмена, вы можете использовать следующее:
источник
'clipcopy 'wd@,]
wd
и'clipcopy'
.JavaScript
17514813913569 байтGolfed:
скрипка
Ungolfed
Получил помощь от SitePoint
HTML:
JS:
источник
Java 8 (JavaFX), 61 байт
()->javafx.scene.input.Clipboard.getSystemClipboard().clear()
API JavaFX для работы с буфером обмена немного более лаконичен, чем AWT;)
источник
Tcl / Tk wish shell (REPL), 5 байтов
Оболочка желаний (REPL) допускает незавершенные команды, если нет двусмысленности, полная команда будет:
источник
PHP + PHP GTK 2.0 , 24 байта
Это предполагает, что у вас уже загружено расширение PHP GTK.
Ссылка на документацию: http://gtk.php.net/manual/en/html/gtk/gtk.gtkclipboard.method.clear.html
источник
<?
тег, так как вы можете запустить код без<?
тега в командной строке с-r
переключателем. См. Дополнительную информацию здесь: meta.codegolf.stackexchange.com/questions/7098/…