4D v16.3

LAUNCH EXTERNAL PROCESS

Página Inicial

 
4D v16.3
LAUNCH EXTERNAL PROCESS

LAUNCH EXTERNAL PROCESS 


 

LAUNCH EXTERNAL PROCESS ( nomeArquivo {; fluxoEntrada {; fluxoSaida {; fluxoErro}}}{; pid} ) 
Parâmetro Tipo   Descrição
nomeArquivo  String in Rota de acesso e argumentos de arquivo a lançar
fluxoEntrada  String, BLOB in Fluxo de entrada(stdin)
fluxoSaida  String, BLOB in Fluxo de saída (stdout)
fluxoErro  String, BLOB in Fluxo de erro(stderr)
pid  Inteiro longo in Unique identifier for external process

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).

Nota: se utilizar a variável do ambiente _4D_OPTION_BLOCKING_EXTERNAL_PROCESS através do comando SET ENVIRONMENT VARIABLE (execução assíncrona), os parâmetros fluxoSaida e fluxoErro não são devolvidas.

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.



Ver também 

SET ENVIRONMENT VARIABLE

 
PROPRIEDADES 

Produto: 4D
Tema: Ferramentas
Número 811

Este comando modifica a variável sistema OK

 
HISTÓRIA 

Criado por: 4D 2004
Modificado: 4D v15 R4

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)