Sexta-feira, 08 de agosto de 2008 às 10h30

Environment: Capturando informações sobre o ambiente da aplicação usando o VB.Net

Faltam -1 dias! Inscreva-se agora! O maior encontro de profissionais web da américa latina.

Embora as aplicações .Net habitualmente estejam em uma máquina baseada no Windows, diversas características do sistema variarão. Por exemplo, pode ser necessário conhecer o nome da máquina, quais são as pastas locais, conhecer a versão do sistema operacional, o nome do usuário atual, e assim por diante. Muitas vezes é importante conhecer alguns detalhes do ambiente em que a aplicação está funcionando.

O .Net Framework fornece uma classe para atender a essa necessidade de maneira rápida e simples. Apresento-lhes a classe Environment no namespace System. Mostrarei aqui como obter essas informações utilizando a classe System.Environment.

Você pode acessar essas informações através de métodos e propriedades disponíveis na classe. Vamos conhecê-los antes de mergulharmos nos exemplo.

Métodos

Exit: encerra o processo atual e marca o exit code do processo para o valor especificado. O exit code deve ser passado para o método como um inteiro.

GetCommandLineArgs: retorna os argumentos especificados na linha de comando como um array de strings.

GetEnvironmentVariable: retorna o valor de uma variável de ambiente específica como um string - deve-se passar o nome da variável de ambiente para o método.

GetEnvironmentVariables: retorna todas as variáveis de ambiente e suas configurações atuais como um objeto IDictionary.

Propriedades

CommandLine: Propriedade "read-only" do tipo string, retorna os dados passado na linha de comando quando o processo atual foi inicilizado.

ExitCode: Propriedade "read/write" do tipo integer, fornece acesso para um código de saida ("exit code") do processo. O valor do System.Environment.ExitCode é retornado se um processo não retorna um valor quando é finalizado.

HasShutdownStarted: Propriedade "read-only" do tipo boolean, indica se uma aplicação já iniciou o processo de parada.

NewLine: Propriedade "read-only" do tipo string, retorna o caractere de nova linha para a plataforma atual.

TickCount: Propriedade "read-only" do tipo integer, retorna em milissegundos o tempo passado desde o inicio do sistema. (Não pode ser menor que 500).

Version: Propriedade "read-only" do tipo Version, retorna a versão atual do sistema. Ele é retornado como um objeto Version, junto com muitas outras propriedades.

Exemplos:

Crie um novo projeto do VB.Net; no exemplo utilizei o formulário criado automaticamente pelo VS. Abaixo temos o código completo do formulário:

Option Explicit On
Option Strict On
Option Compare Binary

Imports System.Environment

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim sDrivers As String = ""

        ´Mostra o usuário e a versão do sistema
        Teste_1()
        ´Argumentos de inicialização
        Teste_2()

        MessageBox.Show("Nome do sistema operacional: " & OSVersion.ToString)
        MessageBox.Show("Versão do sistema: " & Environment.Version.ToString)
        MessageBox.Show("Tempo desde o último boot: " & Mid(Convert.ToString((Environment.TickCount / 3600000)), 1, 5) & " :horas")
        MessageBox.Show("Diretório do sistema: " & Environment.SystemDirectory.ToString)
        MessageBox.Show("Nome do computador: " & Environment.MachineName.ToString)
        MessageBox.Show("Diretório corrente: " & Environment.CurrentDirectory.ToString)
        MessageBox.Show("User domain name: " & Environment.UserDomainName.ToString)
        MessageBox.Show("Working set: " & Environment.WorkingSet.ToString)
        MessageBox.Show("Pega a linha de comando para esse projeto: " & Environment.CommandLine.ToString)
        For i As Integer = 0 To Environment.GetLogicalDrives.Length - 1
            sDrivers = sDrivers & Environment.GetLogicalDrives(i) & ", "
        Next
        sDrivers = "Drivers do computador: " & sDrivers
        sDrivers = Microsoft.VisualBasic.Left(sDrivers, Len(sDrivers) - 2)
        MessageBox.Show(sDrivers)
        Me.Close()

    End Sub

    ´Nesta procedure, os valores retornados dependem do seu sistema.
    Public Sub Teste_1()
        Dim v As Version
        MessageBox.Show("Usuário atual: " & Environment.UserName)
        v = Environment.Version
        MessageBox.Show("Build: " & v.Build.ToString())
        MessageBox.Show("Master: " & v.Major.ToString())
        MessageBox.Show("Minor: " & v.Minor.ToString())
        MessageBox.Show("Revision: " & v.Revision.ToString())
    End Sub

    ´Aqui temos todos os argumentos passados quando o processo foi chamado    
    Public Sub Teste_2()
        Dim cr As String
        Dim teste() As String
        Dim x As Integer
        cr = Environment.NewLine
        teste = Environment.GetCommandLineArgs()
        For x = 0 To (teste.Length - 1)
            Console.Write(teste(x) + cr)
        Next x
    End Sub
End Class

Como disse anteriormente a classe Environment fornece um solução rápida e fácil para o desenvolvedor acessar as informações do ambiente onde o sistema está funcionando.

Nos três exemplos acima vimos como recuperar informações do ambiente da aplicação, isso inclui o seguinte:

  • Command-line arguments
  • Exit codes
  • Environment variable settings
  • Contents of the call stack
  • Time since last system boot
  • Version of the execution engine

Espero que este artigo tenha contribuido para seu crescimento, sinta-se a vontade para entrar em contato comigo para maiores esclarecimentos sobre o assunto do artigo ou qualquer outra dúvida, ajudarei da melhor forma possível.

Até o próxima artigo!!!

Links relacionados:

MSDN - Documentação oficial da Microsoft

http://msdn.microsoft.com/en-us/library/system.environment.aspx

Embora as aplicações .Net habitualmente estejam em uma máquina baseada no Windows, diversas características do sistema variarão. Por exemplo, pode ser necessário conhecer o nome da máquina, quais são as pastas locais, conhecer a versão do sistema operacional, o nome do usuário atual, e assim por diante. Muitas vezes é importante conhecer alguns detalhes do ambiente em que a aplicação está funcionando.

O .Net Framework fornece uma classe para atender a essa necessidade de maneira rápida e simples. Apresento-lhes a classe Environment no namespace System. Mostrarei aqui como obter essas informações utilizando a classe System.Environment.

Você pode acessar essas informações através de métodos e propriedades disponíveis na classe. Vamos conhecê-los antes de mergulharmos nos exemplo.

Métodos

Exit: encerra o processo atual e marca o exit code do processo para o valor especificado. O exit code deve ser passado para o método como um inteiro.

GetCommandLineArgs: retorna os argumentos especificados na linha de comando como um array de strings.

GetEnvironmentVariable: retorna o valor de uma variável de ambiente específica como um string - deve-se passar o nome da variável de ambiente para o método.

GetEnvironmentVariables: retorna todas as variáveis de ambiente e suas configurações atuais como um objeto IDictionary.

Propriedades

CommandLine: Propriedade "read-only" do tipo string, retorna os dados passado na linha de comando quando o processo atual foi inicilizado.

ExitCode: Propriedade "read/write" do tipo integer, fornece acesso para um código de saida ("exit code") do processo. O valor do System.Environment.ExitCode é retornado se um processo não retorna um valor quando é finalizado.

HasShutdownStarted: Propriedade "read-only" do tipo boolean, indica se uma aplicação já iniciou o processo de parada.

NewLine: Propriedade "read-only" do tipo string, retorna o caractere de nova linha para a plataforma atual.

TickCount: Propriedade "read-only" do tipo integer, retorna em milissegundos o tempo passado desde o inicio do sistema. (Não pode ser menor que 500).

Version: Propriedade "read-only" do tipo Version, retorna a versão atual do sistema. Ele é retornado como um objeto Version, junto com muitas outras propriedades.

Exemplos:

Crie um novo projeto do VB.Net; no exemplo utilizei o formulário criado automaticamente pelo VS. Abaixo temos o código completo do formulário:

Option Explicit On
Option Strict On
Option Compare Binary

Imports System.Environment

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim sDrivers As String = ""

        ´Mostra o usuário e a versão do sistema
        Teste_1()
        ´Argumentos de inicialização
        Teste_2()

        MessageBox.Show("Nome do sistema operacional: " & OSVersion.ToString)
        MessageBox.Show("Versão do sistema: " & Environment.Version.ToString)
        MessageBox.Show("Tempo desde o último boot: " & Mid(Convert.ToString((Environment.TickCount / 3600000)), 1, 5) & " :horas")
        MessageBox.Show("Diretório do sistema: " & Environment.SystemDirectory.ToString)
        MessageBox.Show("Nome do computador: " & Environment.MachineName.ToString)
        MessageBox.Show("Diretório corrente: " & Environment.CurrentDirectory.ToString)
        MessageBox.Show("User domain name: " & Environment.UserDomainName.ToString)
        MessageBox.Show("Working set: " & Environment.WorkingSet.ToString)
        MessageBox.Show("Pega a linha de comando para esse projeto: " & Environment.CommandLine.ToString)
        For i As Integer = 0 To Environment.GetLogicalDrives.Length - 1
            sDrivers = sDrivers & Environment.GetLogicalDrives(i) & ", "
        Next
        sDrivers = "Drivers do computador: " & sDrivers
        sDrivers = Microsoft.VisualBasic.Left(sDrivers, Len(sDrivers) - 2)
        MessageBox.Show(sDrivers)
        Me.Close()

    End Sub

    ´Nesta procedure, os valores retornados dependem do seu sistema.
    Public Sub Teste_1()
        Dim v As Version
        MessageBox.Show("Usuário atual: " & Environment.UserName)
        v = Environment.Version
        MessageBox.Show("Build: " & v.Build.ToString())
        MessageBox.Show("Master: " & v.Major.ToString())
        MessageBox.Show("Minor: " & v.Minor.ToString())
        MessageBox.Show("Revision: " & v.Revision.ToString())
    End Sub

    ´Aqui temos todos os argumentos passados quando o processo foi chamado    
    Public Sub Teste_2()
        Dim cr As String
        Dim teste() As String
        Dim x As Integer
        cr = Environment.NewLine
        teste = Environment.GetCommandLineArgs()
        For x = 0 To (teste.Length - 1)
            Console.Write(teste(x) + cr)
        Next x
    End Sub
End Class

Como disse anteriormente a classe Environment fornece um solução rápida e fácil para o desenvolvedor acessar as informações do ambiente onde o sistema está funcionando.

Nos três exemplos acima vimos como recuperar informações do ambiente da aplicação, isso inclui o seguinte:

  • Command-line arguments
  • Exit codes
  • Environment variable settings
  • Contents of the call stack
  • Time since last system boot
  • Version of the execution engine

Espero que este artigo tenha contribuido para seu crescimento, sinta-se a vontade para entrar em contato comigo para maiores esclarecimentos sobre o assunto do artigo ou qualquer outra dúvida, ajudarei da melhor forma possível.

Até o próxima artigo!!!

Links relacionados:

MSDN - Documentação oficial da Microsoft

http://msdn.microsoft.com/en-us/library/system.environment.aspx

Nenhum comentário até agora

Cancelar resposta

Qual a sua opinião?

Faça login abaixo ou cadastre-se rapidamente.


2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.