windows 10 altera dados da área de transferência automaticamente

4

Eu me deparei com a situação abaixo, o que eu fiz foi

  1. Copiado um URL usando Ctrl + C ( http://stackoverflow.com/users/123456/user )
  2. Cria um novo arquivo de texto e clicou em renomear.
  3. Colou esse URL usando Ctrl + V para renomeá-lo.
  4. Ocorreu um erro que não é possível alterar o nome do arquivo para um nome com / e: ....
  5. Ele removeu / e: automaticamente e definiu o nome do arquivo. ( httpstackoverflow.comusers123456user )
  6. Depois abri o arquivo de texto e pressione Ctrl + V novamente para colar o arquivo URL no arquivo,
  7. Surpreendentemente, o valor da área de transferência foi alterado para abaixo como exemplo.

http://stackoverflow.com/users/123456/user

para

httpstackoverflow.comusers123456user

Por que isso aconteceu? alguma ideia? Estou usando o Update do aniversário do windows 10.

    
por theModerator713 14.12.2016 / 09:04

1 resposta

5

Sim, eu posso reproduzir esse fenômeno. Há um visualizador gratuito da área de transferência que permite que você veja o que aconteceu:

  • primeiro, mostra um link " link ":

  • agoravocêtentausaressastringcomoumnomedearquivo
  • nomomentoemqueamensagemdeerroéexibida,vocêvêqueoconteúdodaáreadetransferênciafoialteradopara"httpstackoverflow.comusers123456user":

EssasalteraçõesforamfeitaspeloWindowsExplorer,queremoveoscaracteresASCII"errados" da string. O ponto importante aqui é que obtemos o conteúdo da área de transferência por referência (e não pelo valor como uma cópia), é por isso que uma mudança é possível!

[EDITADO]

  • Pergunta: você pode explicar "por referência e não por valor" um pouco mais?

Existem duas maneiras de passar o parâmetros na programação : por valor e por referência.

Quando um parâmetro é passado por referência, o chamador e o chamado usam a mesma variável para o parâmetro. Se o receptor modificar a variável de parâmetro, o efeito ficará visível para a variável do chamador.

Quando um parâmetro é passado por valor , o chamador e o chamado têm duas variáveis independentes com o mesmo valor . Se o receptor modificar a variável de parâmetro, o efeito não será visível para o chamador.

A área de transferência do Windows pode ter um conteúdo enorme: imagens, texto e assim por diante. É por isso que é melhor copiar apenas um endereço deste bloco de memória em vez de copiar todo o conteúdo.

    
por 14.12.2016 / 10:22