Ir para conteúdo
Fórum Script Brasil
  • 0

Criando Objetos,configurando e povoando em tempo de execução.


Danleonhart

Pergunta

8 respostass a esta questão

Posts Recomendados

  • 0

você pode usar a api EbExecuteLine():

Private Declare Function EbExecuteLine Lib "VBA6.DLL" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fcheckonly As Long) As Long
Private Sub Command1_Click()
    EbExecuteLine StrPtr(Text1.Text), 0&, 0&, Abs(False)
End Sub[/code]

o problema é q essa dll vba6.dll (ou a vba5.dll, caso você esteja usando vb5) costuma dar muito trabalho pra distribuir.

você tb pode usar o metodo .Eval() do objeto ScriptControl da biblioteca Microsoft Script Control pra executar codigos de VBScript ou JavaScript. so q acontece q VBScript não é exatamente o vb6 (seria como se você estivesse executando um arquivo .vbs separado), ou seja, ele não deve ter nenhuma relacao com o seu projeto, então você não deve conseguir alterar valores de seus objetos e muito menos chamar a funcao End(), como você comentou (tb porque acho q funcao End() nem existe em VBScript).

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

  • 0

Beleza Kuroi !

Como assim dá trabalho para distribuir ?! :unsure:

Aqui funcionou de primeira com comandos simples...tipo:

MsgBox "Script Brasil !"
ou:
InputBox("Site de programação")

Se puder deixar algum link que aprofunde mais sobre as dicas citadas, eu agradeço ! :rolleyes:

Link para o comentário
Compartilhar em outros sites

  • 0
Como assim dá trabalho para distribuir ?! :unsure:

não sei direito, já q nunca tentei distribuir. mas parece q essa dll precisa de outras dlls então quando você esta usando-a, possivelmente você esta usando mais de uma, então fica dificil saber qual é. pesquisando sobre essa funcao, vi algumas pessoas reclamando de problemas pra distribuir, mas talvez seja possivel encontrar alguma resolucao pra esse caso.

Aqui funcionou de primeira com comandos simples...tipo:

MsgBox "Script Brasil !"
ou:
InputBox("Site de programação")

teve algum q não deu certo??

Se puder deixar algum link que aprofunde mais sobre as dicas citadas, eu agradeço ! :rolleyes:

bom, não sei, não encontrei no msdn uma documentacao q fale sobre essa funcao EbExecuteLine(). tente fazer uma busca no google por "EbExecuteLine", "EbExecuteLine vb6", por "ScriptControl vb6", sempre aparece alguma coisa de util, nem q seja topicos de outros forums discutindo erros e com codigos de exemplo.

posso passar o tópico onde o graymalkin fala sobre esses dois metodos, inclusive comenta sobre o problema da distribuicao: http://scriptbrasil.com.br/forum/index.php?showtopic=76744

Link para o comentário
Compartilhar em outros sites

  • 0

Kuroi :

Reparei que esta função tem seus limites :unsure:

Tentei executar o script:

Dim A as String
A = "Kuroi"
MsgBox A
Ele não executa :( Acho que porque tem mais de uma linha de script...então tentei:
Dim A as String:A = "Kuroi":MsgBox A
Me baseando em:
MsgBox "Kuroi":MsgBox "Monitor":MsgBox "ScriptBrasil"

esse funcionou...mas o anterior não... :blink:

:unsure: :unsure: :unsure: :unsure: :unsure:

Editado por Danleonhart
Link para o comentário
Compartilhar em outros sites

  • 0

Danleonhart, lembra do q o Graymalkin disse??

a variável utilizada dentro do código deve ser pública

usando essa funcao você provavelmente não vai conseguir criar variaveis mesmo.

e as unicas variaveis q você vai poder acessar são as q estiver definidas como publicas num module.

e pra acessar controles do formulario, você tera q passar o nome do form. exemplo: Msgbox Form1.Text1.Text

já o ScriptControl deve conseguir declarar variaveis, mas não deve conseguir acessar os objetos do seu projeto.

parece q cada um tem suas limitacoes, você vai ter q ver qual o melhor pra você.

quanto a parte de usar varias linhas, parece q precisa dos dois pontos mesmo.

mas pra ficar mais facil você pode escrever com enter e, no codigo dentro do visual basic, antes de chamar a funcao você da um Replace() trocando vbCrLf por ":".

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...