A Shellexec é um aplicativo de console que permite executar programas (como usuário ou administrador atual), abrir documentos em aplicativos associados, visualizar páginas da Web no seu navegador padrão e muito mais. É um "invólucro de console" para a função ShellexEcteex.

Binários compilados:
Shellexec_win64.zip (~ 96 kb)
Shellexec_win32.zip (~ 72 kb)
ShellExec FILE [-o Operation] [-p Parameters] [-d Directory] [-s ShowCommand]
[-w [finish|idle]] [-t TIME] [-hwnd WindowHandle] [-h] [-V] [--license] [--home] [--source]
As opções são sensíveis ao minúsculas. As opções entre colchetes são opcionais.
-o , --operation=STR
Ação a ser executada. A ação padrão está aberta . Veja a descrição abaixo.
-p , --params=STR
Se o arquivo especificar um arquivo executável, esse parâmetro é uma string que especifica os parâmetros a serem passados para o aplicativo.
-d , --directory=DIR
Diretório de trabalho para a ação.
-s , --show-cmd=STR
Este parâmetro especifica como um aplicativo deve ser exibido quando é aberto. O comando do show padrão é sw_shownormal . Veja a descrição abaixo.
-w , --wait=[FOR]
termine ou ocioso . Padrão: acabamento . Se você não especificar um tempo de espera na opção -t , será usado o Infinite ( -t=infinite ). Veja a descrição abaixo.
-t , --wait-time=TIME
Intervalo de tempo limite (para a opção -w ). Unidades de horário disponível: ms (milissegundos), s (segundos), m (minutos), h (horas), d (dias). Se nenhuma unidade for especificada, os milissegundos serão usados. O valor infinito significa nenhum limite de tempo.
-hwnd , --window-handle=INT
Uma alça na janela pai usada para exibir uma interface do usuário ou mensagens de erro.
-h , --help
Mostre ajuda.
-V , --version
Mostrar versão do aplicativo.
--license
Exibir licença de programa.
--home
Abre a página inicial do programa no navegador padrão.
--source
Abre a página do programa no GitHub com os arquivos de origem do programa.
Nome do arquivo ou diretório ou URL ou objeto no qual executar a operação especificada.
abrir
Abre o item especificado pelo parâmetro do arquivo. O item pode ser um arquivo, pasta ou URL.
editar
Lança um editor e abre o documento para edição. Se o arquivo não for um arquivo de documento, o Shellexec falhará.
explorar
Explora uma pasta especificada por arquivo.
encontrar
Inicia uma pesquisa começando no diretório especificado por -d opção.
imprimir
Imprime o arquivo especificado por arquivo. Se o arquivo não for um arquivo de documento, o programa falhará.
runas
Lança um aplicativo como administrador. O Controle da Conta de Usuário (UAC) solicitará ao Usuário que o consentimento execute o aplicativo elevado ou insira as credenciais de uma conta de administrador usada para executar o aplicativo.
propriedades
Exibe as propriedades do arquivo ou da pasta.
Mais informações (LPoperation): https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shellexecutew
Mais informações (LPVERB): https://docs.microsoft.com/en-us/windows/win32/api/shellapi/ns-shellapi-shellexecuteInfow
0 | SW_HIDE | Hide
Esconde a janela e ativa outra janela.
1 | SW_SHOWNORMAL | ShowNormal | SW_NORMAL | Normal
Ativa e exibe uma janela. Se a janela for minimizada ou maximizada, o sistema a restaura em seu tamanho e posição originais. Um aplicativo deve especificar esse sinalizador ao exibir a janela pela primeira vez.
2 | SW_SHOWMINIMIZED | ShowMinimized | Minimized
Ativa a janela e a exibe como uma janela minimizada.
3 | SW_SHOWMAXIMIZED | ShowMaximized | Maximized | Maximize
Ativa a janela e a exibe como uma janela maximizada.
4 | SW_SHOWNOACTIVATE | ShowNoActivate | NoActivate
Exibe uma janela em seu tamanho e posição mais recentes. Esse valor é semelhante ao sw_shownormal, exceto que a janela não está ativada.
5 | SW_SHOW | Show
Ativa a janela e a exibe em seu tamanho e posição atuais.
6 | SW_MINIMIZE | Minimize
Minimiza a janela especificada e ativa a próxima janela de nível superior na ordem Z.
7 | SW_SHOWMINNOACTIVE | ShowMinNoActive | MinNoActive
Exibe a janela como uma janela minimizada. Este valor é semelhante ao SW_SHOWMIMIDIDE, exceto que a janela não está ativada.
8 | SW_SHOWNA | ShowNA
Exibe a janela em seu tamanho e posição atuais. Esse valor é semelhante ao SW_SHOW, exceto que a janela não está ativada.
9 | SW_RESTORE | Restore
Ativa e exibe a janela. Se a janela for minimizada ou maximizada, o sistema a restaura em seu tamanho e posição originais. Um aplicativo deve especificar esse sinalizador ao restaurar uma janela minimizada.
10 | SW_SHOWDEFAULT | ShowDefault
Define o estado do show com base no valor SW_ especificado na estrutura StartupInfo passada para a função CreateProcess pelo programa que iniciou o aplicativo.
11 | SW_FORCEMINIMIZE | ForceMinimize
Minimiza uma janela, mesmo que o thread que possui a janela não esteja respondendo. Esse sinalizador deve ser usado apenas ao minimizar as janelas de um encadeamento diferente.
Mais informações: https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-showwindow#parameters
terminar
Aguarde até que o programa em execução (especificado no parâmetro de arquivo) termine sua operação ou até que o intervalo de intervalo ( -t opção) tenha decorrido.
parado
Aguarda até que o programa especificado termine de processar sua entrada inicial e aguarde a entrada do usuário sem entrada pendente, ou até que o intervalo de intervalo ( -t opção) tenha decorrido.
Mais informações:
https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-waitformingleobject
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-waitforinputidle
0 - Sucesso
Qualquer outro valor - erro
Inicia a calculadora do sistema:
ShellExec calc
Abre o arquivo "hosts" no editor de texto do sistema, o bloco de notas:
ShellExec notepad -o runas -p "C:WindowsSystem32driversetchosts"
Exibe o site fornecido no navegador padrão:
ShellExec https://example.com
Abre o arquivo "win.ini" no editor de texto associado aos arquivos INI:
ShellExec "C:Windowswin.ini"
Abre o arquivo jpg no visualizador gráfico padrão:
ShellExec "D:picturesmy picture.jpg"
Abre o arquivo BAT para edição no editor padrão e aguarda o fim do programa:
ShellExec "D:batch_filestest.bat" -o edit -w=finish
Domínio público.
Você precisa do Embarcadero Delphi Xe2 ou mais recente (a versão da comunidade gratuita é Eough).
Você também precisa de algumas unidades da biblioteca JPLIB.