[VB.NET] Inlezen van register waarden

Pagina: 1
Acties:

  • Arethusa
  • Registratie: December 2003
  • Laatst online: 20-02 14:52

Arethusa

Niet die server

Topicstarter
Allereerst zeg ik er alvast bij dat ik een beginneling ben op Visual Basic.NET gebied maar erg leergierig. Ik ben vandaag begonnen met het maken van een applicatie die registerwaarden uitleest. Die registerwaarden zijn specifiek de waarden die gebruikt worden als de pc opstart (zelfde idee als msconfig's opstarten gedeelte).

Wat ik wil uitlezen is de Name en Data gedeelte van de Run key welke zich hier SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN bevindt. Dat gedeelte kan ik in mijn programma bereiken. Alleen leest mijn huidige programma alleen de laatste waarde in. Debuggen Step-into heeft me geleerd dat ik alle waarden inlees maar alleen de laatste waarde afbeeld.
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim pRegKey As RegistryKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\MICROSOFT\\WINDOWS\\CURRENTVERSION\\RUN\\")

        ' Print out the keys.
        PrintKeys(pRegKey)
    End Sub

    Sub PrintKeys(ByVal pRegKey As RegistryKey)
        ' Retrieve all the subkeys for the specified key.
        Dim names As String() = pRegKey.GetValueNames()
        Dim s As String
        Dim icount As Integer = 0

        rtxtResult.Text = (s)

        ' Print the contents of the array 
        For Each s In names
            rtxtResult.Text = (s)

            ' The following code puts a limit on the number of keys displayed.  
            icount += 1
            If icount >= 10 Then
                Exit For
            End If
        Next s


Zoals je ziet lees ik het register in in een richtextbox genaamd rtxtResult. Dit lijkt me niet de juiste oplossing aangezien ik twee kollomen (Name en Data) uit het register wil uitlezen. Ik gebruik ook een aparte sub genaamd PrintKeys welke ik aanroep in de load van het programma. Maar toch werkt het niet zoal ik graag zou willen. Na een dag progarmmeren en diverse tutorials en codes geprobeerd te hebben via google en GOT ben ik de draad helemaal kwijt. Kan iemand me een zetje in de goede richting geven? Moet ik gebruik maken van een andere control? Waar zit mijn denkfout?

I've been mad for fucking years, absolutely years, been over the edge for yonks.
Vinyl: Discogs


  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

Ik kan je code hier niet draaien en hoop dat ik je probleem goed begrijp:

Op regel 18 wijs je de inhoud van s toe aan de text van een textbox. De tekst die er dus al in staat wordt vervangen, terwijl je waarschijnlijk alleen iets toe wilt voegen.

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


  • Kayshin
  • Registratie: Juni 2004
  • Laatst online: 09-03-2018

Kayshin

Bl@@T @@P!!!

rtxtResult.Text = (s)
wordt
rtxtResult.Text = rtxtResult.Text + (s) (of hoe je strings ook combined in VB)

My personal videoteek: -Clique-; -NMe- is een snol!


  • Arethusa
  • Registratie: December 2003
  • Laatst online: 20-02 14:52

Arethusa

Niet die server

Topicstarter
Bedankt voor jullie tips. Ik heb het programma aangepast en alle start up items met de Name worden uit het register geladen (zij het achter elkaar maar dat los ik wel op).

Echter nu zit ik nog met de Data item uit het register. Wat ik feitelijk wil het afbeelen van Name en Data netjes in een soort van tabelvorm. Links Name en rechts de bijbehorende data. Is er iemand die een idee heeft hoe ik dat kan realiseren? Ik neem aan dat naast Name ook Data te benaderen is via vb.net maar ik heb geen idee welk item ik uit de Registry class gebruiken moet. :'(

I've been mad for fucking years, absolutely years, been over the edge for yonks.
Vinyl: Discogs


  • Arethusa
  • Registratie: December 2003
  • Laatst online: 20-02 14:52

Arethusa

Niet die server

Topicstarter
Na een tijdje prutsen besloot ik om af te stappen van mijn idee om Name (of Naam) en Data (of gegevens) te laden in een enkele controle.

Ik wil voor het gemaak Data (of gegevens) laden in een andere richtextbox (of een betere controle) en deze door een for each loopje te vullen met data uit het register.

Het naam gedeelte kan ik al inlezen zoals in mijn TS staat. Heeft iemand een idee welke functie ik gebruiken moet? Ik zelf dacht aan GetValueKind
Public Function GetValueKind(ByVal name As String) As Microsoft.Win32.RegistryValueKind
Member of: Microsoft.Win32.RegistryKey
Summary:
Retrieves the registry data type of the value associated with the specified name.
Maar zoals ik het lees moet je een naam opgeven en kun je niet alles opvragen (correct me if i'm wrong).

Wie geeft mij het verlossende antwoord? _/-\o_


EDIT: Heb het programma inmiddels werkend. Bedankt voor jullie hulp _/-\o_

[ Voor 14% gewijzigd door Arethusa op 18-07-2006 16:11 . Reden: Dooie link verwijderd ]

I've been mad for fucking years, absolutely years, been over the edge for yonks.
Vinyl: Discogs