Seguindo as melhores práticas de segurança , mantenho um arquivo de texto sem formatação com minhas senhas no disco rígido. Na verdade, eu apenas copiei e colei um deles para acessar minha conta PPCG.
Em um momento lúcido, decido que a senha não deve permanecer na área de transferência após o uso. Como isso costuma acontecer comigo, eu poderia usar um programa para remover o conteúdo da área de transferência.
Desafio
Escreva um programa ou função que exclua ou substitua qualquer texto contido na área de transferência, usando a linguagem de programação de sua escolha.
Detalhes adicionais:
Se o seu sistema possui várias pranchetas, você pode escrever o programa para qualquer uma delas. O único requisito é que seja possível ao usuário copiar e colar texto usando essa área de transferência.
Se a sua área de transferência mantiver um histórico das entradas copiadas recentes, assuma a entrada mais recente.
Se sua resposta for específica para um sistema operacional ou área de transferência, indique-a no título da sua postagem, junto com o idioma usado.
A área de transferência é garantida para conter texto quando o programa é executado. Você pode excluir o conteúdo da área de transferência ou substituí-lo por outra coisa (não necessariamente texto). O único requisito é que, após a execução do programa, colar da área de transferência não produza o texto original.
Se você optar por sobrescrever algum texto fixo ou escolhido aleatoriamente, poderá assumir que o conteúdo anterior da área de transferência é diferente desse texto, para que a senha seja efetivamente removida. Em outras palavras, desconsidere a possibilidade de o texto do preenchimento coincidir com a senha.
O programa não deve ter efeitos colaterais, como reiniciar o sistema, fechar programas, desligar o computador ou congelá-lo. Após a execução do programa, o usuário poderá continuar usando o computador normalmente, apenas com a senha removida da área de transferência. Além disso, as brechas padrão são proibidas.
O menor código em bytes vence.
Respostas:
Excel, 1 pressionamento de tecla
Funciona porque o Excel, exclusivamente, sempre tem uma seleção. Provavelmente também funciona em outros aplicativos de planilha. Ao contrário de outras entradas de brincadeira, as respostas do Excel são realmente um pouco frequentes no PPCG.
fonte
PowerShell, 3 bytes
Esse é um alias padrão para
Set-Clipboard
. Quando chamado sem nada incorporado e sem argumentos fornecidos, afasta o conteúdo atual da área de transferência.fonte
Vim, 3 bytes
Define o conteúdo da área de transferência para uma nova linha.
Por padrão, o vim abre um buffer vazio na inicialização. Agora, o programa
Y
anks (copia) toda a linha (incluindo uma nova linha) e armazena-a na área de transferência, colocando o texto no registro"*
. A*
pode ser alterado para um+
para o outro clipboard.fonte
Javascript (Chrome DevTools Console), 6 bytes
Observe que esse é um recurso do console (que também funciona no console do FF) e não faz parte do padrão de idioma.
fonte
[\n ""\n]
)[\n ""\n ]
Document.execCommand("copy")
ou é uma área de transferência interna para o navegador? Eu uso isso em alguns scripts macaco adulteração, mas com preguiça de verificá-loAppleScript, 20 bytes
Define a área de transferência para ... nada.
Salvei muitos bytes removendo o código para me enviar o conteúdo da área de transferência;)
fonte
Lote (Windows 7 e versão superior), 7 bytes
Nota: ele responderá a mensagem de erro como "FC: ...", mas funciona.
"clip" é um comando para copiar a saída de outro programa para a área de transferência (disponível desde o Windows 7)
"fc" é um comando para comparar dois ou mais arquivos. neste caso, não inserimos nenhum arquivo. ocorrerá um erro e, em seguida, "clip" definirá a área de transferência para uma string vazia.
desde que você tenha um arquivo "a" em seu diretório atual (ele pode estar vazio), é possível fazer um melhor:
Edit: Veja o comentário de Matthew Steeples para a versão mais curta (mas no PowerShell não é um lote)
fonte
sc
vez defc
evitar a mensagem de erro. Em seguida, osc
texto de ajuda seria definido na área de transferência. Além disso, +1 por me falar sobreclip
.cd
. :-)x|clip
?h
é um apelido (por padrão) paraget-history
, de modo que você pode fazerh|clip
Bash no macOS, 8 bytes
:
pode ser substituído por quase qualquer outro caractere único.fonte
:|pbcopy
funciona tanto no bash quanto no zsh.C (no Windows),
6562 bytesEditar: salvou 3 bytes graças a @Orion.
fonte
0
vez deNULL
?AHK , 10 bytes
(Windows)
Limpa o conteúdo de texto da área de transferência. Se
clipboardAll
for usado, limpa tudo.Dos documentos -
fonte
Java 8,
127125 bytesGolfe:
Ungolfed:
fonte
SmileBASIC 3, 10 bytes
Finalmente, um desafio praticamente feito para o SmileBASIC 3!
CLIPBOARD
é um builtin que define a área de transferência de texto do ambiente para a sequência especificada. Aqui, fornecemos uma string vazia (o fechamento"
não é necessário!)fonte
'
!Excel VBA,
98 bytesSobrescreve a área de transferência com o conteúdo da
A1
célula na planilha ativa (vazia por padrão, mas pode ser qualquer string / expressão de sua escolha - apenas certifique-se de que não seja sua senha!).Utiliza a janela imediata.
Um byte economizado graças ao Slai
fonte
[a1].Cut
Python
564840 bytes (Funciona apenas no Linux) .8 bytes salvos graças ao @wheatwizard.
fonte
system
deos
você, podeimport os as o
ligar e ligaro.system
. Você também não precisa dos espaços ao redor do seu pipe no comando bash.as o
parte ... (import os \n os.system("echo |xclip"
) #echo
com:
para":|xclip"
__import__('os').system("echo|xclip")
xclip
chamadosxsel
, o que economizaria outro byte - e, como já mencionado, remova a parte de importação "as" novamente, apenas torna as coisas mais longas:import os;os.system(":|xsel")
(29 bytes).Idioma do Google Chrome, 2 pressionamentos de teclas
Com base nesta resposta do Notepad ++.
O Google Chrome é compatível com Javascript (que, por sua vez, é compatível com RegExp). Por isso, afirmo que é um superconjunto de Javascript e um idioma próprio.
Como funciona:
Ctrl+S
invocará a caixa de diálogo "Salvar página" com o texto "Nova guia" pré-selecionado eCtrl+C
o copiará para a área de transferência, deslocando o conteúdo anterior.Nota:
fonte
bash + xsel
87bytesExplicação
-b
: Funciona na seleção da área de transferência-c
: limpa a seleçãofonte
b
.Mathematica, 17 bytes
Define a área de transferência para o número 0.
fonte
R (Windows) 18
fonte
readLines(file("clipboard", "r"))
pode funcionar. Tente procurar nos documentos de ajuda do R em "Funções para manipular conexões".Matlab,
1913 bytesDefina o conteúdo da área de transferência para uma figura vazia.
fonte
axes;print -dmeta;close
mas também funciona ...close
pode ser removido. Por "efeitos colaterais", eu estava pensando nas coisas desaparecendo, não aparecendo. Tambémprint(gcf,'-dm')
funciona-dm
é como-dmeta
, e pensei que o programa deve trabalhar 'em silêncio', sem avançar qualquer janela :)Bash,
111087 bytes2 bytes salvos graças a @seshoumara por usar em
ls
vez deecho
Graças a hexafraction, isaacg e Riker por sugerirem vários 7 byters
A área de transferência está definida para o resultado de
w
. Isso funciona apenas em sistemas baseados em X11. Por exemplo, no macOS, essa área de transferência pode ser acessada usando um aplicativo baseado em X como o XQuartz.Resposta antiga apenas para o macOS (
119 bytes):Isso define o conteúdo da área de transferência para uma nova linha.
fonte
ls|xclip
?ls /usr/bin | grep "^.\{1,3\}$"
'd para procurar um comando mais curto: P)w|xclip
por um a menos. Despeja a lista de usuários logados na área de transferência.:|xclip
. Realmente limpa a área de transferência.xclip
sem tubos.Applescript, 23 bytes
fonte
Python + tkinter, 43 bytes
Python 3:
Python 2:
fonte
python-tk
) do "core python".__import__("tkinter")....
, neste caso, será 1 byte a mais.C #, 30 bytes
Obrigado a Nat , JMD e BgrWorker por suas sugestões!
C # sem WPF, 36 bytes
Função interna que esvazia a área de transferência.
Programa completo com caso de teste:
fonte
Clipboard.Clear()
já é uma função, portanto, o lambda pode ser descartado.System.Windows.Clipboard.Clear();
Mas, lprun pode ser uma maneira mais leve de executar essa resposta do que o VS ou mesmo o VS Code..Forms
, ele não foi compilado no Linux e eu não tenho uma máquina Windows no momento.Haskell, 34 bytes
Apenas uma função de biblioteca chata. Também existe
clearClipboard
a mesma contagem de bytes.fonte
Bloco de notas ++, 3 pressionamentos de tecla
Insere a letra a, seleciona e copia para o teclado.
O Notepad ++ é uma linguagem válida, suporta regex e, portanto, é um superconjunto de regex, e consideramos regex uma linguagem válida.
fonte
consider regex to be a valid language
Referências ? Aparentemente, o RegExp não é o Turing completo por si só.It doesn't have to be Turing Complete to be a valid language
Por essa medida, podemos afirmar que quase tudo é uma "linguagem". Ou seja, XML ou HTML também têm uma sintaxe (e até se chamam linguagens, ao contrário do RegExp), no entanto, não acho que sejam aceitáveis. Você pode fornecer um exemplo de uma resposta pura do Regexp, que foi aprovada pela comunidade? Além disso, acredito que o Notepad ++ realmente não "suporta regexp" no sentido de que pode invocá-lo programaticamente, e abrir a caixa "Pesquisar e substituir" da interface do usuário para digitar um RegExp lá, não é um "código de programa" em nenhuma medida.<c-H>
e usar<tab>
para navegar pela interface do usuário e interagir com todos os campos relevantes. Observe também que o regex pode determinar a primalidade e adicionar números. (Tanto na unária, que é a representação numérica padrão para expressão regular)Python 33 bytes (funciona apenas no Windows) .
4 bytes salvos da versão @hubacub.
3 bytes alternando para o Windows, usando a solução @Divcy
Acabei de me registrar no stackexchange, por isso não tenho reputação de comentar apenas no envio do @hubacub. Não é necessário gastar 5 bytes com "como o" na importação para salvar 1 byte para reduzir "os.system" para "o.system".
fonte
J (Windows), 12 bytes
wd
é a biblioteca padrão de J para Windows.wd 'clipcopy password'
colocaria o textopassword
na área de transferência. A especificação de nada limpa a área de transferência.Se você deseja que um programa coloque sua senha de texto sem formatação na área de transferência, use o seguinte:
fonte
'clipcopy 'wd@,]
wd
e'clipcopy'
.JavaScript
17514813913569 BytesGolfe:
Violino
Ungolfed
Obteve ajuda do SitePoint
HTML:
JS:
fonte
Java 8 (JavaFX), 61 bytes
()->javafx.scene.input.Clipboard.getSystemClipboard().clear()
A API JavaFX para manipular a área de transferência é um pouco mais concisa do que as AWT;)
fonte
Tcl / Tk wish shell (REPL), 5 bytes
O Wish Shell (REPL) permite comandos incompletos, desde que não haja ambiguidade, o comando completo seria:
fonte
PHP + PHP GTK 2.0 , 24 bytes
Isso pressupõe que você já tenha a extensão PHP GTK carregada.
Referência da documentação: http://gtk.php.net/manual/en/html/gtk/gtk.gtkclipboard.method.clear.html
fonte
<?
marca de abertura, pois é possível executar o código sem a<?
marca na linha de comando com a-r
opção Veja mais informações aqui: meta.codegolf.stackexchange.com/questions/7098/…