4D v14.3

LAUNCH EXTERNAL PROCESS

Página Inicial

 
4D v14.3
LAUNCH EXTERNAL PROCESS

LAUNCH EXTERNAL PROCESS 


 

LAUNCH EXTERNAL PROCESS ( nomeArquivo {; fluxoEntrada {; fluxoSaida {; fluxoErro}}} )  
Parâmetro Tipo   Descrição
nomeArquivo  cadeia in Rota de acesso e argumentos de arquivo a lançar
fluxoEntrada  cadeia, BLOB in Fluxo de entrada(stdin)
fluxoSaida  cadeia, BLOB in Fluxo de saída (stdout)
fluxoErro  cadeia, BLOB in 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.

 
PROPRIEDADES 

Produto: 4D
Tema: Ferramentas
Número 811

Este comando modifica a variável sistema OK

 
HISTÓRIA 

Criado por: 4D 2004

 
VER TAMBÉM 

SET ENVIRONMENT VARIABLE

 
ARTICLE USAGE

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)