• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

blackice856

[Resolvido] Adicionar chaves ao registry

14 mensagens neste tópico

Isto está bem?

Dim x As Microsoft.Win32.RegistryKey
        x.CreateSubKey("HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Run\testecomforms.exe")

De vez em quando gosto de explorar aqui o visual studio, e não sei como fez-se luz na minha cabeça e deu nisto. O que eu quero e que o programa arranque com o windows. Irá isto funcionar? Não quero arriscar brincadeiras no registry senão ainda vai tudo cos porcos.

Os únicos exemplos que encontrei aqui no forum estavam optimizados para VB.NET 2005 e 2008 penso eu.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Os únicos exemplos que encontrei aqui no forum estavam optimizados para VB.NET 2005 e 2008 penso eu.

Não testei mas se o IDE não dá erro é porque funciona também no VS2003. Podes e deves fazer sempre um backup do registry antes de "brincar" com ele, mas o mair problema é quando se fazem editores de registry, ciclos, etc, não apenas adicionar uma chave.

E porque não fazer o update e começar a usar o VS 2008 ?

Isso não é tão simples assim. :(

Quando se tem um versão completa e legal é preferivel trabalhar com ela. As versões express são muito boas para se iniciar, mas têm algumas limitações que impedem um desenvolvimento profissional (como é o caso dos reports.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Outro pormenor no que toca a "mexer" na registry, eu por exemplo em todos os computadores que tenho, tenho o SpyBot Search and Destroy instalado, que bloqueia, todas as tentativas de alterações no registry.

Porque não crias simplesmente um link na pasta "Arranque" ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso já eu fiz..., mas é muito fácil de tirar, basta entrar em modo de segurança e apagar o ficheiro.

Se eu adicionar ao registry já é outra conversa.

Eu também pensei nisso dos anti-spyware catarem alterações ao registry mas queria verificar primeiro. E a maior parte do pessoal tem só antívirus (tipo AVG) não têm uma suite completa e os antívirus não bloqueiam alterações ao registrr acho eu.

EDIT - Dá-me isto:  "Object reference not set to an instance of an object".

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois...

Mas o que eu queria era que me dissesem porque é que o código não funciona, e ainda ninguém me disse...

Bem já tenho isto:

Dim test As RegistryKey = Registry.CurrentUser.OpenSubKey("\HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Run \")

        ' Create data for the TestSettings subkey.
        test.SetValue("Language", "French")
        test.Close()

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas o que eu queria era que me dissesem porque é que o código não funciona, e ainda ninguém me disse...

Opps ... esta passou-me.

Experimenta assim:

        Dim key As String = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\"
        Dim valueName As String = "Language"
        Dim value As String = "French"

        My.Computer.Registry.SetValue(key, valueName, value)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É pash, desculpem lá o trabalho, mas tou em VB.NET 2003. Não sabem por acaso como fica?

 Dim key As String = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\"
        Dim valueName As String = "Language"
        Dim value As String = "French"

        Microsoft.Win32.Registry.CurrentUser.SetValue(valueName, value)

É que isto não faz sentido, porque não tem um campo para a localização da chave.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não estou a entender !!!

Mas esse código também funciona, qual é o problema ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

jpaulino, concordo com o blackice, deve ter escapado alguma coisa

Dim key As String = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\"
        Dim valueName As String = "Language"
        Dim value As String = "French"

        Microsoft.Win32.Registry.CurrentUser.SetValue(valueName, value)

Tu declaras a variável key com a localização onde vais criar a chave no registo

Mas quando executas o comando Microsoft.Win32.Registry.CurrentUser.SetValue não usas a key

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isto está bem?

Dim x As Microsoft.Win32.RegistryKey
        x.CreateSubKey("HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Run\testecomforms.exe")

De vez em quando gosto de explorar aqui o visual studio, e não sei como fez-se luz na minha cabeça e deu nisto. O que eu quero e que o programa arranque com o windows. Irá isto funcionar? Não quero arriscar brincadeiras no registry senão ainda vai tudo cos porcos.

Os únicos exemplos que encontrei aqui no forum estavam optimizados para VB.NET 2005 e 2008 penso eu.

Já existe aqui um possível link que explica isso. Porque é que este não resulta?

http://www.portugal-a-programar.pt/forums/topic/0-find-topic/?do=findComment&comment=140040

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E, não te esqueças de fazer PRIMEIRO que tudo, o backup do registry!....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vocês são os maiores... xD

Isto assim chega:

Dim regkey As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine
        Dim myKey As Microsoft.Win32.RegistryKey
        myKey = regkey.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", True)
                myKey.SetValue("NOME DO PROGRAMA", Application.ExecutablePath)

Tava um bocado longe.

Obrigada a toda a gente que contríbuiu. :thumbsup: :notworthy:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

jpaulino, concordo com o blackice, deve ter escapado alguma coisa

Tu declaras a variável key com a localização onde vais criar a chave no registo

Mas quando executas o comando Microsoft.Win32.Registry.CurrentUser.SetValue não usas a key

Sorry ... tens razão :thumbsup: (é o que faz dormir pouco)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora