Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
LAUNCH EXTERNAL PROCESS
|
LAUNCH EXTERNAL PROCESS ( nomeArquivo {; fluxoEntrada {; fluxoSaida {; fluxoErro}}}{; pid} ) | ||||||||
Parâmetro | Tipo | Descrição | ||||||
nomeArquivo | String |
![]() |
Rota de acesso e argumentos de arquivo a lançar | |||||
fluxoEntrada | String, BLOB |
![]() |
Fluxo de entrada(stdin) | |||||
fluxoSaida | String, BLOB |
![]() |
Fluxo de saída (stdout) | |||||
fluxoErro | String, BLOB |
![]() |
Fluxo de erro(stderr) | |||||
pid | Inteiro longo |
![]() |
Identificador único para processo externo | |||||
A partir de 4D v19 R4, recomendamos o uso de SystemWorker class para rodar e controlar processos externos. Entretanto, esse comando ainda é compatível
O comando LAUNCH EXTERNAL PROCESS permite iniciar um processo externo de 4D, em Mac OS X e Windows.
Em Mac OS X, este comando oferece acesso a todas as aplicações executáveis que possam ser iniciadas desde o Terminal.
Passe no parâmetro nomArquivo a rota de acesso da aplicação a executar, como também os argumentos requeridos (se for necessário).
Em Mac OS X, pode também passar apenas o nome da aplicação a executar; 4D utilizará então a variável do ambiente PATH para localizar o executável.
Advertência: este comando apenas pode iniciar aplicações executáveis; não pode executar instruções que façam parte do shell (intérprete de comandos). Por exemplo, em Mac OS não é possível utilizar este comando para executar a instrução feito ou as indireções.
O parâmetro fluxoEntrada (opcional) contém o stdin do processo externo. Quando o comando tiver sido executado, os parâmetros fluxoSaida e fluxoErro (se for passado) retornam respectivamente o stdout e o stderr do processo externo. Pode utilizar os parâmetros de tipo BLOB ao invés das cadeias de caracteres se gerenciar dados binários (como imagens).
4D oferece três variáveis de ambiente específicas que podem ser configuradas utilizando SET ENVIRONMENT VARIABLE e estão disponíveis para seu uso no contexto de LAUNCH EXTERNAL PROCESS:
Estas variáveis são válidas no processo atual para a chamada abaixo a LAUNCH EXTERNAL PROCESS.
Quando for passado, o parâmetro pid (inteiro longo) devolve a ID única do processo criado para lançar o comando, independentemente do estado da opção _4D_OPTION_BLOCKING_EXTERNAL_PROCESS. Com esta informação, é mais fácil interagir com os processos externos criados pelo comando, por exemplo. para detê-lo. Se o lançamento do processo falha, não é devolvido o parâmetro pid.
Os exemplos abaixo utilizam o Terminal Mac OS X, disponível na pasta Aplicações/Utilidades.
1. Para modificar os acessos a um arquivo (chmod é o comando Mac OS X utilizado para modificar o acesso aos arquivos):
LAUNCH EXTERNAL PROCESS("chmod +x /pasta/meuarquivo.txt")
2. Para editar um arquivo de tipo texto (cat é o comando Mac OS X utilizado para editar os arquivos). Neste exemplo, a rota de acesso completa do comando é passada:
C_TEXT(entrada;saída)
entrada:=""
LAUNCH EXTERNAL PROCESS("/bin/cat /pasta/meuarquivo.txt";entrada;saída)
3. Para obter os conteúdos da pasta “Usuários” (ls -l é o equivalente Mac OS X do comando dir em DOS):
C_TEXT($In;$Out)
LAUNCH EXTERNAL PROCESS("/bin/ls -l /Usuários";$In;$Out)
4. Para iniciar uma aplicação "gráfica" independente, é preferível utilizar o comando sistema open (neste caso, a instrução LAUNCH EXTERNAL PROCESS tem o mesmo efeito que fazer clique duplo na aplicação):
LAUNCH EXTERNAL PROCESS("open /Applications/Calculator.app")
5. Para abrir NotePad:
LAUNCH EXTERNAL PROCESS("C:\\WINDOWS\\notepad.exe")
6. Para abrir Notepad e abrir um documento específico:
LAUNCH EXTERNAL PROCESS("C:\\WINDOWS\\notepad.exe C:\\Docs\\nova pasta\\res.txt")
7. Para iniciar a aplicação Microsoft® Word® e abrir um documento específico (Note o uso das duas ""):
$meudoc:="C:\\Program Files\\Microsoft Office\\Office10\\WINWORD.EXE \"C:\\Documents and
Settings\\Macros\\Escritorio\\MeusDocs\\NovaPasta\\test.xml\""
LAUNCH EXTERNAL PROCESS($meudoc;$tIn;$tOut)
8. Para executar um script Perl (é necessário ActivePerl):
C_TEXT($entrada;$saída)
SET ENVIRONMENT VARIABLE("minhavariável";"valor")
LAUNCH EXTERNAL PROCESS("D:\\Perl\\bin\\perl.exe D:\\Perl\\eg\\cgi\\env.pl";$entrada;$saida)
9. Para iniciar um comando com o diretório atual e sem mostrar o console:
SET ENVIRONMENT VARIABLE("_4D_OPTION_CURRENT_DIRECTORY";"C:\\4D_VCS")
SET ENVIRONMENT VARIABLE("_4D_OPTION_HIDE_CONSOLE";"true")
LAUNCH EXTERNAL PROCESS("meuComando")
10. Para permitir ao usuário abrir um documento externo em Windows:
$nomdoc:=Select document("";"*.*";"Escolha o arquivo a abrir";0)
If(OK=1)
SET ENVIRONMENT VARIABLE("_4D_OPTION_HIDE_CONSOLE";"true")
LAUNCH EXTERNAL PROCESS("cmd.exe /C start \"\" \""+document+"\"")
End if
Se o comando for executado corretamente, a variável sistema OK assume o valor 1. Do contrário (arquivo não encontrado, memória insuficiente, etc.), assume o valor 0.
Produto: 4D
Tema: Ferramentas
Número
811
Criado por: 4D 2004
Modificado: 4D v15 R4
Manual de linguagem 4D ( 4D v20 R7)