VB 2005 - Abrindo as caixas de diálogo do Painel de Controle


Você pode acionar facilmente qualquer uma das caixas de diálogo do Painel de controle:

Você já deve saber que uma das formas de efetuar chamadas a aplicações externas é invocar o método Start da classe Process do namespace: System.Diagnostics.

O namespace System.Diagnostic possui uma classe Process que pode iniciar programas externos. Você passa o nome do arquivo executável ou o nome do arquivo com uma extensão associada com uma aplicação executável:

Ex: System.Diagnostics.Process.Start("c:\Texto.txt")

O código a seguir retorna um objeto Process:

Dim processo As Process = System.Diagnostics.Process.Start("c:\Texto.txt")
MessageBox.Show(processo.ProcessName)

Então para executar qualquer uma das opções do Painel de controle basta identificar o arquivo associado e usar a classe Process.

A seguir temos um exemplo que executa algumas dos itens do painel de controle:

O código associado a cada imagem é o seguinte:

Private Sub BtnAcc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAcc.Click
  System.Diagnostics.Process.Start("access.cpl")
End Sub

Private Sub BtrnAddHW_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtrnAddHW.Click
   System.Diagnostics.Process.Start("hdwwiz.cpl")
End Sub

Private Sub BtnADDSW_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnADDSW.Click
  System.Diagnostics.Process.Start("appwiz.cpl")
End Sub

Private Sub BtnUpdates_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnUpdates.Click
   System.Diagnostics.Process.Start("appwiz.cpl")
End Sub

Se você precisar esperar até que o processo iniciado termine deve usar o método Process.WaitForExit. A sua aplicação vai parar de ser executada até que o processo iniciado termine. Abaixo temos um exemplo de sua utilização:

' INicia um novo processo (Bloco de Notas).
Dim Processo As Process = System.Diagnostics.Process.Start("Texto.txt")

' Espera até o processo encerrar
Processo.WaitForExit()

MessageBox.Show("Bloco de Notas encerrado : " & Processo.ExitTime & System.Environment.NewLine & "Exit Code: " & Processo.ExitCode)

' Fecha o processo e liberar recursos.
Processo.Close()

No exemplo acima estamos abrindo apenas algumas das janelas associadas as opções do painel de controle. A seguir temos uma relação com o nome dos arquivo que deve ser chamado e sua descrição.

Nome do arquivo a ser chamado  usando a classe Process   Descrição
 timedate.cpl  Propriedades de data e hora
 inetcpl.cpl  Propriedades da Internet
 main.cpl  Propriedades do mouse
 password.cpl  Propriedades de password
 powercfg.cpl  Gerenciamento de Energia
 intl.cpl  Configurações Regionais
 sticpl.cpl  Câmeras e Scanners
 mmsys.cpl  Propriedades de sons e dispositivos de áudios
 sysdm.cpl  Propriedades do Sistema
 musrmgr.cpl  Configurações do Usuário
 joy.cpl  Propriedades de JoyStick

Para mais detalhes sobre o namespace System.Diagnostic.Process consulte o artigo:  VB.NET - Usando a classe System.Diagnostic.Process 

Até o próximo artigo .NET.


José Carlos Macoratti