Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    8

    [VB.NET] Cancellare valore CLSID dal registro

    Buongiorno, non capisco perchè il comando:

    codice:
    My.Computer.Registry.CurrentUser.DeleteSubKeyTree("KEY_PATH")
    funzioni correttamente con tutte le chiavi di registro tranne quelle relative ai CLSID...
    Ho provato anche a creare e lanciare un file .reg contenente il codice:

    codice:
    Windows Registry Editor Version 5.00
    
    [-HKEY_CURRENT_USER\Software\Classes\CLSID\{CHIAVE-DA-ELIMINARE}]
    senza successo. Ho quindi dedotto che forse esiste una protezione a livello di SO (uso win7 64bit), ma ho anche visto che le posso cancellare a mano dal regedit.
    Quindi esiste un modo per automatizzare la cosa? E' un'operazione che faccio abbastanza spesso e non vorrei dover sempre aprire il regedit per cancellarle, grazie in anticipo per le risposte
    Ah un'ultima cosa: ho già provato a compilare l'exe facendogli richiedere i diritti di amministratore... Nulla da fare...

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    8
    nessuno?

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,459
    Ma cosa accade quando lanci il comando di cancellazione della chiave?
    La tua applicazione viene eseguita con i diritti amministrativi? (appare la richiesta dell'UAC?)
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    8
    Originariamente inviato da alka
    Ma cosa accade quando lanci il comando di cancellazione della chiave?
    La tua applicazione viene eseguita con i diritti amministrativi? (appare la richiesta dell'UAC?)
    si, come già specificato sopra ho già provato a fargli richiedere i diritti amministrativi (con richiesta UAC), ma semplicemente non accade nulla, l'applicazione non dà errori nè exceptions, in pratica per il programma è tutto ok, ma in realtà la chiave non viene cancellata

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,459
    Originariamente inviato da andylon
    per il programma è tutto ok, ma in realtà la chiave non viene cancellata
    Non è che forse il percorso della chiave non è corretto?
    Hai provato a introdurre una verifica preventiva, ad esempio leggendo il valore della chiave con lo stesso percorso prima di scriverla o rimuoverla?

    Giusto per essere sicuri...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    8
    Originariamente inviato da alka
    Non è che forse il percorso della chiave non è corretto?
    Hai provato a introdurre una verifica preventiva, ad esempio leggendo il valore della chiave con lo stesso percorso prima di scriverla o rimuoverla?

    Giusto per essere sicuri...
    dammi 5 minuti che provo, comunque il percorso è giusto, in quanto ho provato ad aggiungere una chiave chiamata "PROVA" tra i CLSID e non cancellava neanche quella... secondo me il problema è proprio che quelle chiavi non possono essere modificate grazie a qualche protezione del SO

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    8
    Originariamente inviato da alka
    Hai provato a introdurre una verifica preventiva, ad esempio leggendo il valore della chiave con lo stesso percorso prima di scriverla o rimuoverla?
    mmm curioso... con il getvalue mi restituisce una stringa vuota (ma non dà errore)

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,459
    Secondo me, dovresti postare un po' di codice sorgente (quello effettivo, non "edulcorato", altrimenti magari togli proprio la parte dell'errore)...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    8
    eh guarda è semplicemente quel comando, non penso di introdurre errori, comunque eccolo:
    codice:
     Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
            Try
                My.Computer.Registry.CurrentUser.DeleteSubKeyTree("Software\Classes\CLSID\{CHIAVE-DA-ELIMINARE}")
            Catch ex As Exception
                MessageBox.Show(ex.ToString)
            End Try
    
            End
        End Sub
    ho (re)inserito la gestione delle eccezioni e ora mi dice "impossibile eliminare la struttura di una sottochiave non esistente", però strano, l'avevo tolta perchè all'inizio non dava nessun errore...

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    8
    ho risolto... prima compilavo sia per processori x64 sia per x86, e onestamente non credevo facesse qualche differenza a livello di registri di sistema...
    Invece ora ricompilandolo solo per x86 funziona perfettamente...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.