DEV Community

Interface gráfica com Powershell

Já criamos scripts de backup simples, com funções, com uma forma de acessibilidade, mas será que conseguimos também sair do terminal e deixar ele com uma cara mais de "programa"?

Com o Powershell podemos criar uma interface gráfica simples, e inegavelmente com uma cara antiga, para os scripts.
É um processo bem trabalhoso mas pode ser útil, então vale a pena compartilhar.

Vou tentar pelo texto explicar um pouco da ideia geral do que vamos fazer e compartilhar um script super comentado para exemplificar.

Precisamos ter algumas noção para criar essa interface, a primeira delas é que criaremos um formulário, então vamos pensar que temos uma folha em branco onde precisamos desenhar o que queremos mostrar.

Para esse exemplo, precisamos desenhar:

  1. Campos de texto não interativos
  2. Botões que estão sempre visíveis
  3. Um botão que só vai aparecer quando uma condição for cumprida

Para localizar as pastas, vamos escrever uma função para exibir para o usuário o Windows Explorer e permitir que ele visualmente selecione a pasta que quer salvar e onde quer salvar.

Para fazer a magica acontecer, vamos interagir com um evento do botão, nesse caso o momento em que o usuário clica nele. Trabalhando com esse evento, deixamos de gatilho para que o trecho do código seja executado somente quando o usuário utilizar.

Esse script é realmente mais complicado de explicar, mas com o exemplo, acredito que consiga replicar e modificar.

Precisamos apontar exatamente a posição do que queremos desenhar, o que pode dificultar um pouco o processo de deixar a interface bonita e com uma boa usabilidade.
Um outro ponto de atenção importante, se encerrar o terminal a interface também é fechada.

Concluindo, acho valido comentar que não é só porque conseguimos fazer, que devemos fazer. Powershell é uma linguagem muito útil para automatizar sistemas, mas nem por isso precisamos fazer tudo com ela.
Uma interface gráfica feita por uma linguagem de programação mais "convencional", provavelmente terá um desempenho, usabilidade e aparência melhores do que vamos conseguir nesse script.
E claro, podemos manter nossa logia de manipulação de sistema feita por scripts e aciona-los nessa interface.

Top comments (0)