Como ler parâmetros enviados da linha de comando no VB .NET

Uma coisa muito interessante que uma aplicação pode fazer, é mudar o seu comportamento de acordo com os parâmetro passados a ela, quando executada. E é exatamente isso que veremos nesse post, como ler os parâmetros passados para aplicação da linha de comando.

Os parâmetros

Antes de vermos como se faz, vamos dar uma olhada no que são os parâmetros.

Quando você executa o comando shutdown (para desligar o computador) no prompt de comando, é necessário informar que tipo de comportamento ele deve ter, por exemplo, passando o parâmetro “-r” você indica que o computador deve ser reiniciado. O mesmo pode ser feito com uma aplicação desenvolvida por você

Chamando parâmetro no Prompt de comando

Chamando parâmetro no Prompt de comando

Como ler parâmetros enviados da linha de comando

O código para ler parâmetros enviados da linha de comando no Visual Basic .NET é o seguinte:

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim parametros() As String
        parametros = Environment.GetCommandLineArgs
        If parametros.Length > 1 Then
            For Each par In parametros
                If par = "XXX" Then
                    ' Executa alguma ação
                End If
            Next
        Else
            'Não foi passado parâmetro para a aplicação.
        End If
    End Sub

Perceba que coloquei o código dentro do procedimento de inicialização do primeiro formulário da aplicação.

Vamos linha a linha entender o que será executado.

Linha 2: declaro a variável que receberá os parâmetros;

Linha 3: executo a função GetCommandLineArgs que está dentro da classe Environment, para passar à variável parametros, o que foi passado para a aplicação;

Linha 4: verifico se a variável parametros recebeu mais de um parâmetro. Isso porque, quando a aplicação é executada, como primeiro parâmetro, é passado o próprio caminho do executável.

Linha 5: tendo a aplicação recebido mais de um parâmetro, um for each é criado para passar por todos os itens da variável parametros.

Linha 6: verifico se um parâmetro chamado “XX” foi passado. Nesse ponto, dentro do for each, você deve fazer as verificações para o que sua aplicação está preparada para tratar.

Uma coisa importante que quero ressaltar, é que o que você verificará no IF, deve ser exatamente o que for passado para a aplicação, por exemplo, no caso do shutdown, deve ser verifica se a aplicação recebeu o parâmetro “-r” e não somente “r”.

Galera, por hoje é só. Até a  próxima! 

Vídeo

Utilizando a Classe Genérica Dictionary

Nessa vídeo aula[bb]veremos como funciona a classe Dictionary.
Com ela podemos mapear conjuntos de chaves, referenciando a essas chaves[bb]valores.
De uma forma mais intuitiva, podemos criar listas semelhantes a vetores, onde os indices são por exemplo nomes de pessoas, ou lugares, ao invés dos tradicionais número inteiro.

Como criar um formulário com cantos arredondados VB .NET

Olá galera, nesse post mostrarei a vocês como deixar um formulário com os cantos arredondados, no VB .NET[bb].
Declara a função  CreateRoundRectRgn que já vem o o Windows.

Private Declare Function CreateRoundRectRgn Lib "Gdi32" (ByVal X1 As Integer, ByVal Y1 As Integer, ByVal X2 As Integer, ByVal Y2 As Integer, ByVal X3 As Integer, ByVal Y3 As Integer) As Integer

No Evento Load do formulário:

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim regionHandle As IntPtr = New IntPtr(CreateRoundRectRgn(0, 0, Me.Width, Me.Height, 20, 20))

        Me.Region = Region.FromHrgn(regionHandle)
        Region.ReleaseHrgn(regionHandle)
        Me.FormBorderStyle = FormBorderStyle.None
    End Sub

Na declaração da variável regionHandle são passados 6 parâmetros ao criar a estrutura IntPtr. Explicarei o que são esses parâmetros:

  1. A coordenada[bb]X do canto superior esquerdo. Aconselho deixar em zero, maior que isso ele vai cortar um parte do formulário.
  2. A coordenada Y do canto superior esquerdo. Aconselho deixar em zero, maior que isso ele vai cortar um parte do formulário.
  3. A coordenada X do canto inferior direito. Aconselho deixar do tamanho da largura do formulário, diferente disso ele vai cortar um parte do formulário.
  4. A coordenada Y do canto inferior direito. Aconselho deixar do tamanho da largura do formulário, diferente disso ele vai cortar um parte do formulário.

É isso ai, mais um post com o intuito de mostrar as formas de estilizar um formulário no VB .NET para deixar a sua aplicação com a cara que você quiser.
Até a próxima!

Movendo um Formulário sem Borda VB .NET

Olá galera, nesse post mostrarei para vocês os passos para permitir que você mova um formulário com a propriedade FormBorderStyle = FormBorderStyle.None.

Algumas vezes desenvolvendo uma aplicação você deseja criar um tela personalizada, certo? Então você esbarra em uma questão. Mas se eu tirar a barra de titulo como que o usuário irá movimentar a tela?

Digo-lhes agora[bb].A primeira coisa a fazer: definir como será a parte superior da sua tela. Eu decidi a minha como vocês podem ver abaixo.

A minha barra de título está bem simples, só tem o botão fechar.

Para fazê-la eu utilizei o objeto Panel e alterei a propriedade Dock para Top dessa forma ela ficará fixa na parte superior da tela.

É no Panel que trabalharemos para que o formulário seja movimentado pelo usuário, da mesma forma que ele faria com a barra de título[bb]normal.

Então vamos à programação.

A primeira coisa a fazer é criar uma Structure que nos auxiliará nas próxima etapas.

    Public Structure MoveForm
        Dim X As Integer
        Dim y As Integer
    End Structure

Onde x e y serão as coordenadas na tela.

Em seguida crie um variável que será do tipo da estrutura criada acima.

Dim move As MoveForm

Agora iremos trabralhar dois eventos do nosso Panel.

O Primeiro é o MouseDown.

    Private Sub Panel1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseDown
        If e.Button <> Windows.Forms.MouseButtons.Left Then Exit Sub
        move.X = Me.Left - MousePosition.X
        move.y = Me.Top - MousePosition.Y
    End Sub

Com isso quando clicarmos e segurarmos sobre o Panel ele guardará as coordenadas do cursor. Caso não coloque esse código o cursor do mouse ficará no canto superior esquerdo do formulário.
O próximo evento é o MouseMove.

Private Sub Panel1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseMove
        If e.Button <> Windows.Forms.MouseButtons.Left Then Exit Sub
        Me.Left = move.X + MousePosition.X
        Me.Top = move.y + MousePosition.Y
    End Sub

Como o próprio nome do evento indica ele executará as ações quando o mouse for movimentado.

Com isso já é possível movimentar o formulário. Você consegue colocar esse código em praticamente qualquer objeto (não testei em todos rs).

OBS: Se em algum momento nas caixas de código aparecer “&lt;&gt;” é o sinal de <>.

É isso ai nos vemos numa próxima!

Trabalhando com Classes VB .NET

.netNessa video aula veremos como trabalhar com classes no Visual Basic .NET utilizando o padrão MVC[bb], importante quando se utiliza a programação orientada a objetos[bb]. Com isso é possível reutilizar o código com o mínimo de alterações possível.

Melhor Visualização em Tela Cheia. (Disponível em HD)