Eu precisava de algo semelhante a isso hoje. Como não consegui encontrar uma solução de dependência externa de que gostei, já que não sou realmente fã de VBScript / Powershell, fui em frente e escrevi uma:
https://github.com/cubiclesoft/messagebox-windows
As caixas de mensagem produzidas são modais para a janela atual do console. Ou seja, o usuário não pode fazer nada até fechar a caixa de diálogo. Além disso, o código de retorno da MessageBox()
chamada é retornado ao chamador para que um script possa reagir a qualquer botão pressionado. E, é claro, ele suporta toda a gama de opções para a MessageBox()
API do Win32.
Adicionar um executável de 80 KB à mistura pode não ser a xícara de chá de todos. No entanto, ele está estaticamente vinculado ao tempo de execução do VC ++ e suporta Unicode, o que explica por que o arquivo é tão grande, dada a natureza minimalista do que faz. E há um pequeno problema de não conseguir passar facilmente novas linhas da linha de comando para exibir mensagens de várias linhas. Em um ponto positivo, ele exibe o diálogo em menos tempo do que qualquer outra solução apresentada até o momento.
Obviamente, se o tamanho do arquivo não importa e as caixas de diálogo criam uma experiência do usuário muito "na sua cara" e / ou não exigem interação do usuário, eu também me deparei com este projeto bacana:
https://www.paralint.com/projects/notifu/
Que exibe um balão pop-up na área de notificação de status da tela usando IUserNotification . A desvantagem é que o executável do Notifu executa apenas 240KB. Outro exemplo infeliz que o COM cria inchaço desnecessário e me deixa desejando que houvesse uma API simples e leve para o recurso.
Para algo multiplataforma, há zenidade. É principalmente para Linux, mas também existem portas para Mac e Windows. A porta do zenity para Windows tem mais de 1 MB de tamanho porque, bem, o GTK é bastante inchado.
msg
comando. Você pode não a ter se estiver executando uma edição Home do Windows, mas pode adicioná-la apenas copiando e colando o msg.exe de uma instalação do Pro.