Nesse vídeo demonstraremos a utilização das funções ShellExecute, WaitRun e WinExec, que servem para executar recursos e funções no Sistema Operacional.
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas #Include "Totvs.ch" /*/{Protheus.doc} User Function zExe444 Executa comandos e programas no Sistema Operacional que esta rodando o SmartClient @type Function @author Atilio @since 31/03/2023 @see https://tdn.totvs.com/display/tec/ShellExecute e https://tdn.totvs.com/display/tec/WaitRun e https://tdn.totvs.com/display/tec/WinExec @obs Função ShellExecute Parâmetros + cAcao , Caractere , Indica o tipo de ação a ser executada (como OPEN para abrir) + cArquivo , Caractere , Indica o nome do aplicativo ou arquivo + cParam , Caractere , Indica se deve passar parâmetros de execução (para caso usar aplicativo) + cDirTrabalho , Caractere , Indica a pasta que contém o cArquivo + nOpc , Numérico , Indica o tipo de abertura (normal; minimizada; maximizada; etc) Retorno + nRet , Numérico , Se for bem sucedida retorna um valor maior que 32 Função WaitRun Parâmetros + cExeName , Caractere , Indica o aplicativo a ser executado ou arquivo a ser aberto + nShow , Numérico , Indica o tipo de abertura (normal; minimizada; maximizada; etc) Retorno + nRet , Numérico , Retorna 0 em caso de sucesso Função WinExec Parâmetros + cExec , Caractere , Indica o aplicativo a ser executado Retorno + cRet , Caractere , Retorna "0" em caso de sucesso **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao **** /*/ User Function zExe444() Local aArea := FWGetArea() Local cExecute := "" Local cArquivo := "" Local cComando := "" Local cPrograma := "" //Abrindo uma janela com novo email no Outlook via ShellExecute cExecute := "/c ipm.note /m teste@empresa.com " ShellExecute("OPEN", "outlook.exe", cExecute, "", 1) //Criando um arquivo .bat e depois execuntado via WaitRun cArquivo := 'C:\spool\teste.bat' cComando := 'getmac > "C:\spool\mac_address.txt"' MemoWrite(cArquivo, cComando) WaitRun(cArquivo, 2) //Acionando um programa do Windows para abrir via WinExec cPrograma := "notepad.exe" WinExec(cPrograma) FWRestArea(aArea) Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.