Cómo: Llamar A una biblioteca de clases de Visual Basic .NET desde Visual Basic para aplicaciones en Microsoft Office

Seleccione idioma Seleccione idioma
Id. de artículo: 317535 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Utilice a esta guía paso a paso para llamar a una biblioteca de clase de .NET desde Visual Basic para aplicaciones. Este ejemplo muestra cómo un programa de Visual Basic para aplicaciones puede utilizar una biblioteca de clase Visual Basic.NET para cifrar y descifrar una cadena. Puede utilizar el espacio de nombres criptografía, incluido en .NET Framework, para el cifrado y descifrado.

Crear la biblioteca de clases de Visual Basic .NET

  1. Inicie Microsoft Visual Studio NET.. En el menú archivo , seleccione nuevo y, a continuación, haga clic en proyecto . En Proyectos de Visual Basic , seleccione Biblioteca de clases . Nombre de la clase CryptoClass y haga clic en Aceptar . Class1 se crea de forma predeterminada.
  2. Reemplace el contenido de Class1 con el código siguiente:

    Imports System.Security.Cryptography
    
    <ComClass(Class1.ClassId, Class1.InterfaceId, Class1.EventsId)> Public Class Class1
        Public Const ClassId As String = "98349785-8BE2-4604-848D-F5B103D61715"
        Public Const InterfaceId As String = "36613EE9-125F-493d-9968-771E18C2226A"
        Public Const EventsId As String = "A036F02F-F87E-4548-A536-7DD7EA8E62B5"
    
        Const sKey As String = "MyKey"
    
        Public Function EncryptTripleDES(ByVal sIn As String) As String
            Dim DES As New TripleDESCryptoServiceProvider()
            Dim hashMD5 As New MD5CryptoServiceProvider()
    
            ' Compute the MD5 hash.
            DES.Key = hashMD5.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(sKey))
            ' Set the cipher mode.
            DES.Mode = CipherMode.ECB
            ' Create the encryptor.
            Dim DESEncrypt As ICryptoTransform = DES.CreateEncryptor()
            ' Get a byte array of the string.
            Dim Buffer As Byte() = System.Text.ASCIIEncoding.ASCII.GetBytes(sIn)
            ' Transform and return the string.
            Return Convert.ToBase64String(DESEncrypt.TransformFinalBlock(Buffer, 0, Buffer.Length))
        End Function
    
        Public Function DecryptTripleDES(ByVal sOut As String) As String
            Dim DES As New TripleDESCryptoServiceProvider()
            Dim hashMD5 As New MD5CryptoServiceProvider()
    
            ' Compute the MD5 hash.
            DES.Key = hashMD5.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(sKey))
            ' Set the cipher mode.
            DES.Mode = CipherMode.ECB
            ' Create the decryptor.
            Dim DESDecrypt As ICryptoTransform = DES.CreateDecryptor()
            Dim Buffer As Byte() = Convert.FromBase64String(sOut)
            ' Transform and return the string.
            Return System.Text.ASCIIEncoding.ASCII.GetString(DESDecrypt.TransformFinalBlock(Buffer, 0, Buffer.Length))
        End Function
    End Class
    						

    Nota Puede utilizar el Generador GUID para generar nuevos GUID para el ClassId, InterfaceId y EventsId. Para generar nuevos GUID, haga clic en Crear GUID en el menú Herramientas .
  3. En Propiedades , seleccione Propiedades de configuración . Haga clic en Generar y, a continuación, seleccione Registrar para interoperabilidad COM casilla de verificación. Haga clic en Aceptar .
  4. En el menú Generar , haga clic en Generar solución para crear la DLL.

Crear una macro de aplicaciones llamar a la biblioteca de clases de .NET de Visual Basic

  1. Inicie Microsoft Excel . Presione ALT+F11 para iniciar el Editor de Visual Basic.
  2. En el menú Insertar , haga clic en el módulo para insertar un módulo en blanco.
  3. En el menú Herramientas , haga clic en referencias . Agregue una referencia a la biblioteca CryptoClass y haga clic en Aceptar .
  4. Escriba o pegue el código siguiente en la ventana de código de Module1:
    Sub TestCrypto()
      Dim oCrypto As New CryptoClass.Class1
      Dim sCrypt As String
      
      sCrypt = oCrypto.EncryptTripleDES("This is a test")
      MsgBox "Encrypted text = " & sCrypt
      MsgBox "Decrypted text = " & oCrypto.DecryptTripleDES(sCrypt)
    End Sub
    					

Probar el código

  1. En el menú Herramientas , haga clic en macros . En la lista de macros, haga clic en TestCrypto y, a continuación, haga clic en Ejecutar .
  2. Si aparece un cuadro de mensaje mostrando la cadena cifrada, haga clic en Aceptar . Aparece un segundo cuadro de mensaje mostrando la cadena descifrada.
  3. Si la biblioteca de clase necesita estar registrado en otro equipo que ejecute .NET Framework, copiar el archivo DLL en el sistema y ejecute el comando siguiente:
    Regasm CryptoClass.dll /tlb:CryptoClass.tlb

Referencias

Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
301070Cómo: Cifrar y descifrar un archivo mediante Visual Basic .NET
Para obtener más información, consulte el siguiente sitio Web de Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx

Propiedades

Id. de artículo: 317535 - Última revisión: jueves, 29 de marzo de 2007 - Versión: 8.5
La información de este artículo se refiere a:
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft Office Word 2003
  • Microsoft Visual Studio .NET 2003 Professional
  • Microsoft Word 2002 Standard Edition
  • Microsoft Visual Studio .NET 2002 Professional
Palabras clave: 
kbmt kbcrypt kbsecurity kbhowtomaster KB317535 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 317535

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com