...
Executa uma função, um arquivo ou qualquer execução em linha de comando no S.O. na estação onde o Smartclient está em execução. Esta função encontra-se disponível para Windows e Linux.
Sintaxe
Bloco de código |
---|
|
ShellExecute( < cAcao >, < cArquivo >, < cParam >, < cDirTrabalho >, [ nOpc ] )
|
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|
cAcao | caractere | Indica o nome da ação que será executada. | X |
|
|
cArquivo | caractere | Indica o caminho e diretório do arquivo que será executado. | X |
|
|
cParam | caractere | Indica o parâmetro de linha que será repassado para o executável. | X |
|
|
cDirTrabalho | caractere | Indica o diretório de trabalho onde o arquivo será executa. | X |
|
|
nOpc | numérico | Indica o modo de interface a ser criado para a execução do programa. Para mais |
informações observações | | Retorno
munérico | Retorna 0 (zero) em caso de sucesso da execução do processo. Caso contrário, será retornado um código de erro do sistema operacional relacionado à causa da ocorrência numérico | Se a função for bem-sucedida ela retornará um valor maior que 32. O retorno bem sucedido (superior a 32) é de responsabilidade do Sistema Operacional,e será necessário pesquisar o comando executado para confirmar essa informação.
Se a função falhar ela retornará um valor de erro entre 0 e 32, que indica a causa da falha. O valor de retorno é lançado como um HINSTANCE, conforme tabela de erros disponível abaixo: https://docs.microsoft.com/en-us/windows/win32/api/shellapi/ns-shellapi-shellexecuteinfoa SE_ERR_FNF (2) File not found. SE_ERR_PNF (3) Path not found. SE_ERR_ACCESSDENIED (5) Access denied. SE_ERR_OOM (8) Out of memory. SE_ERR_SHARE (26) Cannot share an open file. SE_ERR_ASSOCINCOMPLETE (27) File association information not complete. SE_ERR_DDETIMEOUT (28) DDE operation timed out. SE_ERR_DDEFAIL (29) DDE operation failed. SE_ERR_DDEBUSY (30) DDE operation is busy. SE_ERR_NOASSOC (31) File association not available. SE_ERR_DLLNOTFOUND (32) Dynamic-link library not found. |
Observações
Informações |
---|
|
Opções de exibição da janela da aplicação executada: 0 - Escondido 1 - Normal 2 - Minimizada 3 - Maximizada 4 - Na Ativação 5 - Mostra na posição mais recente da janela 6 - Minimizada 7 - Minimizada 8 - Esconde a barra de tarefas 9 - Restaura a posição anterior 10 - Posição padrão da aplicação 11 - Força minimização independente da aplicação executada, maximizada - Estes valores são usados no arquivo de constantes "shell.ch". Para maiores informações, consulte a documentação da função WaitRun.
|
Nota |
---|
|
- A função somente será executada caso o client (SmartClient) esteja executando em sistemas operacionais Microsoft Windows (a partir da versão XP), ou em caso de SmartClient HTML ou SmartClient Activex.
- Existe suporte a variáveis de ambiente nos parâmetros cArquivo e cDirTrabalho em builds superiores a 7.00.111010P. Ex:
ShellExecute( "Open", "%PROGRAMFILES%\Internet Explorer\iexplore.exe", "http://www.google.com.br", "C:\", 1 ) - Quando executada via SmartClient HTML, a função ShellExecute não tem acesso ao arquivos locais, só podendo ser utilizada para abrir URL de sites em outras janelas/abas. Ex:
Exemplo: ShellExecute( "Open", "http://www.google.com.br", "", "C:\", 1 ) - A função ShellExecute() deve ser chamada de um programa AdvPL que está sendo executado a partir de uma conexão do Smart Client. Caso a função seja chamada a partirde partir de um processo que não foi iniciado a partir do Smart Client, por exemplo uma função em JOB, a função não executará o programa e retornará -1. Em caso de falha na localizaçãoou localização ou inexistência do arquivo executável, será retornado status 2.
- A função ShellExecute() apenas dispara a execução de uma nova aplicação, sem aguardar pelo seu retorno ou término. Caso seja necessário aguardar pelo término da aplicaçao externa a executada, utilize a função WaitRun.
|
Exemplos
Bloco de código |
---|
language | cpp |
---|
theme | Eclipse |
---|
title | Exemplo |
---|
linenumbers | true |
---|
collapse | false |
---|
|
#INCLUDE "TOTVS.CH"
user function exemplo()
// Exemplo de uso para Windows
shellExecuteShellExecute( "Openopen", "C:\Windows\System32\cmd.exehttp://www.google.com.br", "", " /k dir", 1 )
// Exemplo de uso para Linux
shellExecute("Browser", "/usr/bin/firefox", "C:\http://www.google.com.br", "/", 1 )
return
|
Abrangência
TOTVS Application Server
Veja também
...