| 4D v13.4LAUNCH EXTERNAL PROCESS | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v13.4
 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 ifSe 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