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