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

cagueca

[Resolvido] Problemas a utilizar o Registry

10 mensagens neste tópico

Boas :

Agora tenho o seguinte codigo :

 
'Info do processador 
        Dim pRegKey As RegistryKey = Registry.LocalMachine
        pRegKey = pRegKey.OpenSubKey("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0")
        Dim val As Object = pRegKey.GetValue("ProcessorNameString")
        Label18.Text = ("" + val)

'Info do mesmo mas outra coisa
        Dim pRegKey As RegistryKey = Registry.LocalMachine
        pRegKey = pRegKey.OpenSubKey("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0")
        Dim val As Object = pRegKey.GetValue("VendorIdentifier")
        Label19.Text = ("" + val)

Agora e assim eu sei que estou a declarar o pregkey e o val duas vezes no mesmo modulo... mas como posso fazer isto de maneira a nao ter que declarar duas vezes ou separar para nao dar erro ???

Tou um cado confuso nisso.. tipo podia ir buscar as duas ou tres ou mais se quiser de uma vez so certo ?

Agradeco ajuda  obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Declaras uma vez a variável e reutiliza-as...ou seja setas um novo valor...

Não sei se era isto que querias.... mas assim..vai dar mesmo um erro....

outra alternativa é tu saberes quantas chaves queres ir buscar... criar um ciclo e declarar as variáveis lá dentro....

enfim.... podes fazer de 1001 maneiras

Quanto ao facto de ires buscar tudo de uma vez nao me parece...

Tu podes sim, atribuir os resultados sempre à mesma variável, mas tens que definir o que queres ir buscar de cada vez

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas :

Ok posso fazer isso de 1001 maneiras mas para quem comecou a um mes nao e assim muito facil .. :-[

Tipo podes dar um exemplo com o meu codigo para ir buscar "ProcessorNameString" e o "vendoridentifier" para a label 18 e 19 so para eu ir comecando a compreender um cado mais .. Nao quero que me facas o programa , mas queria compreender isso...

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o que queres depois fazer com  esses dados?

é que utilizando apenas  1 bloco de código, e se quiseres retornar os valores todos, vais ter sempre utilizar variaveis diferentes... nao poderás usar a mesma

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nada de especial .. se quiseres mostro te o que ja tenho feito mas nao e nada de hacking ou qqr coisa desse genero .. tou a fazer um programa tipo cpuz .. foi uma ideia que tive para fazer o meu primeiro programa ...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nao era essa a questão, se calhar fui pouco explítico...

A questão é.... se tu queres apanhar várias chaves dentro do mesmo bloco de código, vais ter que definir variáveis diferentes, não podes pensar em reutilizá-las.

Podes em alternativa criar uma função em que lhe passas a variável de registo que estás à procura e ele devolve-te o valor... não sei se fui muito claro... mas no fundo é reutilização de código...

Dizem os entendidos, que as melhores metodologias de programação, passam por aí.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim quero apanhar varias cahves ... agora como nao sei  :-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

 
        Dim pRegKey As RegistryKey = Registry.LocalMachine
        pRegKey = pRegKey.OpenSubKey("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0")
        Dim val As Object = pRegKey.GetValue("ProcessorNameString")
        Label18.Text = ("" + val)

        'Info do mesmo mas outra coisa
        Dim pRegKey1 As RegistryKey = Registry.LocalMachine
        pRegKey1 = pRegKey1.OpenSubKey("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0")
        Dim val1 As Object = pRegKey1.GetValue("VendorIdentifier")
        Label19.Text = ("" + val1)

não mexendo muito ficaria tipo isto...criei mais duas novas variáveis

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mais elaborado... crias uma função onde passa a SubKey que queres abrir, e a chafe que queres ler


Public Function GetRegKey(ByVal strSubKey As String, ByVal strValue As String) As String
        Dim pRegKey As RegistryKey = Registry.LocalMachine
        pRegKey = pRegKey.OpenSubKey(strSubKey)
        Try
            Return pRegKey.GetValue(strValue)
        Catch ex As Exception
            Return ""
        End Try
    End Function

Depois para apanhers isto é so escreveres, as vezes que precisares para os resultados que precisares, com os diferentes parâmetros:

Label18.Text = GetRegKey("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0","ProcessorNameString")

Bom trabalho!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Impecavel.

Muito agradecido vou experimentar as duas so para ver como funcionam .

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