Mostrando postagens com marcador Windows. Mostrar todas as postagens
Mostrando postagens com marcador Windows. Mostrar todas as postagens

segunda-feira, 12 de setembro de 2011

Salvando informações no registro

Para salvar informações no registro do Windows existem dois métodos, um mais fácil e outro menos fácil.

1 - Mais fácil

Os comandos a baixos alteram as informações em uma seção padrão do registro para aplicativos VB: HKEY_CURRENT_USER\Software\VB and VBA Program Settings. Os comandos são simples e rápidos.


1.1 - Salvar informações

SaveSetting(
"Nome do Aplicativo", "Seção", "Chave", "Valor"), onde Nome do Aplicativo, Seção, Chave e Valor são Strings.

1.2 - Obter informações

GetSetting(
"Nome do Aplicativo", "Seção", "Chave", "Valor Padrão"), onde Valor Padrão é o valor que retornará caso o registro não exista.

1.3 - Apagar informações

DeleteSetting(
"Nome do Aplicativo", "Seção", "Chave"), onde Seção e Chave são opcionais.

2 - Menos fácil

Este método você pode salvar informações em qualquer parte do registro. Para efeito de organização do registro você deve salvar as informações na seção Software em CurrentUser, o que torna o aplicativo mais profissional.
Você dece colocar antes do
Public Class Form:

Imports Microsoft.Win32

Para tal, o VB possui os seguintes comandos:

2.1 - Criar Pastas

Você pode criar novas seções sem criar novas chaves, basta utilizar os seguintes comandos:

Dim NovaChave As RegistryKey
NovaChave =
My.Computer.Registry.CurrentUser.CreateSubKey("Software\Nome da Empresa\Nome do Aplicativo\Seção")

2.2 - Salvar informações

My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\Nome da Empresa\Nome do Aplicativo\Seção", "Chave", "Valor"

Se a seção não existir, ela será criada.

2.3 - Obter informações

Dim ValordaChave As Object
ValordaChave =
My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\Nome da Empresa\Nome do Aplicativo\Seção", "Chave", "Valor Padrão"), onde Valor Padrão é o valor que irá retornar caso a chave não exista.

2.4 - Deletar informações

Existem três métodos:

2.4.1 - Apagar uma Chave

Using Chave As RegistryKey = My.Computer.Registry.CurrentUser.OpenSubKey("Software\Nome da Empresa\Nome do Aplicativo\Seção", True)
      Chave.DeleteValue(
"Chave")
End Using

2.4.2 - Apagar uma Seção

Using Secao As RegistryKey = My.Computer.Registry.CurrentUser.OpenSubKey("Software\Nome da Empresa\Nome do Aplicativo", True)
      Secao.DeleteSubKey(
"Seção")
End Using

2.4.3 - Apagar uma árvore de seções

Using Secao As RegistryKey = My.Computer.Registry.CurrentUser.OpenSubKey("Software", True)
      Secao.DeleteSubKeyTree(
"Nome da Empresa")
End Using

Utilize com atenção estes comandos, pois você pode danificar a execução de programas e até do Windows.

Lembrete: você pode acessar o registro e fazer alterações manualmente nele colando REGEDIT em Executar (atalho do teclado: Ctrl+R).

Este é um pouco menos simples, não?

sábado, 3 de setembro de 2011

Iniciar aplicação com o Windows

Para iniciar a aplicação com o Windows e colocar opção para o usuário marcar em uma checkbox, insira os códigos abaixo:

Antes da declaração da classe, coloque:

Imports Microsoft.Win32

Em form_Load, onde o há o checkbox, coloque:

Try
      Using
key As RegistryKey = My.Computer.Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", True)
            If key.GetValue(My.Application.Info.Title) Is My.Application.Info.DirectoryPath & "\" & My.Application.Info.Title & ".exe" Then
                 
CheckBox1.CheckState = CheckState.Checked
            Else
                 
CheckBox1.CheckState = CheckState.Unchecked
            End If
      End Using
Catch
ex As Exception
      CheckBox1.CheckState = CheckState.Unchecked
Finally
      My
.Computer.Registry.CurrentUser.Close()
End Try

Este código irá verificar se já existe a chave no registro para sua aplicação iniciar com o windows, se sim irá marcar o CheckBox1, se não deixará desmarcado.

Coloque o código a seguir no procedimento que salva as configurações de sua aplicação:

Try
      If
CheckBox1.CheckState = CheckState.Checked Then
            My
.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", My.Application.Info.Title, My.Application.Info.DirectoryPath & "\" & My.Application.Info.Title & ".exe")
      Else
            Using
key As RegistryKey = My.Computer.Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", True)
                  key.DeleteValue(My.Application.Info.Title)
            End Using
      End If
Catch
End Try

Este código salvará no registro a informação para sua aplicação se o CheckBox1 estiver marcado ou deletará se não.

Simples, não?