Eu precisava de algo parecido com isso hoje. Como não consegui encontrar uma solução de dependência externa da qual gostei, já que não sou realmente fã do VBScript / Powershell, fui em frente e escrevi uma:
link
As caixas de mensagens que produz 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 chamada MessageBox()
é retornado ao chamador para que um script possa reagir a qualquer botão que tenha sido pressionado. E, claro, ele oferece suporte a toda a gama de opções para a API MessageBox()
Win32.
Adicionar um executável de 80 KB à mistura pode não ser a xícara de chá de todos. No entanto, ele está vinculado estaticamente ao tempo de execução do VC ++ e suporta o Unicode, o que explica por que o arquivo é tão grande, devido à natureza minimalista do que ele faz. E há uma pequena questão de não ser possível passar facilmente em novas linhas da linha de comando para exibir mensagens de múltiplas linhas. Em uma pequena vantagem, ele exibe o diálogo em menos tempo de relógio de parede do que qualquer outra solução apresentada até agora.
É claro que, se o tamanho do arquivo não importa e as caixas de diálogo criam uma experiência de usuário muito "cara a cara" e / ou não exigem interação do usuário, também corri para este projeto bacana:
link
Que exibe um balão pop-up na área de notificação de status da tela usando IUserNotification . A desvantagem é que o executável Notifu é executado com pouco menos de 240 KB. Outro exemplo infeliz que o COM cria um inchaço desnecessário e me deixa desejando que houvesse uma API simples e leve para o recurso.
Para algo cross-platform, há zenity. É principalmente para Linux, mas também existem portas Mac e Windows. A porta do Windows do zenity tem mais de 1 MB de tamanho, porque, bem, o GTK está bastante inchado.