Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    3

    [VB.NET]Aggiungere una chaive al registro di sistema

    ciao a tutti e grazie a chi risponderà. Sono un po' novizio in basic e quindi non molto capace. Ho fatto un programma e poi ho deciso che dovesse partire all'avvio di windows per tutti gli utenti. Quindi ho scritto queste righe che in fase di progettazione non danno errori ma in fase di debugging da un errore "parametro non corretto".
    Vi posto il codice. Ho escluso la cartella Esecuzione automatica.
    Dim value As String
    value = Microsoft.Win32.Registry.GetValue("HKEY_USERS\.DEF AULT\Software\Microsoft\Windows\CurrentVersion\Run ", "ciao", "NonEsiste")
    If Value = "NonEsiste" Then
    Dim PDA As RegistryKey = Registry.LocalMachine.CreateSubKey("HKEY_USERS\.DE FAULT\Software\Microsoft\Windows\CurrentVersion\Ru n")
    PDA.SetValue("ciao", Application.StartupPath & "ciao.exe")
    PDA.Close()
    end if

  2. #2
    In primo luogo, la chiave giusta è HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr entVersion\Run; per il resto, studiati la classe Registry e i suoi esempi.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    3
    Ho fatto e sn riuscito a scrivere questo codice:
    <Assembly: RegistryPermissionAttribute(SecurityAction.Request Minimum, ViewAndmodify:="HKEY_LOCAL_MACHINE")>

    Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Const userRoot As String = "HKEY_LOCAL_MACHINE"
    Const subkey As String = "Software\Microsoft\Windows\CurrentVersion\Run "
    Const keyName As String = userRoot & "\" & subkey
    Registry.SetValue(keyName, "ciao", Application.StartupPath & "C:\ciao.exe")
    System.IO.File.Copy("ciao.exe", "c:\ciao.exe")
    Ora però windows non concede l'autorizzazione a creare la chiave di registro nono stante io abbia inserito una stringa iniziale per ottenerla. Come posso fare?

  4. #4
    Utente di HTML.it L'avatar di Pista
    Registrato dal
    May 2009
    Messaggi
    28

    [VB.NET]Aggiungere una chaive al registro di sistema

    Secondo me la soluzione più elegante e corretta è crearti un setup con uno dei tanti programmi apposta, che ti scrive il path del tuo programma nella chiave run.
    Questo non significa aggirare l'ostacolo, credo sia la giusta soluzione al problema, i progs per generare sutup sono fatti apposta.
    Poi se vuoi per tua conoscenza personale studiati pure le classi.

  5. #5
    Originariamente inviato da teo940
    Ora però windows non concede l'autorizzazione a creare la chiave di registro nono stante io abbia inserito una stringa iniziale per ottenerla. Come posso fare?
    L'autorizzazione che richiedi è un'autorizzazione CAS e non c'entra niente con la sicurezza integrata di Windows; probabilmente il tuo utente non ha diritti per scrivere in HKLM, oppure li ha ma sei su Vista e l'UAC li attiva solo su richiesta. In ogni caso il consiglio migliore è quello di Pista.
    Amaro C++, il gusto pieno dell'undefined behavior.

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.