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