Como adicionar dinamicamente controles ActiveX que exigem licenças de tempo de execução no Visual translation from VPE for Csharp .NET ou no Visual translation from VPE for Csharp 2005

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 326652
Para uma versão deste artigo do Microsoft Visual Basic. NET, consulte 326651.
Sumário
Este artigo passo a passo descreve como adicionar manualmente uma licença de tempo de execução para um controle ActiveX que é criado dinamicamente no translation from VPE for Csharp Visual .NET ou no Visual translation from VPE for Csharp 2005. Na versão 6 do Visual Basic, você pode adicionar manualmente licenças para a coleção de licença usando o método Licenses.Add() . Para obter mais informações sobre o que License.Add() faz no Visual Basic 6, consulte a seção "Referências" deste artigo.

No Visual translation from VPE for Csharp .NET ou no Visual translation from VPE for Csharp 2005, a coleção de licenças não existe. Você deve incorporar as informações da licença no controle.

Este artigo presume que o controle requer a licença de tempo de execução está em MyProject.OCX e é chamado MyLicensedControl. MyProject.OCX está localizado em C:\Windows\System32.

Criar um novo projeto .NET translation from VPE for Csharp ou Visual C# 2005 Visual

  1. Clique em Iniciar , aponte para Todos os programas , aponte para Microsoft Visual Studio .NET e em seguida, clique em Microsoft Visual Studio .NET .

    Observação No Visual Studio 2005, Microsoft Visual Studio .NET é alterado para o Microsoft Visual Studio 2005 .
  2. No menu arquivo , aponte para novo e, em seguida, clique em Project .
  3. Na caixa de diálogo New Project , clique em projetos translation from VPE for Csharp Visual em Project Types , clique em Windows Application em modelos e, em seguida, clique em OK .

    Observação No Visual Studio 2005, projetos translation from VPE for Csharp Visual é alterado para translation from VPE for Csharp Visual .

Criar assemblies de interoperabilidade ActiveX

  1. Clique em Iniciar , aponte para Todos os programas , aponte para Microsoft Visual Studio. NET , aponte para Visual Studio .NET Tools e, em seguida, clique em Visual Studio .NET Command Prompt .

    Observação No Visual Studio 2005, Microsoft Visual Studio .NET é alterado para o Microsoft Visual Studio 2005 . O Visual Studio .NET Tools é alterado para Visual Studio 2005 Tools . Visual Studio .NET Command Prompt é alterado para Visual Studio2005 Command Prompt .
  2. Para criar os dois assemblies de interoperabilidade que você deve ter, digite o seguinte comando:
    /out:C:\temp\AxMyProject.dll aximp "C:\Windows\System32\MyProject.ocx"
    AxMyProject.dll é para interoperabilidade de AxHost. MyProject.dll é para COM Interop.

Criar dinamicamente o controle

  1. No menu Project , clique em Add Reference .
  2. Clique em Procurar e selecione os assemblies de interoperabilidade do controle ActiveX que você acabou de criar (eles devem estar em C:\Temp).
  3. Adicionar AxMyProject.dll e MyProject.dll; adicionar esses arquivos copia-los localmente.
  4. Adicione um controle Button ao formulário.
  5. Clique duas vezes o botão para localizar o código para o método de Evento de clique de botão .
  6. No método de Evento de clique de botão , cole o seguinte código:
      AxMyProject.AxMyLicensedControl  myControl = new AxMyProject.AxMyLicensedControl();
    este cria uma nova instância do controle por meio de AxHost.

    Observação Não crie uma nova instância do controle por meio de COM (MyProject.MyLicensedControl novo), porque isso não funcionará no formulário, e você não pode adicionar facilmente a licença.

Adicionar a licença para o controle

  1. Determinar e observe a chave de licença de tempo de execução para o controle. Para MyLicensedControl , a chave de licença é "gnvlslnjskvlmlgnnimh".
  2. No método de Evento de clique de botão , cole o seguinte código abaixo "AxTestActiveXComponent.AxUserControl1 myControl = novo AxTestActiveXComponent.AxUserControl1();"
      System.Reflection.FieldInfo f =          typeof(AxHost).GetField("licenseKey",          System.Reflection.BindingFlags.NonPublic |         System.Reflection.BindingFlags.Instance);  f.SetValue(myControl, "gnvlslnjskvlmlgnnimh");
    este código insere a licença de tempo de execução para o controle. Ele cria uma instância de FieldInfo , que faz parte do conjunto de propriedades OCXState . Este conjunto de propriedades está cheio de informações de controle ActiveX específicas. Nesse caso, você está obtendo o campo licenseKey e defini-la para myControl . Você deve fazer isso para cada instância de qualquer controle ActiveX que requer uma licença de tempo de execução.

Adicionar o controle ao formulário

  1. Adicionar o controle à coleção de controles do formulário e, em seguida, mostrar o controle. Para fazer isso, você pode usar o código a seguir:
            Controls.Add(myControl);        myControl.Show();
    colar esse código no método de Evento de clique de botão , após "f.SetValue (myControl,"gnvlslnjskvlmlgnnimh");" e antes End Sub.

    Observação Se a licença não é adicionada ao controle e a licença é necessária, myControl.Show falhará. MyControl.Show executa o código que contém essa validação de licença. Quando você tentar e executar myControl.Show , você vê o seguinte erro no modo de depuração:
    Uma exceção sem tratamento do tipo 'System.ComponentModel.LicenseException' ocorreu em system.windows.forms.dll informações adicionais: você não tem uma licença para usar este controle ActiveX.
    Ou, em tempo de execução, você pode ver a seguinte mensagem de semelhante:
    Ocorreu uma exceção sem tratamento em seu aplicativo.
    Você não tem uma licença para usar este controle ActiveX.
  2. Pressione F5 para executar o projeto.
  3. Clique no botão para adicionar o controle ActiveX ao formulário.

Solução de problemas

importante Observe o seguinte sobre esta operação:
  • Você deve adicionar a licença para cada instância de cada controle ActiveX que requer uma licença de tempo de execução. Por exemplo, se você criar uma segunda instância do MyLicensedControl , você precise adicionar a licença também a essa instância.
  • Certifique-se que você possui a chave de licença correto para seu controle. Determinar a chave de licença correto é específico para o controle: Para obter mais informações sobre como determinar a chave, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
    151771O exemplo Licreqst.exe demonstra como solicitar a chave de licença de um objeto no Visual C++
    Como alternativa, você pode usar Licenses.Add para o controle no Visual Basic 6 em um computador que possui a licença no registro. Licenses.Add retorna a licença de tempo de execução que ele adicionado como uma seqüência de caracteres; em seguida, você pode usar Debug.Print para obter a chave de licença.
Referências
Para obter mais informações, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
241126INFO: Adicionar dinamicamente controles de usuário que exigem licenças de tempo de execução
188577COMO: O que é a coleção de licenças usada?
190670Como adicionar dinamicamente controles a um formulário com o Visual Basic 6.0
adição dinâmica necessidade adicionais

Aviso: este artigo foi traduzido automaticamente

Proprietăți

ID articol: 326652 - Ultima examinare: 12/11/2006 21:04:19 - Revizie: 2.3

Microsoft Visual C# 2005 Express Edition, Microsoft Visual C# .NET 2002 Standard Edition

  • kbmt kbhowtomaster KB326652 KbMtpt
Feedback