Immer derselbe Fehler mit der Registry !!!

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von ChipPRO Österreich.

    Immer derselbe Fehler mit der Registry !!!

    Hey Leute, ich stoße immerzu auf das gleiche Problem und kann es nicht lösen :cursing: :cursing: :cursing: - ich will kleines Tool machen, durch das
    der Task-Manager der bereits deaktiviert wurde (z.b. durch einen Virus) wieder freigegeben werden kann.
    Hier der Code:



    Quellcode

    1. Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
    2. My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System", "DisableTaskMgr", "0", Microsoft.Win32.RegistryValueKind.DWord)
    3. MsgBox("Der Task-Manager wurde erfolgreich freigeschaltet")
    4. ListBox2.Items.Add("Bitte überprüfen sie ob der Task-Manager ordnungsgemäß startet.")
    5. Button8.Enabled = False
    6. End Sub

    Im angehängten Bild sieht man das auch ganz eindeutig.Dort ist auch der Fehler.Könnt ihr mir sagen wie man Zugriff auf den Schlüssel bekommt, oder ob man evtl. im Falledieses Fehlers eine Art ,,If-Else'' Code einfügen könnte - sodass eine Fehlermeldung erscheint wenn es nicht klappen sollte oder ähnliches ??
    Bilder
    • screenshot2.jpg

      115,06 kB, 1.091×338, 169 mal angesehen

    VB.NET-Quellcode

    1. Try
    2. 'Dein Code..
    3. Catch ex As UnauthorizedAccessException 'Falls ein Zugriffsfehler auftritt
    4. MessageBox.Show("Fehler: " & vbCrLf & ex.Message.ToString)
    5. ListBox2.Items.Add("Fehler beim Zugruff auf die Registry. Bitte Programm im Administratormodus starten.")
    6. Catch ex As Exception 'Falls ein anderer Fehler auftritt
    7. MessageBox.Show("Fehler: " & vbCrLf & ex.Message.ToString)
    8. ListBox2.Items.Add("Es ist ein Fehler aufgetreten.")
    9. End Try


    So kannst du mal Fehler unterbinden, die das Programm unterbrechen.
    Das was @StarGate01 gesagt hat, musst du selber machen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ChipPRO Österreich“ ()

    ChipPRO Österreich schrieb:

    So kannst du mal die Debug-Fehler unterbinden.

    Weißt du eigentlich was du da grade aussagst?
    Ich unterdrück beim Debuggen ( = Fehlersuche) die Anzeige der Fehler. ---> Wo ist der "kleine" Denkfehler in deiner Aussage und der Strategie???
    Fehlerbehandlung heißt nicht sinnlose Try...Catch...MSgbox ex.tostring
    sondern vorher überlegen was könnte passieren und das elgant abfangen...
    und dann DEBUGGEN.. also Fehler suchen, Fehler provozieren um dann etwas dagegen tun, und nicht das ANzeigen der Meldung abschalten :cursing:
    Da erscheint ein Fehler im Code:

    Quellcode

    1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Form1.Load
    2. Try
    3. 'My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System", "DisableTaskMgr", "0", Microsoft.Win32.RegistryValueKind.DWord)
    4. Catch ex As UnauthorizedAccessException 'Falls ein Zugriffsfehler auftritt
    5. MessageBox.Show("Fehler: " & vbCrLf & ex.Message.ToString)
    6. ListBox2.Items.Add("Fehler beim Zugruff auf die Registry. Bitte Programm im Administratormodus starten.")
    7. Catch ex As Exception 'Falls ein anderer Fehler auftritt
    8. MessageBox.Show("Fehler: " & vbCrLf & ex.Message.ToString)
    9. ListBox2.Items.Add("Es ist ein Fehler aufgetreten.")
    10. End Try
    11. End Sub


    Da bei Form1.Load erscheint in der Fehlerliste ,,Die Handles-Klausel erfordert eine WithEvents-Variable, die im enthaltenden Typ oder seinem Basistypen definiert wird".

    Kannst du mir sagen was ich ändern muss ??