Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [vb] autorun al riavvio di un form

    ciao stò cercando informazioni su come riavviare un programma al non appena viene riavviato windows!
    help

  2. #2
    1)Per il VB c'è il subforum apposito.
    2)Bisogna specificare la versione anche/soprattutto nel titolo

    3)Devi inserire la stringa che richiama l'eseguibile VB
    all'interno della chiave RUN nel regintro di sistema di windows.

    lancia REGEDIT
    il path alla chiave RUN è il segunete:
    HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Run

    crea un nuovo valore stringa (all'interno di run) e inserisci al suo interno il path assoluto al programma eseguibile che vuoi far partire
    all'avvio di windows.

    Se vuoi sapere come si scrive nel registro di sistema da codice VB
    devi specificare la versione di VB che stai utilizzando (VB6 o VB.NET?)

    -----------------------------------------------
    ad ogni modo, è buona norma specificarlo sempre.
    ...Terrible warlords, good warlords, and an english song

  3. #3
    uso visual basic 6.0, mi scuso ma non credevo che c'era un forum apposta, pensavo che fosse una sezione unica!
    non c'e un tutorial o qualcosa del genere?
    grazie!

  4. #4
    Ciao,
    imposta un riferimento (menu "Project\References" di VB) alla
    libreria "Windows Script Host Object Model".
    Avrai così a disposizione l'oggetto WshShell il quale, tra le altre cose, ti permette di accedere al registry.

    I metodi "RegRead", "RegWrite" e "RegDelete" di questo oggetto
    ti permettono, rispettivamente, di leggere, scrivere e cancellare valori o chiavi dal registry.

    Sul registro di configurazione hai alcune chiavi principali:
    HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE.

    Queste le devi indicare all'oggetto WshShell con le relative costanti.
    Rispettivamente: HKCR, HKCU, HKLM.

    Quindi, se tu devi scrivere nella chiave
    HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Run
    il nome e percorso del tuo programma, puoi fare così:


    Dim Shl As New WshShell
    Const AutoRegKEY As String = "HKCU\Software\Microsoft\Windows\CurrentVersion\Ru n"
    Shl.RegWrite AutoRegKEY & "\" & App.EXEName, App.Path & "\" & App.EXEName & ".exe"


    Nota l'uso di HKCU per indicare la chiave HKEY_CURRENT_USER.
    Nota che, alla fine del percorso della chiave, viene specificato il nome del valore (App.ExeName) e, il secondo argomento, è il percorso-file del tuo programma.

    I metodi RegDelete e RegWrite funzionano in maniera analoga.

    Shl.RegDelete AutoRegKEY & "\" & App.EXEName


    Questo cancella dal registro il valore scritto in precedenza.
    Ecco, ad esempio, una semplice funzione che ti permetterà di stabilire se il tuo programma è in esecuzione automatica:

    '
    Function IsOnAutorun() As Boolean

    Dim Shl As New WshShell
    Dim s As String
    Const AutoRegKEY As String = "HKCU\Software\Microsoft\Windows\CurrentVersion\Ru n"

    On Error Resume Next
    ' Prova a leggere il valore dal registry
    s = Shl.RegRead(AutoRegKEY & "\" & App.EXEName)

    ' Se ha causato errore (il valore NON esiste) restituisce False
    IsOnAutorun = (Err.Number = 0)
    End Function


    Ovviamente puoi anche scrivere sotto-chiavi:

    ' Crea la chiave Ciao sotto a Run
    ' scrive stringa e valore ciao
    Shl.RegWrite AutoRegKEY & "\ciao\ciao", "Ciao"


    Tutto qui !
    Fai alcune e prove e vedrai che ci salti fuori.

    Ciao
    Simo

  5. #5
    grazie mille

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.