Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Este artigo passo a passo descreve como adicionar manualmente uma licença de tempo de execução para um controle ActiveX que é dinamicamente criado no Visual Basic .NET ou no Visual Basic 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 Basic .NET ou no Visual Basic 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 Visual Basic .NET ou projeto do Visual Basic 2005
Clique em Iniciar , aponte para Todos os programas , aponte para Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005 e, em seguida, clique em Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005 .
No menu arquivo , aponte para novo e, em seguida, clique em Project .
Na caixa de diálogo New Project , clique em Projetos do Visual Basic em Project Types , clique em Windows Application em modelos e, em seguida, clique em OK .
Observação No Visual Studio 2005, clique em Visual Basic em Project Types .
Clique em Iniciar , aponte para Todos os programas , aponte para Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005 , aponte para Ferramentas do Visual Studio .NET ou Visual Studio 2005 Tools e, em seguida, clique em Visual Studio .NET Command Prompt ou Visual Studio 2005 Command Prompt .
Para criar os dois assemblies de interoperabilidade que você deve ter, digite o seguinte comando:
Clique em Procurar e selecione os assemblies de interoperabilidade do controle ActiveX que você acabou de criar (eles devem estar em C:\Temp).
Adicionar AxMyProject.dll e MyProject.dll; adicionar esses arquivos copia-los localmente.
Adicione um controle Button ao formulário.
Clique duas vezes o botão para localizar o código para o método de Evento de clique de botão .
No método de Evento de clique de botão , cole o seguinte código:
Dim myControl As New AxMyProject.AxMyLicensedControl()
este cria uma nova instância do controle por meio de AxHost.
Observação : não criar 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.
Determinar e observe a chave de licença de tempo de execução para o controle. Para MyLicensedControl , a chave de licença é "gnvlslnjskvlmlgnnimh".
No método de Evento de clique de botão , cole o código a seguir abaixo Dim myControl como novo AxMyProject.AxMyLicensedControl() :
Dim f As System.Reflection.FieldInfo
f = GetType(AxHost).GetField("licenseKey", _
Reflection.BindingFlags.NonPublic _
Or 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 à 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 , depois de "f.SetValue (myControl,"gnvlslnjskvlmlgnnimh")" e antes da linha "End Sub".
Observação : se a licença não é adicionada ao controle e a licença é necessária, Controls.Add falhará. Controls.Add executa o código que contém essa validação de licença. Quando você tentar e executar Controls.Add , 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 erro semelhante:
Ocorreu uma exceção sem tratamento em seu aplicativo. Você não tem uma licença para usar este controle ActiveX.
Pressione F5 para executar o projeto.
Clique no botão para adicionar o controle ActiveX ao formulário.
importante : Observe o seguinte sobre esta operação:
Você deve adicionar a licença para cada ocorrência de cada ActiveX controle 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 informações adicionais sobre como determinar a chave, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
151771
(http://support.microsoft.com/kb/151771/EN-US/
)
LICREQST.EXE solicitando uma chave de licença de um objeto
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.
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: 326651
(http://support.microsoft.com/kb/326651/en-us/
)
Quanto esforço foi necessário para seguir os procedimentos deste artigo?
Muito baixo
Baixo
Moderado
Alto
Muito alto
Diga-nos o porque e o que podemos fazer para melhorar esta informação
Obrigado! Seus comentários são usados para nos ajudar a aperfeiçoar o conteúdo de suporte. Para obter mais opções de ajuda, visite a Home Page de Ajuda e Suporte.