Pesquisar este blog

quarta-feira, 30 de outubro de 2013

FUNÇÃO E INSTRUÇÃO DE CONTROLE DO FLUXO DE EXECUÇÃO – SHELL

Shell




    Função empregada para se executar um programa externo qualquer (como um aplicativo DOS) e retornar uma Variant contendo um valor Doublé, indicando se o programa executou-se ou não com sucesso, utilizando esta sintaxe:

Shell(CaminhoParaOAplicativo[,TioDeJanela])

Onde,
  • CaminhoParaOAplicativo: argumento obrigatório, pode ser uma string, variável string ou variant contendo uma string, indicando o caminho e nome completo do aplicativo a ser executado, incluindo sua extensão;
  • TipoDeJanela: argumento opcional, na forma de um número Integer (ou variant contendo um Integer), indicando como a janela do programa a ser executado será aberta. Se TipoDeJanela for omitida, o programa será executado minimizado e com o foco do sistema. São válidos os seguintes valores para o argumento TpoDeJanela:








As seguintes considerações são válidas para a instrução Shell:
  • Se a função Shell conseguir executar com sucesso o aplicativo solicitado, ela irá retornar um número Inteiro Longo indicando a identidade única atribuída pelo Windows ao programa. Se o programa não puder ser executado, Shell retornará zero;
  • Shell executa os programas de forma assíncrona, indicando que após a execução da instrução Shell, o programa solicitado pode permanecer em execução até retornar sua ID para o procedimento;
  • Para confirmar que um programa foi executado com a instrução Shell, você deverá utilizá-la sempre em um laço Do...Loop, até que Shell retorne a ID do programa ou retorne zero, indicando sua falha, desta forma:
Dim varID as variant ‘varID possui Empty o ser declarado

Do While varID is Empty

      VarID = Shell (<Aplicativo>, TipoDeJanela)

Loop

Exemplo: O exemplo a seguir demonstra como empregar a função Shell() para executar o comando DOS Tree.com, que retorna toda a estrutura de árvore do disco rígido atual, a partir de um arquivo de lote chamado Tree.bat. O arquivo Tree.bat direciona a saída do comando Tree.com para um arquivo texto c:\Tree.txt. O código do arquivo de lote Tree.bat é:

C:\Windows\system32\tree.com c:\ /a > c:\tree.txt

    A função GerarTree() emprega a instrução Shell() do VBA para executar o arquivo de lote Tree.bat e gerar o arquivo Tree.txt, contendo toda a estrutura de diretório do disco rígido.

    Ela emprega então a instrução Open e as funções Input() e LOF() do VBA para ler o arquivo Tree.txt e retorná-lo como valor de retorno da função GerarTree()

Public Function GerarTree() As String

  Dim varID As Variant
  Dim strTree As String

    Do While IsEmpty(varID)

          VarID = Shell(“c:\tree.bat”)

    Loop

       If varID <> 0 Then

          Open “c:\Tree.txt” For Input As #1
          StrTree = Input(LOF(1),1)
          Close #1        

       End if  

   GerarTree = strTree

End function

    Para verificar a estrutura de pasta de seu disco rígido, atribua o valor retornado por esta função para uma caixa de texto qualquer de um formulário (no Visual Basic, esta caixa da texto deverá ter a propriedade MultiLine definida para True), utilizando esta sintaxe:

TxtText1 = GerarTree()

Até a Próxima!!

Nenhum comentário:

Postar um comentário