poner un aplicacion en los registros de windows

07/03/2005 - 18:05 por José Luis | Informe spam
hol sigo enn lo mismo
Alguien me puede dar un ejemplo o me oriente un poco mas.

Este es el codig
'
' registroWindowsInicioVB
(04/Feb/04)
' Poner nuestra aplicación en el registro para que se inicie automáticamente
' también se comprobará si ya está y cómo quiitarla.
'
' ©Guillermo 'guille' Som, 2004
'LocalMachine
'Contiene los datos de configuración correspondientes al equipo local.
'Este campo lee la clave base HKEY_LOCAL_MACHINE del Registro de Windows.


'
Option Strict On

Imports Microsoft.VisualBasic
Imports System
Imports Microsoft.Win32

Module Module1

Sub Main(ByVal args() As String)

' En la línea de comandos se indicará la clave y el valor
' El valor será el "path" completo de la aplicación
' que queremos incluir en el registro dentro de la clave indicada
' En el primer parámetro indicaremos la acción a realizar:
' /A Añadir o modificar una clave
' /E Eliminar la clave indicada
' /R Recuperar el valor de la clave indicada, también se puede
usar /M
' Recuerda que en este código siempre se manejará la clave Run:
' HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
'

Dim msg As String = String.Format("Para usar esta aplicación debes
indicar:{0}" & "Para añadir o modificar: /A clave path{0}" & "Para eliminar:
/E clave{0}" & "Para mostrar el valor: /R clave o /M clave",
vbCrLf)
If args.Length < 2 Then
Console.WriteLine(msg)
Exit Sub
End If

'Dim nombre As String = args(1)
Dim nombre As String = args(1)
Select Case args(0).ToUpper
Case "/A", "-A"
' si hay menos de tres argumentos
' es que no se ha indicado el último parámetro
If args.Length < 3 Then
Console.WriteLine(msg)
Exit Sub
End If
Dim valor As String = args(2)
If ponerEnInicio(nombre, valor) Then
Console.WriteLine("Se añadió / modificó correctamente la
clave...")
End If
Case "/E", "-E"
If quitarDeInicio(nombre) Then
Console.WriteLine("Se quitó correctamente la clave...")
End If
Case "/R", "-R", "/M", "-M"
Console.WriteLine(comprobarEnInicio(nombre))
End Select

End Sub
'
Private Function ponerEnInicio(ByVal nombreClave As String, ByVal
nombreApp As String) As Boolean
' Resgistrará en Inicio del registro la aplicación indicada
' Devuelve True si todo fue bien, False en caso contrario
'
' Guardar la clave en el registro
' HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Try
'crea un clave de registro el cual accesa a las claves locales
de la maquina
'Para obtener una instancia de RegistryKey, utilice el miembro
estático
' OpenSubKey o el miembro estático de la clase Registry.

Dim runK As RegistryKey Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", True)
' añadirlo al registro
' Si el path contiene espacios se debería incluir entre comillas
dobles
If nombreApp.StartsWith(ChrW(34)) = False AndAlso
nombreApp.IndexOf(" ") > -1 Then
nombreApp = ChrW(34) & nombreApp & ChrW(34)
End If
'pone la clave
runK.SetValue(nombreClave, nombreApp)
Return True
Catch ex As Exception
Console.WriteLine("ERROR al guardar en el
registro.{0}Seguramente no tienes privilegios
suficientes.{0}{1}{0}xxx{2}", vbCrLf, ex.Message, ex.StackTrace)
Return False
End Try
End Function

Private Function quitarDeInicio(ByVal nombreClave As String) As Boolean
' Quitará de Inicio la aplicación indicada
' Devuelve True si todo fue bien, False en caso contrario
' Si la aplicación no estaba en Inicio, devuelve True salvo que se
produzca un error
'
Try
Dim runK As RegistryKey =
Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", True)
' quitar la clave indicada del registo
runK.DeleteValue(nombreClave, False)
Return True
Catch ex As Exception
Console.WriteLine("ERROR al eliminar la clave del
registro.{0}Seguramente no tienes privilegios
suficientes.{0}{1}{0}xxx{2}", vbCrLf, ex.Message, ex.StackTrace)
Return False
End Try
'
End Function
'
Private Function comprobarEnInicio(ByVal nombreClave As String) As String
' Comprobará si la clave indicada está asignada en Inicio
' en caso de ser así devolverá el contenido,
' en caso contrario devolverá una cadena vacia
' Si se produce un error, se devolverá la cadena de error
Try
Dim runK As RegistryKey =
Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", False)
' comprobar si está
Return runK.GetValue(nombreClave, "").ToString
Catch ex As Exception
Return String.Format("ERROR al leer el valor de la clave del
registro.{0}Seguramente no tienes privilegios
suficientes.{0}{1}{0}xxx{2}", vbCrLf, ex.Message, ex.StackTrace)
End Try
End Function


End Module




Expandir todoContraer todo
 

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
07/03/2005 - 19:03 | Informe spam
¿Cual es exactamente el problema que tienes con ese codigo?

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo

Jamás ha habido un niño tan adorable,
que la madre no quiera poner a dormir.\Ralph Waldo Emerson

Preguntas similares