stinson300
Goto Top

SSD-Optimierung Was mach ich hier falsch?

Hallo miteinander

Ich habe ein Problem, wenn ich mein Programm starte bekomme ich immer eine Fehlermeldung und ich weiss nicht was ich falsch gemacht habe!

Hier der Code:
Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        'Defragmentierung ausschalten  
        Dim regKey As Microsoft.Win32.RegistryKey
        regKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SYSTEM\CurrentControlSet\Services\defragsvc", True)  
        regKey.SetValue("Start", 4)  
        regKey.Close()

        'Indexierung ausschalten  
        regKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SYSTEM\CurrentControlSet\Services\WSearch", True)  
        regKey.SetValue("Start", 4)  
        regKey.Close()

        'SuperFetch ausschalten  
        regKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SYSTEM\CurrentControlSet\Services\SysMain", True)  
        regKey.SetValue("Start", 4)  
        regKey.Close()

        'PreFetch ausschalten  
        regKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters", True)  
        regKey.SetValue("EnablePrefetcher", 0)  
        regKey.SetValue("EnableSuperfetch", 0)  
        regKey.Close()

        'Boot-Time Defragmentierung deaktivieren  
        regKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction", True)  
        regKey.SetValue("Enable", "N")  
        regKey.Close()


        'Ruhezustand ausschalten  
        Shell("powercfg -H off")  

        Box.Text = "Bitte neu starten"  

    End Sub
End Class
und hier die Fehlermeldung:
System.NullReferenceException
Sie tritt bei dieser Zeile auf : regKey.SetValue("Enable", "N")

Was mach ich falsch.


Danke im Voraus!

Freundliche Grüsse

Stinson

Content-ID: 208334

Url: https://administrator.de/contentid/208334

Ausgedruckt am: 19.11.2024 um 14:11 Uhr

LordXearo
LordXearo 20.06.2013 aktualisiert um 09:08:11 Uhr
Goto Top
Hallo,

könnte es sein das der Pfad

regKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction", True)

nicht stimmt oder nicht vorhanden ist?

Gruß

Xearo

Edit: Also bei mir unter Windows 8 gibt es dort den Key "Enable" nicht.
stinson300
stinson300 20.06.2013 um 09:27:35 Uhr
Goto Top
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction]
"OptimizeError"=""
"LcnStartLocation"="0"
"LcnEndLocation"="485901"
"OptimizeComplete"="Yes"
"Enable"="Y"

Habe gerade aus Registry exportiert.
stinson300
stinson300 20.06.2013 um 09:28:33 Uhr
Goto Top
Zitat von @stinson300:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction]
"OptimizeError"=""
"LcnStartLocation"="0"
"LcnEndLocation"="485901"
"OptimizeComplete"="Yes"
"Enable"="Y"

Habe gerade aus Registry exportiert.

Auch mit dem OptimizeComplete funktioniert es nicht
LordXearo
LordXearo 20.06.2013 aktualisiert um 09:54:18 Uhr
Goto Top
Okay. Wird das Programm mit Adminrechten ausgeführt? Naja müsste wohl...sonst würde er bei den anderen Keys wohl auch Probleme geben. Mehr fällt mir momentan nicht ein.

Edit: Ich seh gerade, das einzige was bei dem Key anders ist, das Zeichen welches du setzen möchtest. Lass mal die "" weg oder probiers mit ' ' .
stinson300
stinson300 20.06.2013 um 09:56:39 Uhr
Goto Top
Dannn erwartet er einen Ausdruck
AndreasHoster
AndreasHoster 20.06.2013 um 10:19:07 Uhr
Goto Top
Ich rate mal:
Windows 8 64bit
VB Programm 32 bit

=> 32bit Programme können nicht auf die 64bit Zweige zugreifen.
Ein 32bit Programm sieht den HKLM\Software\WOW6432Node als HKLM\Software

Kann man einfach feststellen,w enn man mal den regedit aus c:\windows\syswow64 startet, der ist nämlich 32bittig und sieht es dann auch entsprechend.
kontext
kontext 20.06.2013, aktualisiert am 19.05.2016 um 09:54:05 Uhr
Goto Top
Hallo Stinson,

kurze Frage - warum willst du die SSD optimieren?
Klonst du ein System von einer HDD auf eine SSD?

Wenn du das System auf die SSD installierst, übernimmt Windows automatisch die Optimierungen.
Zumindest bei aktuellen Systemen (Windows 7, Windows 8) ...

Gruß
@kontext
stinson300
stinson300 20.06.2013 um 10:51:36 Uhr
Goto Top
Ja wir klonen die HD aber wir brauchen es auch für unsere Preloads
76109
76109 20.06.2013 um 10:59:18 Uhr
Goto Top
Hallo stinson300!

Steht Dir bei der 'Microsoft.Win32.Registry'-Funktion eine Typangabe zur Verfügung?

Mit 'DWORD' scheint es ja standardmäßig zu funktionieren, nur mit dem Typ 'REG_SZ' (String) offensichtlich nicht...

Gruß Dieter
stinson300
stinson300 20.06.2013 um 11:05:25 Uhr
Goto Top
Nein ich weiss jetzt was das Problem ist.

Er ändert den Wert im WOW6432Node Ordner.

Wie kann ich ihn so konfigurieren das er ihn bei einer 64bit Maschine im normalen Ordner ändert?
AndreasHoster
AndreasHoster 20.06.2013 um 12:00:58 Uhr
Goto Top
Ich verweise auf mein Post von 10:19:
32bit Programme können nicht den 64bit Zweig ändern.

Dein VB Programm als 64bit kompilieren, dann sollte es gehen.
kontext
kontext 27.06.2013, aktualisiert am 19.05.2016 um 09:53:59 Uhr
Goto Top
Hi Stinson,

kommt da noch was, oder ist dein Problem gelöst?
Ein wenig Feedback wäre nett / angebracht und Wie kann ich einen Beitrag als gelöst markieren?

Gruß
@kontext
stinson300
stinson300 27.06.2013 um 10:50:50 Uhr
Goto Top
Habe es jetzt umprogrammiert jetzt funktioniert es, danke viel mals

Gruss Stinson