COMO COLAR TEXTO DESENCRIPTADO

 Tópico anterior Próximo tópico Novo tópico

COMO COLAR TEXTO DESENCRIPTADO

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#409104 - 03/09/2012 18:44:03

PROGRAMADORVB6
LISBOA
Cadast. em:Janeiro/2004


Última edição em 03/09/2012 18:46:17 por PROGRAMADORVB6

 Anexos estao visíveis somente para usuários registrados

Olá Galera.
Estou tentando fazer com que o que se copia para o clipboard não seja interceptado por outros programas espiões.
Para isso resolvi encriptar o que copio para o clipboard, mas quando tento fazer um Paste pelo menu  , não é efectuada a desencriptação.
Tentei usar o comando : SendKeys.Send() para o envio , mas não é eficiente, porque não consegue produzir caracteres especiais, entre outros.
Alguém tem alguam ideia como posso contornar esta situação?





______________________________________________________________________________

Que minha coragem seja maior que meu medo e que minha força seja tão grande quanto minha fé.


Resposta escolhida #416027 - 16/12/2012 02:17:06

PROFESSOR
SANTOS
Cadast. em:Outubro/2011


Entendo o problema.

Bem, podes tentar algo um pouco diferente.
Como sabemos, o Clipboard é capaz de armazenar objetos.
Assim, criar uma classe serializável que possa receber o criptografado, permite enviar instâncias do mesmo ao Clipboard, dificultando a captura do texto em sí. Resumindo, na prática:


'...
<Serializable()> _
Public Class Secreto
    Public Property Criptografado As String
    Public Sub New()
    End Sub
    Public Sub New(ByVal parCriptografado As String)
        Me.Criptografado = parCriptografado
    End Sub
End Class
'...
.

Após ter criptografado, para enviar o texto ao clipboard, seria algo como:


'...
Dim o As New
Clipboard.SetDataObject(o)
'...
.

Para carregar desde o clipboard é um pouco mais trabalhoso, pois o clipboard pode conter vários objetos simultaneamente e é preciso portanto identificar qual se deseja.
Por sorte, o método GetDataPresent do IDataObject facilita, pois carrega o nome do assemblie. Por exemplo, se o projeto chamar-se "MeuProjeto" e a classe, "Segredo", o método GetDataPresent retornaria o texto "MeuProjeto.Segredo", indicando que esse objeto é o que precisamos.
Carregar e obter o conteúdo criptografado, então, voltando ao código fica assim:


'...
   Dim conteudo As IDataObject = Clipboard.GetDataObject
   If conteudo.GetDataPresent("MeuProjeto.Segredo") Then
        Dim o As Segredo = CType(conteudo.GetData("MeuProjeto.Segredo"), Segredo)
        If o IsNot Nothing Then
             MsgBox(o.Criptografado)
        End If
   End If
'...
.

Com isso, outros aplicativos podem, sim, capturar o que há no clipbard, mas será mais dificultoso descubrir o que contém.

Espero que ajude.

Voltei, mas só estou de passagem.

 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por PROGRAMADORVB6 em 14/07/2014 16:43:36