Blogs de Ng Ingeniería

Ejemplo en visual basic.net que usa la clase registry para poder establecer la ruta del exe en el registro y poder iniciar junto al sistema para el usuario actual

CreateSubKey y OpenSubKey : Para acceder a la clave en la rama : SOFTWARE\Microsoft\Windows\CurrentVersion\Run y poder eliminar o crear la ruta
SetValue : Establece el nuevo valor
DeleteValue : Elimina la entrada
Application.ExecutablePath : para obtener la ruta y nombre del Exe
Application.ProductName : Para el nombre del programa


Option Explicit On
Option Strict On

Imports Microsoft
Imports Microsoft.Win32
Imports Microsoft.Win32.Registry

Public Class Form1

Private Function start_Up(ByVal bCrear As Boolean) As String

' clave del registro para
' colocar el path del ejecutable para iniciar con windows
Const CLAVE As String = "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"

'ProductName : el nombre del programa.
Dim subClave As String = Application.ProductName.ToString
' Mensaje para retornar el resultado
Dim msg As String = ""

Try
' Abre la clave del usuario actual (CurrentUser) para poder extablecer el dato
' si la clave CurrentVersion\Run no existe la crea
Dim Registro As RegistryKey = CurrentUser.CreateSubKey(CLAVE, RegistryKeyPermissionCheck.ReadWriteSubTree)

With Registro

.OpenSubKey(CLAVE, True)

Select Case bCrear
' Crear
''''''''''''''''''''''
Case True
' Escribe el path con SetValue
'Valores : ProductName el nombre del programa y ExecutablePath : la ruta del exe
.SetValue(subClave, _
Application.ExecutablePath.ToString)
Return "Ok .. clave añadida"
' Eliminar
''''''''''''''''''''''
'Elimina la entrada con DeleteValue
Case False
If .GetValue(subClave, "").ToString <> "" Then
.DeleteValue(subClave) ' eliminar
msg = "Ok .. clave eliminada"
Else

msg = "No se eliminó , por que el programa" & _
" no iniciaba con windows"
End If
End Select
End With
' Error
''''''''''''''''''''''
Catch ex As Exception
msg = ex.Message.ToString
End Try
'retorno
Return msg
End Function

Private Sub Button1_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
' crear
MsgBox(start_Up(True))
End Sub

Private Sub Form1_Load( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Button1.Text = "Iniciar con win.."
Button2.Text = "No iniciar"
End Sub

Private Sub Button2_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click

'Eliminar
MsgBox(start_Up(False))
End Sub
End Class

Category: .Net

Tagged:

Contesta