|
|
|
|
|
Dicas
|
|
Visual Basic (ActiveX/Controles/DLL)
|
|
|
Título da Dica: Criação de .bat e utilizar com shell
|
|
|
|
Postada em 29/2/2004 por :: Renato ::
Acredito que você já deve ter tido a necessidade de trabalhar com shell e ficou pensando como fazer para aguardar um comando ser executado no MSDOS. Bom, abaixo estou postando um código que aguarda a destruição de um arquivo .txt (podia ser qualquer outro) enquanto é executado um arquivo .bat que conterá os comandos. O código está explicado... neste exemplo vai acontecer um pnig num IP que está armazenado na variavel strIP:
Dim strComando As String Dim strLote As String Dim strCaminhobloq As String Dim strKbloq As String Dim strIP As String strIP = "200.100.0.99" ' Coloque um IP qualquer aqui On Error GoTo erro_kill_txt strComando = "ping " + strIP ' Linha 1 do arquivo de lote que executa o .bat strLote = "ping.bat" ' Nome e caminho para o arquivo de lote strCaminhobloq = "bloqueio.txt" ' Caminho para criação de um arquivo que bloqueia o processo enquanto o shell é executado strKbloq = "del bloqueio.txt" ' Comando de exclusão
Open strLote For Output As #1 ' | Close #1 ' | Open strLote For Append As #1 ' | Print #1, "@echo off" ' | Print #1, ":inicio" ' | -> Criação do arquivo de lote que realiza o ping Print #1, "if not exist bloqueio.txt goto inicio" Print #1, strComando ' | Print #1, strKbloq ' | Print #1, "exit" Close #1
'comando para executar programas em DOS
h = Shell(Environ("COMSPEC") & " /C ping.bat", vbHide) ' Executando o ping
Open strCaminhobloq For Output As #1 ' Criação do arquivo de bloqueia e desbloqueia o "converte" Print #1, "..." Close #1
Do While LCase(Dir(strCaminhobloq)) = "bloqueio.txt" ' Loop que aguarda a destruição de "bloqueio.txt" pelo converte.bat parra posseguir Loop
Kill strLote ' Destruindo arquivo de lote
Exit Sub erro_kill_txt: Resume Next
Renato
|
|
|
|
|