RECURSAO
Ola pessoal!
Fiquei fora uns 8 dias mais voltei para aprender mais com vocês.
Minha pergunta é a seguinte: é possÃvel interagir uma console.exe criado do vb6 com uma textbox dentro de um form ?
Alguém teria uma idéia ou um exemplo? Qualquer sugestão será bem vinda.
Desde já agradeço pessoal.
Fiquei fora uns 8 dias mais voltei para aprender mais com vocês.
Minha pergunta é a seguinte: é possÃvel interagir uma console.exe criado do vb6 com uma textbox dentro de um form ?
Alguém teria uma idéia ou um exemplo? Qualquer sugestão será bem vinda.
Desde já agradeço pessoal.
Xavier, o que isso tem haver com recursão?
vlw
vlw
JABA, você sabe que recursão é uma função que chama ela mesma quantas vezes você determinar. Pois, é... numa console eu consigo fazer isso fácil, fácil. Determino um conjunto de funções recursivas.
Já no VB6, até agora não encontrei uma forma de fazer o mesmo em uma textbox ou até mesmo por evento keypress. Talvez você saiba como eu possa após gerar uma console.exe, chamá-la através de um textbox em um form. A idéia é que as chamadas venham para um label e os comandos e respostas para um textbox. Não sei se fui bem claro.
Agradeço a sua atenção.
Já no VB6, até agora não encontrei uma forma de fazer o mesmo em uma textbox ou até mesmo por evento keypress. Talvez você saiba como eu possa após gerar uma console.exe, chamá-la através de um textbox em um form. A idéia é que as chamadas venham para um label e os comandos e respostas para um textbox. Não sei se fui bem claro.
Agradeço a sua atenção.
Xavier, recursão é exatamente o que você descreveu, porém, o que você está querendo ainda está muito obscuro. Não dá para saber o que você quer realmente.
Criando um metodo recursivo que passe o textbox e o label como parametro não resolve o seu caso?
vlw
Criando um metodo recursivo que passe o textbox e o label como parametro não resolve o seu caso?
vlw
Vamos lá !!!
Vou tentar ser mais claro.
Preciso saber como capturar a saÃda [Ô]stdout[Ô] de um aplicativo console.exe em um textbox, que eu criei no vb6.
Exemplificando: Imagine a console prompt de comandos do [Ô]DOS[Ô], então eu preciso capturar a saÃda em um campo text no vb6.
Veja bem, eu já tenho um console.exe, desenvolvido com um certo número e comandos já pré definidos por mim.
Preciso acessar esta console.exe e chamar os comandos [Ô]recursivos[Ô] através de um textbox.
Bom...é isso.
Vou tentar ser mais claro.
Preciso saber como capturar a saÃda [Ô]stdout[Ô] de um aplicativo console.exe em um textbox, que eu criei no vb6.
Exemplificando: Imagine a console prompt de comandos do [Ô]DOS[Ô], então eu preciso capturar a saÃda em um campo text no vb6.
Veja bem, eu já tenho um console.exe, desenvolvido com um certo número e comandos já pré definidos por mim.
Preciso acessar esta console.exe e chamar os comandos [Ô]recursivos[Ô] através de um textbox.
Bom...é isso.
Boa tarde Xavier.
Pelo o que eu entendi você vai passar um parâmetro para o seu console, e esse parâmetro vira do campo Text.
Se for isso mesmo segue:
No evento Form_load do conole:
[ô]Testa se já existe uma instancia aberta
If App.PrevInstance Then
End
End If
[ô]-------------------------------------------------------------------------
[ô]Verifica se foi passado algum argumento
[ô]Caso não, ele abre normalmente
If Command <> [Ô][Ô] Then
If Command = [Ô]xxxxxxx[Ô] Then
MsgBox [Ô]yyyyyyy[Ô]
ElseIf Command = [Ô]yyyyyyy[Ô] Then
MsgBox [Ô]yyyyyyy[Ô]
ElseIf Command = [Ô]zzzzzzzz[Ô] Then
MsgBox [Ô]zzzzzzzz[Ô]
End IF
End IF
[ô]No aplicativo que for chamar o Console.exe usar:
Call Shell ([Ô]Caminho do Console.exe[Ô] - parametro, tipo de abertura)
Exemplo:
Call Shell ([Ô]CONSOLE.EXE - busca [Ô], vbMaximizedFocus)
Pelo o que eu entendi você vai passar um parâmetro para o seu console, e esse parâmetro vira do campo Text.
Se for isso mesmo segue:
No evento Form_load do conole:
[ô]Testa se já existe uma instancia aberta
If App.PrevInstance Then
End
End If
[ô]-------------------------------------------------------------------------
[ô]Verifica se foi passado algum argumento
[ô]Caso não, ele abre normalmente
If Command <> [Ô][Ô] Then
If Command = [Ô]xxxxxxx[Ô] Then
MsgBox [Ô]yyyyyyy[Ô]
ElseIf Command = [Ô]yyyyyyy[Ô] Then
MsgBox [Ô]yyyyyyy[Ô]
ElseIf Command = [Ô]zzzzzzzz[Ô] Then
MsgBox [Ô]zzzzzzzz[Ô]
End IF
End IF
[ô]No aplicativo que for chamar o Console.exe usar:
Call Shell ([Ô]Caminho do Console.exe[Ô] - parametro, tipo de abertura)
Exemplo:
Call Shell ([Ô]CONSOLE.EXE - busca [Ô], vbMaximizedFocus)
Obrigado Eric Beltrame pela ajuda!
Companheiro, o seu código vai chamar a console e abrÃ-la na tela. Preciso que ela rode em background, ou seja sem aparecer. Quanto a isso, deve haver um parâmetro do tipo [Ô]hide[Ô]. Vamos por parte.
Como faço para invocar os comandos da console.exe através de um campo text e retornar para este mesmo campo text as opções a serem dadas ?
Exemplo:
Não sei se você conhece a prompt do AutoCad. Ele é uma console embutida em um form, rodando em background. Os comandos são desenvolvido em lisp ou seja [Ô]c[Ô] interpretado. Não é o meu caso. Já larguei lisp à dez anos. Faço tudo e um tanto a mais com o bom e velho vb6.
Então é isso aà !
Companheiro, o seu código vai chamar a console e abrÃ-la na tela. Preciso que ela rode em background, ou seja sem aparecer. Quanto a isso, deve haver um parâmetro do tipo [Ô]hide[Ô]. Vamos por parte.
Como faço para invocar os comandos da console.exe através de um campo text e retornar para este mesmo campo text as opções a serem dadas ?
Exemplo:
Não sei se você conhece a prompt do AutoCad. Ele é uma console embutida em um form, rodando em background. Os comandos são desenvolvido em lisp ou seja [Ô]c[Ô] interpretado. Não é o meu caso. Já larguei lisp à dez anos. Faço tudo e um tanto a mais com o bom e velho vb6.
Então é isso aà !
Já pensou em gravar o output para um arquivo texto e depois ler? Seria muito mais fácil:
Shell [Ô]C:\pasta\programa.exe >arquivo.txt[Ô]
Open [Ô]C:\pasta\arquivo.txt[Ô] for input as #1
....
Shell [Ô]C:\pasta\programa.exe >arquivo.txt[Ô]
Open [Ô]C:\pasta\arquivo.txt[Ô] for input as #1
....
Na verdade KERPLUNK, já pensei nesta solução sim. O que me chamou muita atenção foi um código que baixei e estou estudando. Vou passar para vocês darem uma olhadinha. Se vocês puderem dar uma clareada a mais, será muito bem vindo. Ele simula um interpretador vb. Aà dispensaria a console e faria de um campo text um pequeno interpretador e daà a facilidade de tê-lo no form.
[ô]módulo:
Public Declare Function EbExecuteLine Lib [Ô]vba6.dll[Ô] (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long
[ô]form:
Private Sub Command1_Click()
comando = Text1
comando = Replace(comando, Chr(13) + Chr(10), [Ô]:[Ô])
executeline = EbExecuteLine(StrPtr(comando), 0&, 0&, Abs(fCheckOnly)) = 0
If executeline = False Then MsgBox [Ô]Erro na compilação[Ô]
End Sub
Pergunta: Existem outras formas de usar esta sintaxe de tal maneira que retorne a resposta parauma textbox?
Abs(fCheckOnly)...outras ?????
Digite estes dados na textbox multiline = true
a = 10
b = 20
c = a + b
msgbox [Ô]A soma de A e B é igual a [Ô] & c,,[Ô]Função[Ô]
Desde já agradeço a boa vontade e paciência de todos.
[ô]módulo:
Public Declare Function EbExecuteLine Lib [Ô]vba6.dll[Ô] (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long
[ô]form:
Private Sub Command1_Click()
comando = Text1
comando = Replace(comando, Chr(13) + Chr(10), [Ô]:[Ô])
executeline = EbExecuteLine(StrPtr(comando), 0&, 0&, Abs(fCheckOnly)) = 0
If executeline = False Then MsgBox [Ô]Erro na compilação[Ô]
End Sub
Pergunta: Existem outras formas de usar esta sintaxe de tal maneira que retorne a resposta parauma textbox?
Abs(fCheckOnly)...outras ?????
Digite estes dados na textbox multiline = true
a = 10
b = 20
c = a + b
msgbox [Ô]A soma de A e B é igual a [Ô] & c,,[Ô]Função[Ô]
Desde já agradeço a boa vontade e paciência de todos.
Então o que você quer fazer é um interpretador de comandos, certo?
Certo
Tópico encerrado , respostas não são mais permitidas