ciao stò cercando informazioni su come riavviare un programma al non appena viene riavviato windows!
help
ciao stò cercando informazioni su come riavviare un programma al non appena viene riavviato windows!
help
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
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!
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
grazie mille![]()