Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

blackice856

[Resolvido] Adicionar chaves ao registry

Mensagens Recomendadas

blackice856    0
blackice856

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jpaulino    106
jpaulino

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Weasel    3
Weasel

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" ?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
blackice856    0
blackice856

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".

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
blackice856    0
blackice856

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()

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jpaulino    106
jpaulino

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)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
blackice856    0
blackice856

É 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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Weasel    3
Weasel

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Joca    0
Joca

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
blackice856    0
blackice856

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:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jpaulino    106
jpaulino

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)

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


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade