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

Preguntas similare

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
Respuesta Responder a este mensaje
#2 Guillermo guille
07/03/2005 - 20:14 | Informe spam
Si la explicación de esta página (de donde has sacado el código) no te vale,
ten en cuenta que es para hacer una aplicación de consola a la que se le indica
el path de la aplicación que queremos iniciar automa´ticamente:
http://www.elguille.info/NET/dotnet...Inicio.htm

Prueba coneste trozo de código:

Private Property iniciarConWindows() As Boolean
Get
Return _iniciarConWindows
End Get
Set(ByVal value As Boolean)
_iniciarConWindows = value
' Guardar la clave en el registro
' HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Try
Dim runK As Microsoft.Win32.RegistryKey =
Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run",
True)
If value Then
' añadirlo al registro
runK.SetValue(app.Title, ChrW(34) & app.Path(True) &
app.EXEName & ChrW(34))
Else
' quitarlo del registo
runK.DeleteValue(app.Title, False)
End If
Catch ex As Exception
MessageBox.Show("ERROR al guardar en el registro." & vbCrLf &
"Seguramente no tienes privilegios suficientes." & vbCrLf & ex.Message & vbCrLf
& "xxx" & vbCrLf & ex.StackTrace, "Iniciar automáticamente con Windows",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End Try
End Set
End Property

El app.path y app.title son el path completo del ejecutable y el nombre que
quieres usar para el registro.


Nos vemos.
Guillermo
Microsoft VB MVP desde 1997
Te invito a mi sitio dedicado al VB y más...
http://www.elguille.info/
http://www.mundoprogramacion.com/
(puede que el correo usado sea anti-spam)


"José Luis" wrote in message
news:
hol sigo enn lo mismo
Alguien me puede dar un ejemplo o me oriente un poco mas.

Este es el codigo
'
' 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
Respuesta Responder a este mensaje
#3 José Luis
07/03/2005 - 20:49 | Informe spam
hola
Creo que ya me da hasta cosa preguntar ustedes saben demaciado, pero con
el codigo qe me diste guille debo de creear una nueva aplicacion de
consola.¿?.
o que hago??

Disculpen mi ignorancia...

"Guillermo 'guille'" wrote:

Si la explicación de esta página (de donde has sacado el código) no te vale,
ten en cuenta que es para hacer una aplicación de consola a la que se le indica
el path de la aplicación que queremos iniciar automa´ticamente:
http://www.elguille.info/NET/dotnet...Inicio.htm

Prueba coneste trozo de código:

Private Property iniciarConWindows() As Boolean
Get
Return _iniciarConWindows
End Get
Set(ByVal value As Boolean)
_iniciarConWindows = value
' Guardar la clave en el registro
' HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Try
Dim runK As Microsoft.Win32.RegistryKey =
Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run",
True)
If value Then
' añadirlo al registro
runK.SetValue(app.Title, ChrW(34) & app.Path(True) &
app.EXEName & ChrW(34))
Else
' quitarlo del registo
runK.DeleteValue(app.Title, False)
End If
Catch ex As Exception
MessageBox.Show("ERROR al guardar en el registro." & vbCrLf &
"Seguramente no tienes privilegios suficientes." & vbCrLf & ex.Message & vbCrLf
& "xxx" & vbCrLf & ex.StackTrace, "Iniciar automáticamente con Windows",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End Try
End Set
End Property

El app.path y app.title son el path completo del ejecutable y el nombre que
quieres usar para el registro.


Nos vemos.
Guillermo
Microsoft VB MVP desde 1997
Te invito a mi sitio dedicado al VB y más...
http://www.elguille.info/
http://www.mundoprogramacion.com/
(puede que el correo usado sea anti-spam)


"José Luis" wrote in message
news:
> hol sigo enn lo mismo
> Alguien me puede dar un ejemplo o me oriente un poco mas.
>
> Este es el codigo
> '
> ' 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



Respuesta Responder a este mensaje
#4 Guillermo guille
07/03/2005 - 23:37 | Informe spam
sí.
Y así lo indico en el artículo:
"Ahora pasemos a ver el código de la aplicación de ejemplo, en este proyecto de
línea de comandos"

Ya se que no está totalmente claro... pero se "supone" que es una nueva
aplicación (y de consola).
El otro trozo que te puse es solo eso... un trozo para que lo añadas a tu
aplicación... aunque no está completo, creo que no debería resultarte
complicado "aplicarlo".

Nos vemos.
Guillermo
Microsoft VB MVP desde 1997
Te invito a mi sitio dedicado al VB y más...
http://www.elguille.info/
http://www.mundoprogramacion.com/
(puede que el correo usado sea anti-spam)


"José Luis" wrote in message
news:
hola
Creo que ya me da hasta cosa preguntar ustedes saben demaciado, pero con
el codigo qe me diste guille debo de creear una nueva aplicacion de
consola.¿?.
o que hago??

Disculpen mi ignorancia...

"Guillermo 'guille'" wrote:

Si la explicación de esta página (de donde has sacado el código) no te vale,
ten en cuenta que es para hacer una aplicación de consola a la que se le
indica
el path de la aplicación que queremos iniciar automa´ticamente:
http://www.elguille.info/NET/dotnet...Inicio.htm

Prueba coneste trozo de código:

Private Property iniciarConWindows() As Boolean
Get
Return _iniciarConWindows
End Get
Set(ByVal value As Boolean)
_iniciarConWindows = value
' Guardar la clave en el registro
'
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Try
Dim runK As Microsoft.Win32.RegistryKey >> Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run",
True)
If value Then
' añadirlo al registro
runK.SetValue(app.Title, ChrW(34) & app.Path(True) &
app.EXEName & ChrW(34))
Else
' quitarlo del registo
runK.DeleteValue(app.Title, False)
End If
Catch ex As Exception
MessageBox.Show("ERROR al guardar en el registro." & vbCrLf
&
"Seguramente no tienes privilegios suficientes." & vbCrLf & ex.Message &
vbCrLf
& "xxx" & vbCrLf & ex.StackTrace, "Iniciar automáticamente con
Windows",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End Try
End Set
End Property

El app.path y app.title son el path completo del ejecutable y el nombre que
quieres usar para el registro.


Nos vemos.
Guillermo
Microsoft VB MVP desde 1997
Te invito a mi sitio dedicado al VB y más...
http://www.elguille.info/
http://www.mundoprogramacion.com/
(puede que el correo usado sea anti-spam)


"José Luis" wrote in message
news:
> hol sigo enn lo mismo
> Alguien me puede dar un ejemplo o me oriente un poco mas.
>
> Este es el codigo
> '
> ' 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



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida