4D v14.3LAUNCH EXTERNAL PROCESS |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
LAUNCH EXTERNAL PROCESS
|
LAUNCH EXTERNAL PROCESS ( nomeArquivo {; fluxoEntrada {; fluxoSaida {; fluxoErro}}} ) | ||||||||
Parâmetro | Tipo | Descrição | ||||||
nomeArquivo | cadeia |
![]() |
Rota de acesso e argumentos de arquivo a lançar | |||||
fluxoEntrada | cadeia, BLOB |
![]() |
Fluxo de entrada(stdin) | |||||
fluxoSaida | cadeia, BLOB |
![]() |
Fluxo de saída (stdout) | |||||
fluxoErro | cadeia, BLOB |
![]() |
Fluxo de erro(stderr) | |||||
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.
Nota: para os usuários de 4D Pack, este comando recupera e estende as funcionalidades oferecidas pelo comando AP_Sublaunch.
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 strings de caracteres se manejar dados de tipo texto de tamanho superior a 32 KB ou dados binários (como imagens).
Nota: se utilizar a variável do ambiente _4D_OPTION_BLOCKING_EXTERNAL_PROCESS através do comando SET ENVIRONMENT VARIABLE (execução assincrônica), os parâmetros fluxoSaida e fluxoErro não são devolvidas.
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
Manual de linguagem 4D ( 4D v11 SQL Release 6)
Manual de linguagem 4D ( 4D v12.4)
Manual de linguagem 4D ( 4D v14 R2)
Manual de linguagem 4D ( 4D v13.5)
Manual de linguagem 4D ( 4D v14 R3)
Manual de linguagem 4D ( 4D v14.3)
Manual de linguagem 4D ( 4D v14 R4)