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

cagueca

[Resolvido] Problemas a utilizar o Registry

Recommended Posts

cagueca

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

Share this post


Link to post
Share on other sites
José Lopes

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


Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Share this post


Link to post
Share on other sites
cagueca

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

Share this post


Link to post
Share on other sites
José Lopes

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


Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Share this post


Link to post
Share on other sites
cagueca

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

Share this post


Link to post
Share on other sites
José Lopes

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


Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Share this post


Link to post
Share on other sites
José Lopes

 
        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


Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Share this post


Link to post
Share on other sites
José Lopes

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!


Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Share this post


Link to post
Share on other sites
cagueca

Impecavel.

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.