Avatar billede dranzer Nybegynder
05. maj 2006 - 22:23 Der er 23 kommentarer og
1 løsning

Eksporter fra Registreringseditor

Hej. Jeg vil gerne lave sådan et program så når man trykker på en knap så skal den gå ind og eksporter noget ud fra Registreringseditoren... Så jeg ville lige sprøg om der var nogen her inde der kunne hjælp med det?


Jeg vil gerne have eksporter:

HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla

Er der nogen der kan hjælp med det?
Avatar billede arne_v Ekspert
07. maj 2006 - 03:08 #1
vil du bare have alle keys eller skal du have en reg fil som kan importeres et
andet sted ?
Avatar billede dranzer Nybegynder
07. maj 2006 - 14:21 #2
Jeg har ikke noget i mod at den eksporter alle keys det må den gerne .. Så kan de blive eksporter i en reg fik et eller andet sted i computeren. ;O)  Kan du hjælp med det???
Avatar billede dranzer Nybegynder
07. maj 2006 - 14:27 #3
Men det jeg helst ville var hvis den kunne eksporter det her ud i en reg fil

HKEY_LOCAL_MACHINE\SOFTWARE

KAn du du hjælp med det? Så glem bare det jeg skrev oven over...
Avatar billede arne_v Ekspert
08. maj 2006 - 04:45 #4
den her bør kunne få dig startet:

Imports System

Imports Microsoft.Win32

Namespace E
    Class MainClass
        Public Shared Sub Lookup(ByVal key As RegistryKey)
            Dim subkeys As String() = key.GetSubKeyNames
            For Each sk As String In subkeys
                Lookup(key.OpenSubKey(sk))
            Next
            Dim vals As String() = key.GetValueNames
            For Each v As String In vals
                Dim data As String = key.GetValue(v).ToString
                Console.WriteLine(key.Name & "\" & v & "=" & data)
            Next
        End Sub

        Public Shared Sub Main(ByVal args As String())
            Lookup(Registry.LocalMachine.OpenSubKey("SOFTWARE").OpenSubKey("Mozilla"))
        End Sub
    End Class
End Namespace
Avatar billede arne_v Ekspert
08. maj 2006 - 04:46 #5
hele Software kører for evigt

(og jeg får også nogle fejl som jeg ikke helt ved hvordan det er optimalt
at håndtere)
Avatar billede dranzer Nybegynder
08. maj 2006 - 08:35 #6
Hej igen. Ved mig køre det fint. :O) Jeg får ikke nogen fejl... Jeg bruger Visual Studio 2005.. Det virker som om du ikke bruger Visual Studio 2005, men ved selvfødig ikke :O)..... Hvor bliver det eksporter henne??? Hvad mener du med "hele Software kører for evigt"? ;O)
Avatar billede arne_v Ekspert
08. maj 2006 - 13:03 #7
mit program skriver kun til skærmen (console app) med:

Console.WriteLine(key.Name & "\" & v & "=" & data)

du kan rette det til at skrive til fil i det format du vil have.

Jeg tror jeg har en 50000 keys eller sådan under software - det tager lang tid
at vise.

Og så fik jeg som sagt et problem (med hele software ikke med mozilla), hvor den
påstod at jeg ikke havde adgang til registry key.

Du skal nok have rettet programmet lidt til, men du skulle have lidt at arbejde med.
Avatar billede dranzer Nybegynder
08. maj 2006 - 21:38 #8
OK vil lige kikke på det. :o)
Avatar billede dranzer Nybegynder
10. maj 2006 - 17:15 #9
Hej nu har jeg lavet lidt om på det ellers ville Visual Studio 2005 ikke accepter det.


Imports System
Imports Microsoft.Win32
Class Form1

    Public Shared Sub Lookup(ByVal key As RegistryKey)
        Dim subkeys As String() = key.GetSubKeyNames
        For Each sk As String In subkeys
            Lookup(key.OpenSubKey(sk))
        Next
        Dim vals As String() = key.GetValueNames
        For Each v As String In vals
            Dim data As String = key.GetValue(v).ToString
            Console.WriteLine(key.Name & "\" & v & "=" & data)
        Next
    End Sub

    Public Shared Sub Main(ByVal args As String())
        Lookup(Registry.LocalMachine.OpenSubKey("SOFTWARE").OpenSubKey("Mozilla"))
    End Sub
End Class

Men jeg fatter stadig ikke hvordan jeg laver sådan at den eksporter den Mozilla skal jeg ikke skrive en adresse i computer hvor den skal gemme den????

Jeg Ville jo gerne havde at det var sådan at det skete når man trykke på en knap
Avatar billede dranzer Nybegynder
10. maj 2006 - 17:17 #10
:o) Det var den "Namespace" den ikke ville og jeg skulle lave "Class MainClass"  om til "Class Form1" ;o)
Avatar billede arne_v Ekspert
10. maj 2006 - 17:31 #11
Console.WriteLine skriver til console

hvis du laver

Dim sw As StreamWriter = New StreamWriter(filename)
sw.WriteLine(...)
sw.Close

saa skriver du til en fil

og for at goere det ved klik paa en knap skal du kalde kode ikke fra Main men
fra en clieck event metode
Avatar billede dranzer Nybegynder
10. maj 2006 - 20:33 #12
Hej igen. Nu har jeg lave det sådan her :o)

Imports System
Imports Microsoft.Win32
Class Form1

    Public Shared Sub Lookup(ByVal key As RegistryKey)
        Dim subkeys As String() = key.GetSubKeyNames
        For Each sk As String In subkeys
            Lookup(key.OpenSubKey(sk))
        Next
        Dim vals As String() = key.GetValueNames
        For Each v As String In vals
            Dim data As String = key.GetValue(v).ToString
            Console.WriteLine(key.Name & "hej.reg" & v & "C:\Documents and Settings\All Users\Dokumenter\hej.reg" & data)
        Next
    End Sub

    Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Lookup(Registry.LocalMachine.OpenSubKey("SOFTWARE").OpenSubKey("Mozilla"))
    End Sub
End Class


er det rigtig???

Kan du ikke lige sætte tingen sammen for mig i koden så er du sød, fordi jeg tror det går hurtiger så. :o)

Jeg ved heller ikke helt hvad jeg skal med det her:¨

Dim sw As StreamWriter = New StreamWriter(filename)
sw.WriteLine(...)
sw.Close

:o)
Avatar billede arne_v Ekspert
10. maj 2006 - 20:37 #13
Jeg kan proeve at lave et eksempel med GUI og fil.

Men det bliver foerst om en 4-5 timer.
Avatar billede dranzer Nybegynder
10. maj 2006 - 20:40 #14
OK  fint
Avatar billede arne_v Ekspert
11. maj 2006 - 01:47 #15
Imports System
Imports System.IO
Imports System.Drawing
Imports System.Windows.Forms

Imports Microsoft.Win32

Namespace E
    Public Class MainForm
        Inherits Form
        Private label1 As Label
        Private label2 As Label
        Private textBox1 As TextBox
        Private textBox2 As TextBox
        Private button1 As Button
       
        Public Shared Sub Main
            Dim fMainForm As New MainForm
            fMainForm.ShowDialog()
        End Sub
       
        Public Sub New()
            MyBase.New
            InitializeComponent
        End Sub
       
        Private Sub InitializeComponent()
            label1 = New Label
            label2 = New Label
            textBox2 = New TextBox
            textBox1 = New TextBox
            button1 = New Button
            SuspendLayout
            label1.Location = New Point(25, 25)
            label1.Size = New Size(60, 20)
            label1.Text = "Software"
            label2.Location = New Point(25, 75)
            label2.Size = New Size(60, 20)
            label2.Text = "Filename"
            textBox1.Location = New Point(100, 25)
            textBox1.Size = New Size(120, 20)
            textBox2.Location = New Point(100, 75)
            textBox2.Size = New Size(120, 20)
            button1.Location = New Point(25, 125)
            button1.Size = New Size(195, 20)
            button1.Text = "Dump"
            AddHandler button1.Click, AddressOf Button1Click
            ClientSize = New Size(245, 175)
            Controls.Add(label1)
            Controls.Add(label2)
            Controls.Add(textBox1)
            Controls.Add(textBox2)
            Controls.Add(button1)
            Text = "Software Dumper"
            ResumeLayout(false)
        End Sub
       
        Private Shared Sub Dump(ByVal sw As StreamWriter, ByVal key As RegistryKey)
            Dim subkeys As String() = key.GetSubKeyNames
            For Each sk As String In subkeys
                Dump(sw, key.OpenSubKey(sk))
            Next
            Dim vals As String() = key.GetValueNames
            For Each v As String In vals
                Dim data As String = key.GetValue(v).ToString
                sw.WriteLine(key.Name & "\" & v & "=" & data)
            Next
        End Sub

        Private Sub Button1Click(sender As System.Object, e As System.EventArgs)
            Dump(New StreamWriter(textBox2.Text), Registry.LocalMachine.OpenSubKey("SOFTWARE").OpenSubKey(textBox1.Text))   
        End Sub
       
    End Class
End Namespace
Avatar billede arne_v Ekspert
11. maj 2006 - 01:47 #16
du udfylder de 2 textboxe med

Mozilla
C:\moz.txt

og klikker på button
Avatar billede dranzer Nybegynder
11. maj 2006 - 08:45 #17
Jeg kan ikke få det til at du det du har skrevet der skal laves helt om i Visual Studio 2005 jeg fik det op og køre men der sket ingen ting...... Det ligner at du bruger Sharpdeveop.... Det vil Visual Studio 2005 ikke accepter........
Avatar billede dranzer Nybegynder
11. maj 2006 - 08:58 #18
Jeg har 2 steder den laver noget kode når man laver bottens og txtbox og sådan noget i sharpdevelop kommer det i en stor klump som hedder MainForm...

Jeg har lige lagt et billede ud af dit program og vise hvordan jeg har skrevet ind

http://www.housefun.dk/moz.JPG

det er rigtig ik?
Avatar billede arne_v Ekspert
11. maj 2006 - 13:08 #19
jo
Avatar billede arne_v Ekspert
11. maj 2006 - 13:11 #20
og det bør ikke betyde noget hvad man bruger til at skrive koden med

.NET 2.0 compileren accepterer programmet:

C:\>vbc /t:winexe regdump.cs
Microsoft (R) Visual Basic Compiler version 8.0.50727.42
for Microsoft (R) .NET Framework version 2.0.50727.42
Copyright (c) Microsoft Corporation.  All rights reserved.

C:\>
Avatar billede arne_v Ekspert
11. maj 2006 - 13:13 #21
så jeg tror at du henter det forkert ind i VB2005

du har 2 muligheder

1) du henter koden ind uden nogen som helst form for ændringer

2) du laver en ny windows app og laver selv formen og stjæler kun
  indmaden af event metoden og Dump metoden
Avatar billede dranzer Nybegynder
11. maj 2006 - 15:22 #22
Tak for dit råd nu lykkes det for mig :o)

Men vil lige stille et sidste spørgsmål inde jeg giver dig dit point...

Er det svært at gøre sådan at man bare skal trykke på en knap så gemmer den det i C:\moz.txt automatisk uden man skal skrive det ind i en tekstbox????

Det er så også mit sidste spørgsmål. :o) og tak.
Avatar billede arne_v Ekspert
11. maj 2006 - 15:37 #23
slet ikke

linien

          Dump(New StreamWriter(textBox2.Text), Registry.LocalMachine.OpenSubKey("SOFTWARE").OpenSubKey(textBox1.Text))

kan rettes til

          Dump(New StreamWriter("C:\moz.txt"), Registry.LocalMachine.OpenSubKey("SOFTWARE").OpenSubKey(textBox1.Text))

saa er filnavnet fast
Avatar billede dranzer Nybegynder
11. maj 2006 - 16:01 #24
Så fik jeg det til at du jeg lavet det sådan

        Private Sub Button1Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
            Dump(New StreamWriter("C:\moz.txt"), Registry.LocalMachine.OpenSubKey("SOFTWARE").OpenSubKey("Mozilla"))
        End Sub

Nu får du dit Point: ;o) Tak...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester