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?
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
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?
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?
Assinar:
Postagens (Atom)
